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.

Funzionalità Pro

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.

Niente da installare

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.

Se non usi sudo

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'app e la CLI contano come due installazioni distinte

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]
OpzioneFunzioneValore predefinito
--output <cartella>Cartella di destinazione, creata se non esisteObbligatoria
--quality <1-100>Qualità di compressione75
--format <formato>png, jpeg, heic, avif, webp o jxljpeg
--profile <nome>Applica un profilo di esportazione con nomeNessuno
--jobs <N>File elaborati in paralleloNumero di core
--jsonOutput JSON strutturato invece di testo leggibileDisattivato
--helpMostra 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
Guadagno misurato

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

CodiceSignificato
0Tutti i file sono stati elaborati con successo
77Nessuna licenza Pro valida su questa macchina
Diverso da zeroAlmeno 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.

Ripetere la stessa esportazione

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