La CLI di OpenScreenShot cattura una pagina web in PNG usando un browser compatibile con Chrome installato in locale. È un pacchetto separato dall’estensione per il browser. Con Node.js, pnpm e Chrome installati, esegui:

pnpm dlx openscreenshot shot https://example.com --out screenshot.png --full

Il comando avvia un browser headless separato, apre l’URL, scrive l’immagine e chiude il browser. Non si collega alle schede o al profilo con accesso del browser che usi ogni giorno.

Imposta la viewport in modo esplicito

Per uno screenshot della viewport, ometti --full. La larghezza predefinita è 1280 pixel e l’altezza predefinita è 800 pixel. Imposta entrambe quando un layout ha bisogno di una dimensione precisa:

pnpm dlx openscreenshot shot https://example.com --out desktop.png --width 1440 --height 900
pnpm dlx openscreenshot shot https://example.com --out narrow.png --width 390 --height 844

La larghezza accetta numeri interi da 200 a 3840; l’altezza accetta numeri interi da 200 a 2160. Una viewport stretta verifica il layout responsive a quella larghezza. Non emula l’input touch di un telefono, il rapporto di pixel del dispositivo o un browser mobile: la CLI usa uno user agent desktop.

Aggiungi --full per catturare oltre la viewport. La cattura a pagina intera del browser headless è diversa dall’implementazione a scorrimento e unione dell’estensione; non dare per scontato che ogni pagina dinamica appaia identica in entrambi i casi.

Salva un file o scrivi su stdout

Senza --out, il comando scrive screenshot.png nella directory corrente. Usa un nome file esplicito per rendere gli artefatti facili da identificare. Crea l’eventuale directory di output superiore prima di eseguire il comando.

--out - scrive i byte PNG su stdout:

pnpm dlx openscreenshot shot https://example.com --out - > screenshot.png

Usa un reindirizzamento sicuro per i dati binari. La CLI produce sempre PNG; chiamare l’output capture.jpg o capture.pdf non lo converte. Per immagini annotate o output PDF, usa l’editor dell’estensione.

Oscura prima di salvare

Tre flag coprono i dati con riquadri neri nella pagina prima dello screenshot, così i pixel non oscurati non arrivano mai nel PNG. Ripeti ogni flag per aggiungere altri target:

pnpm dlx openscreenshot shot https://example.com --out safe.png \
  --redact "#account-menu" --redact-pattern email,secret --redact-rect 0,0,200,40

--redact copre ogni elemento che corrisponde a un selettore CSS, con tutti i suoi figli. --redact-pattern copre testo e valori dei moduli che corrispondono a email, phone (da 9 a 15 cifre) o secret (formati comuni di chiavi API e token, e hash lunghi). --redact-rect x,y,w,h copre un rettangolo in pixel dell’immagine di output; usalo per canvas, immagini e iframe cross-origin.

La cattura fallisce con codice di uscita 1 e non scrive alcun file se un selettore non trova corrispondenze, se un rettangolo è fuori dall’immagine o se la pagina sposta un target durante la cattura. I pattern possono non rilevare testo diviso tra più elementi o disegnato in un’immagine, quindi controlla il PNG prima di condividerlo.

Risolvi gli errori comuni

Se Chrome non viene trovato, installalo o imposta CHROME_PATH sull’eseguibile del browser. Per esempio, su un sistema Linux dove Chromium è installato in quel percorso:

CHROME_PATH=/usr/bin/chromium pnpm dlx openscreenshot shot https://example.com --out screenshot.png

La navigazione aspetta networkidle2 con un timeout di 30 secondi. Il comando attuale non ha opzioni per attese personalizzate, attese su selettori, cookie o login. Una cattura riuscita non dimostra nemmeno che l’applicazione si sia caricata correttamente: controlla nel PNG pagine di errore, stati di caricamento e risorse mancanti.

Il codice di uscita 0 indica che il comando di cattura è stato completato, 1 indica un errore di cattura e 2 indica un uso non valido o argomenti non validi. Usa questi codici quando concateni i comandi, poi controlla l’immagine stessa.

Per artefatti ripetibili, leggi la guida alla cattura in CI. Per un flusso guidato da un agente, vedi la guida alla configurazione MCP. Il sorgente della CLI è il riferimento per i flag disponibili.