Riga di comando (jpgboost-cli)
jpgboost-cli comprime le tue immagini senza aprire l'interfaccia grafica. È lo strumento indicato per script, attività pianificate e integrazione continua.
La tua licenza copre fino a due installazioni che usi personalmente. L'applicazione e la CLI contano ciascuna come un'installazione distinta, anche quando entrambe sono installate sullo stesso Mac. Appaiono come dispositivi in Impostazioni > Licenza.
Un server che esegue solo la CLI per le tue automazioni, come un'integrazione continua o un'attività pianificata, può quindi occupare uno di questi due posti senza bisogno di una licenza aggiuntiva. Per maggiori informazioni, consulta le sezioni Licenza su un server e Una licenza per utente.
A cosa serve la riga di comando
jpgboost-cli è un eseguibile autonomo, incluso all'interno di JPGBoost.app. Non dipende né dall'API locale né da un'istanza in esecuzione dell'applicazione: usa direttamente lo stesso motore di decodifica e codifica, e produce quindi esattamente gli stessi file dell'interfaccia grafica.
È il punto di ingresso indicato ogni volta che non deve aprirsi alcuna interfaccia: uno script di shell, un'attività pianificata, un'integrazione continua, l'elaborazione di un gran numero di file.
jpgboost-cli è incluso in JPGBoost.app. Non è necessaria alcuna compilazione né installazione di librerie, poiché usa i componenti già integrati nell'applicazione.
Rendere il comando accessibile
L'eseguibile si trova all'interno del pacchetto dell'applicazione. Puoi richiamarlo direttamente con il suo percorso completo:
/Applications/JPGBoost.app/Contents/MacOS/jpgboost-cli --help
Per poter eseguire jpgboost-cli da qualsiasi cartella, crea un link simbolico una sola volta:
sudo ln -s /Applications/JPGBoost.app/Contents/MacOS/jpgboost-cli \
/usr/local/bin/jpgboost-cli
jpgboost-cli --help
Poiché il link punta al pacchetto, resta valido dopo un aggiornamento dell'applicazione. Gli esempi di questa pagina presuppongono questa installazione; senza di essa, sostituisci jpgboost-cli con il percorso completo sopra indicato.
Puoi usare una cartella personale invece di /usr/local/bin, ad esempio ~/bin, purché sia inclusa nel tuo PATH. Un'alternativa semplice è aggiungere un alias al tuo ~/.zshrc.
Licenza su un server
Una macchina che esegue solo la CLI, ad esempio un server senza interfaccia grafica, può essere attivata e gestita senza usare JPGBoost.app.
# Identificatore di questa macchina, dalla CLI
jpgboost-cli --machine-id
# Prima attivazione, con il token ricevuto via email dopo l'acquisto
jpgboost-cli --activate ACT-XXXX-XXXX-XXXX-XXXX-XXXX
# Da questo server già attivato, generare un codice per aggiungere un altro dispositivo
jpgboost-cli --add-device
# Unirsi a una licenza tramite un codice generato altrove (app o altra CLI)
jpgboost-cli --pair XXXX-XXXX
# Ottenere una versione più recente della licenza, se il server ne ha una
jpgboost-cli --sync
# Numero di installazioni usate / limite, e il loro elenco — lettura locale, senza chiamata di rete
jpgboost-cli --devices
L'applicazione e la CLI sono considerate due installazioni distinte, anche quando usate sullo stesso Mac. Ognuna ha il proprio identificatore di installazione e occupa quindi uno dei due posti consentiti da una licenza Pro.
Puoi quindi usare la tua licenza in diversi modi, ad esempio con l'app sul tuo Mac e la CLI su un server, con l'app e la CLI sullo stesso Mac, con l'app su due Mac diversi, o con la sola CLI su un server che non apre mai l'applicazione.
Sintassi e opzioni
jpgboost-cli <file...> --output <cartella> [opzioni]
| Opzione | Funzione | Valore predefinito |
|---|---|---|
--output <cartella> | Cartella di destinazione, creata se non esiste | Obbligatoria |
--quality <1-100> | Qualità di compressione | 75 |
--format <formato> | png, jpeg, heic, avif, webp o jxl | jpeg |
--profile <nome> | Applica un profilo di esportazione con nome | Nessuno |
--jobs <N> | File elaborati in parallelo | Numero di core |
--json | Output JSON strutturato invece di testo leggibile | Disattivato |
--help | Mostra la guida | — |
Primi esempi
# Due file verso WebP, qualità 60
jpgboost-cli foto1.jpg foto2.png --quality 60 --format webp --output ./compresse
# foto1.jpg: 4,2 MB -> 890 KB (-79%) -> ./compresse/foto1.webp
# foto2.png: 1,8 MB -> 620 KB (-66%) -> ./compresse/foto2.webp
#
# 2 file elaborato/i, 0 fallimento/i.
# Un'intera cartella verso AVIF
jpgboost-cli ~/Immagini/esporta/*.png --format avif --quality 65 --output ~/Immagini/web
Elaborazione in blocco e parallelismo
Per centinaia o migliaia di file, l'opzione --jobs elabora più immagini contemporaneamente. Ogni file viene decodificato, codificato e poi liberato in modo indipendente: il consumo di memoria non cresce con il numero di file in attesa, ma solo con il valore di --jobs.
# Otto file elaborati contemporaneamente
jpgboost-cli ~/Foto/gruppo/*.jpg --jobs 8 --format webp --output ~/Foto/web
# Uno alla volta, per limitare il carico su una macchina condivisa
jpgboost-cli ~/Foto/gruppo/*.jpg --jobs 1 --format webp --output ~/Foto/web
Su un gruppo di 12 file, --jobs 8 si è rivelato circa quattro volte più veloce di --jobs 1. Il guadagno reale dipende dal numero di core del tuo Mac e dal formato di destinazione: l'AVIF e il JPEG XL sono visibilmente più lenti da codificare rispetto al JPEG o all'HEIC.
Usare un profilo di esportazione
L'opzione --profile riutilizza un profilo creato nell'applicazione o tramite l'API. Completa solo ciò che non hai specificato esplicitamente.
# Il formato, la qualità e la cartella vengono tutti dal profilo
jpgboost-cli --profile "Web JPEG" *.png
# La cartella esplicita prevale, il resto viene dal profilo
jpgboost-cli --profile "Web JPEG" --output ./consegna *.png
La CLI può anche creare o aggiornare un profilo direttamente, senza passare da Impostazioni né dall'API locale:
jpgboost-cli --create-profile "Web JPEG" --format jpeg --quality 70 --output ./compresse
--format e --quality sono obbligatori, --output è opzionale (la cartella indicata deve già esistere). Un nome già usato sostituisce il profilo esistente invece di crearne un duplicato — lo stesso comportamento della scheda Profili dell'app e dell'API locale. Richiede JPGBoost Pro, come il resto della CLI.
Output JSON
Con --json, l'output è un array JSON in cui ogni file elaborato corrisponde a un oggetto JSON, con la stessa forma delle risposte dell'API locale, il che facilita il concatenamento con jq o qualsiasi altro strumento.
jpgboost-cli *.png --format webp --output ./output --json
# Concatenare con jq: mantenere solo i file con errore
jpgboost-cli *.png --format webp --output ./output --json \
| jq '.[] | select(.error != null)'
Campi disponibili: path, originalSizeBytes, compressedSizeBytes, ratio, destination e error.
Codici di uscita
| Codice | Significato |
|---|---|
0 | Tutti i file sono stati elaborati con successo |
77 | Nessuna licenza Pro valida su questa macchina |
| Diverso da zero | Almeno un file è fallito; utilizzabile direttamente in uno script o in un'integrazione continua |
File con lo stesso nome
Due file di input con lo stesso nome base puntano naturalmente allo stesso output. a/foto.jpg e b/foto.png convertiti in WebP produrrebbero entrambi foto.webp.
JPGBoost non li sostituisce: il secondo riceve un nome distinto.
a/foto.jpg -> foto.webp
b/foto.png -> foto-2.webp
I nomi vengono assegnati in base all'ordine degli argomenti, indipendentemente dall'ordine di esecuzione con --jobs, quindi il risultato è riproducibile. La stessa regola si applica nell'applicazione, nei Comandi Rapidi, in AppleScript e nelle cartelle monitorate.
Questa regola riguarda solo le collisioni tra file diversi. Esportare nuovamente lo stesso file nella stessa cartella sostituisce il suo output precedente, senza accumulare foto-2, foto-3, e così via.
Verificare l'installazione
Verifica in qualsiasi momento che il comando risponda correttamente:
jpgboost-cli --help