Kommandozeile (jpgboost-cli)
jpgboost-cli komprimiert deine Bilder, ohne die grafische Oberfläche zu öffnen. Es ist das geeignete Werkzeug für Skripte, geplante Aufgaben und kontinuierliche Integration.
Deine Lizenz deckt bis zu zwei Installationen ab, die du persönlich nutzt. Die Anwendung und die CLI zählen jeweils als eine eigenständige Installation, selbst wenn beide auf demselben Mac installiert sind. Sie erscheinen als Geräte unter Einstellungen > Lizenz.
Ein Server, der nur die CLI für deine eigenen Automatisierungen ausführt, wie eine kontinuierliche Integration oder eine geplante Aufgabe, kann so einen dieser beiden Plätze belegen, ohne eine zusätzliche Lizenz zu benötigen. Weitere Informationen findest du in den Abschnitten Lizenz auf einem Server und Eine Lizenz pro Nutzer.
Wozu die Kommandozeile dient
jpgboost-cli ist ein eigenständiges ausführbares Programm, das in JPGBoost.app enthalten ist. Es hängt weder von der lokalen API noch von einer laufenden Instanz der Anwendung ab: Es verwendet direkt dieselbe Dekodierungs- und Kodierungs-Engine und erzeugt daher genau dieselben Dateien wie die grafische Oberfläche.
Es ist der geeignete Einstiegspunkt, wenn keine Oberfläche geöffnet werden soll: ein Shell-Skript, eine geplante Aufgabe, eine kontinuierliche Integration, die Verarbeitung einer großen Anzahl von Dateien.
jpgboost-cli ist in JPGBoost.app enthalten. Es ist weder eine Kompilierung noch die Installation von Bibliotheken erforderlich, da es die bereits in der Anwendung integrierten Komponenten verwendet.
Den Befehl zugänglich machen
Die ausführbare Datei befindet sich im Paket der Anwendung. Du kannst sie direkt über ihren vollständigen Pfad aufrufen:
/Applications/JPGBoost.app/Contents/MacOS/jpgboost-cli --help
Um jpgboost-cli von jedem Ordner aus ausführen zu können, erstelle einmalig einen symbolischen Link:
sudo ln -s /Applications/JPGBoost.app/Contents/MacOS/jpgboost-cli \
/usr/local/bin/jpgboost-cli
jpgboost-cli --help
Da der Link auf das Paket verweist, bleibt er nach einem Update der Anwendung gültig. Die Beispiele auf dieser Seite setzen diese Installation voraus; ohne sie ersetze jpgboost-cli durch den obigen vollständigen Pfad.
Du kannst statt /usr/local/bin einen persönlichen Ordner verwenden, zum Beispiel ~/bin, sofern er in deinem PATH enthalten ist. Eine einfache Alternative ist, deiner ~/.zshrc einen Alias hinzuzufügen.
Lizenz auf einem Server
Ein Rechner, der nur die CLI ausführt, zum Beispiel ein Server ohne grafische Oberfläche, kann ohne Verwendung von JPGBoost.app aktiviert und verwaltet werden.
# Kennung dieses Rechners, über die CLI
jpgboost-cli --machine-id
# Erste Aktivierung, mit dem nach dem Kauf per E-Mail erhaltenen Token
jpgboost-cli --activate ACT-XXXX-XXXX-XXXX-XXXX-XXXX
# Von diesem bereits aktivierten Server aus einen Code erzeugen, um ein weiteres Gerät hinzuzufügen
jpgboost-cli --add-device
# Einer Lizenz über einen anderswo erzeugten Code beitreten (App oder andere CLI)
jpgboost-cli --pair XXXX-XXXX
# Eine neuere Version der Lizenz abrufen, falls der Server eine hat
jpgboost-cli --sync
# Anzahl der genutzten Installationen / Limit, und ihre Liste — lokale Lesung, ohne Netzwerkanfrage
jpgboost-cli --devices
Die Anwendung und die CLI gelten als zwei getrennte Installationen, selbst wenn sie auf demselben Mac verwendet werden. Jede hat ihre eigene Installationskennung und belegt daher einen der beiden von einer Pro-Lizenz erlaubten Plätze.
Du kannst deine Lizenz also auf verschiedene Weisen nutzen, zum Beispiel mit der App auf deinem Mac und der CLI auf einem Server, mit der App und der CLI auf demselben Mac, mit der App auf zwei verschiedenen Macs, oder mit nur der CLI auf einem Server, der die Anwendung nie öffnet.
Syntax und Optionen
jpgboost-cli <datei...> --output <ordner> [optionen]
| Option | Funktion | Standardwert |
|---|---|---|
--output <ordner> | Zielordner, erstellt falls nicht vorhanden | Erforderlich |
--quality <1-100> | Komprimierungsqualität | 75 |
--format <format> | png, jpeg, heic, avif, webp oder jxl | jpeg |
--profile <name> | Wendet ein benanntes Exportprofil an | Keiner |
--jobs <N> | Parallel verarbeitete Dateien | Anzahl der Kerne |
--json | Strukturierte JSON-Ausgabe statt lesbarem Text | Deaktiviert |
--help | Zeigt die Hilfe an | — |
Erste Beispiele
# Zwei Dateien nach WebP, Qualität 60
jpgboost-cli foto1.jpg foto2.png --quality 60 --format webp --output ./ko/mprimiert
# foto1.jpg: 4,2 MB -> 890 KB (-79%) -> ./ko/mprimiert/foto1.webp
# foto2.png: 1,8 MB -> 620 KB (-66%) -> ./ko/mprimiert/foto2.webp
#
# 2 Datei(en) verarbeitet, 0 Fehlschlag/Fehlschläge.
# Ein ganzer Ordner nach AVIF
jpgboost-cli ~/Bilder/export/*.png --format avif --quality 65 --output ~/Bilder/web
Stapelverarbeitung und Parallelität
Bei Hunderten oder Tausenden von Dateien verarbeitet die Option --jobs mehrere Bilder gleichzeitig. Jede Datei wird unabhängig dekodiert, kodiert und dann freigegeben: Der Speicherverbrauch wächst nicht mit der Anzahl der wartenden Dateien, sondern nur mit dem Wert von --jobs.
# Acht Dateien gleichzeitig verarbeitet
jpgboost-cli ~/Fotos/gruppe/*.jpg --jobs 8 --format webp --output ~/Fotos/web
# Eine nach der anderen, um die Last auf einem geteilten Rechner zu begrenzen
jpgboost-cli ~/Fotos/gruppe/*.jpg --jobs 1 --format webp --output ~/Fotos/web
Bei einer Gruppe von 12 Dateien erwies sich --jobs 8 als etwa viermal schneller als --jobs 1. Der tatsächliche Gewinn hängt von der Anzahl der Kerne deines Mac und dem Zielformat ab: AVIF und JPEG XL sind sichtbar langsamer zu kodieren als JPEG oder HEIC.
Ein Exportprofil verwenden
Die Option --profile verwendet ein in der Anwendung oder über die API erstelltes Profil wieder. Sie ergänzt nur das, was du nicht explizit angegeben hast.
# Format, Qualität und Ordner kommen alle aus dem Profil
jpgboost-cli --profile "Web JPEG" *.png
# Der explizite Ordner hat Vorrang, der Rest kommt aus dem Profil
jpgboost-cli --profile "Web JPEG" --output ./lieferung *.png
Die CLI kann auch direkt ein Profil erstellen oder aktualisieren, ohne über Einstellungen oder die lokale API zu gehen:
jpgboost-cli --create-profile "Web JPEG" --format jpeg --quality 70 --output ./ko/mprimiert
--format und --quality sind erforderlich, --output ist optional (der angegebene Ordner muss bereits existieren). Ein bereits verwendeter Name ersetzt das bestehende Profil, statt ein Duplikat zu erstellen — dasselbe Verhalten wie der Profile-Reiter der App und die lokale API. Erfordert JPGBoost Pro, wie der Rest der CLI.
JSON-Ausgabe
Mit --json ist die Ausgabe ein JSON-Array, in dem jede verarbeitete Datei einem JSON-Objekt entspricht, mit derselben Form wie die Antworten der lokalen API, was die Verkettung mit jq oder einem anderen Werkzeug erleichtert.
jpgboost-cli *.png --format webp --output ./ausgabe --json
# Mit jq verketten: nur Dateien mit Fehler behalten
jpgboost-cli *.png --format webp --output ./ausgabe --json \
| jq '.[] | select(.error != null)'
Verfügbare Felder: path, originalSizeBytes, compressedSizeBytes, ratio, destination und error.
Exit-Codes
| Code | Bedeutung |
|---|---|
0 | Alle Dateien wurden erfolgreich verarbeitet |
77 | Keine gültige Pro-Lizenz auf diesem Rechner |
| Ungleich null | Mindestens eine Datei ist fehlgeschlagen; direkt in einem Skript oder einer kontinuierlichen Integration verwendbar |
Dateien mit demselben Namen
Zwei Eingabedateien mit demselben Basisnamen zielen natürlich auf dieselbe Ausgabe ab. a/foto.jpg und b/foto.png, nach WebP konvertiert, würden beide foto.webp erzeugen.
JPGBoost ersetzt sie nicht: Die zweite erhält einen eigenen Namen.
a/foto.jpg -> foto.webp
b/foto.png -> foto-2.webp
Die Namen werden nach der Reihenfolge der Argumente vergeben, unabhängig von der Ausführungsreihenfolge mit --jobs, sodass das Ergebnis reproduzierbar ist. Dieselbe Regel gilt in der Anwendung, in Kurzbefehle, AppleScript und den überwachten Ordnern.
Diese Regel betrifft nur Kollisionen zwischen unterschiedlichen Dateien. Dieselbe Datei erneut in denselben Ordner zu exportieren ersetzt ihre vorherige Ausgabe, ohne foto-2, foto-3 usw. anzuhäufen.
Die Installation überprüfen
Überprüfe jederzeit, dass der Befehl korrekt antwortet:
jpgboost-cli --help