Per un PNG di una pagina pubblica da uno script di shell o da un job di CI basta uno strumento a riga di comando: openscreenshot, shot-scraper, capture-website-cli o pageres-cli. Quando la cattura richiede un login, clic, asserzioni o video, scrivila con Playwright o Puppeteer. Per un agente AI, un server MCP locale restituisce gli screenshot al modello: openscreenshot serve fa uno screenshot per chiamata, e Playwright MCP guida un’intera sessione del browser.
Il pacchetto openscreenshot è un nostro prodotto, e questa pagina dice dove è la scelta più debole. Confronta le funzioni e non stila una classifica degli strumenti. Tutti i fatti sono aggiornati al 17 ottobre 2026 e vengono dal repository, dal registro dei pacchetti o dalla documentazione ufficiale di ogni progetto, con i link qui sotto.
Gli strumenti in sintesi
| Strumento | Linguaggio / runtime | Pagina intera | CLI | MCP | Video | Licenza |
|---|---|---|---|---|---|---|
| openscreenshot | Node.js 22.12+, Chrome, Chromium o Edge installato | --full |
Sì | Sì, stdio | No | MIT |
| shot-scraper | Python 3.10+, browser di Playwright | Predefinita | Sì | Non indicato | Sì, WebM o MP4 | Apache-2.0 |
| capture-website-cli | Node.js 20+, Chrome di Puppeteer | --full-page |
Sì | Non indicato | No | MIT |
| pageres-cli | Node.js 20+, Chrome di Puppeteer | Predefinita | Sì | Non indicato | No | MIT |
| Playwright | Node.js, Python, Java, .NET | fullPage: true |
Test runner, playwright-cli |
Tramite Playwright MCP | Sì | Apache-2.0 |
| Puppeteer | Node.js 22.12+ | fullPage: true |
Non indicato | Tramite chrome-devtools-mcp | Sì, MP4 in Chrome | Apache-2.0 |
| Playwright MCP | Node.js tramite npx, o Docker |
Parametro fullPage |
Solo server | Sì, stdio o HTTP | Sì, su attivazione | Apache-2.0 |
«Non indicato» significa che la documentazione del progetto che abbiamo consultato non descrive la funzione.
openscreenshot (CLI e server MCP)
openscreenshot guida il Chrome, Chromium o Edge già presente sul tuo computer tramite puppeteer-core, quindi non scarica alcun browser. Un solo comando salva un PNG a pagina intera:
npx openscreenshot shot https://example.com --out example.png --full
I flag sono --out (un file, o - per stdout), --full, --width (da 200 a 3840, predefinito 1280), --height (da 200 a 2160, predefinito 800) e tre flag di oscuramento: --redact (un selettore CSS), --redact-pattern (email, phone o secret) e --redact-rect (un rettangolo in pixel). L’oscuramento disegna riquadri neri nella pagina prima dello screenshot. Il codice di uscita 0 significa che è stato scritto un PNG, 1 che la cattura non è riuscita e 2 un uso errato. openscreenshot serve avvia un server MCP su stdio con un solo strumento, capture_screenshot, che accetta url, fullPage, width, height e redact e restituisce un’immagine PNG. La guida alla CLI, la guida MCP e la guida alla CI coprono la configurazione, e il sorgente è il riferimento.
Dove è la scelta più debole:
- Ogni cattura avvia un browser nuovo con un profilo vuoto. Non ha cookie, login, clic o attese su selettori, quindi una pagina dietro login mostra la schermata di login.
- La navigazione aspetta
networkidle2fino a 30 secondi, senza opzioni di attesa aggiuntive. Le pagine che si completano dopo che la rete si è calmata possono risultare caricate a metà. - L’output è solo PNG, senza PDF né video.
- Il server MCP è solo stdio locale, senza URL ospitato né trasporto HTTP. Lo strumento restituisce un’immagine e non scrive un file.
- Il browser gira con
--no-sandboxper funzionare nei container. Cattura solo URL di cui ti fidi. - Su Windows, Edge e le installazioni di Chrome per singolo utente non vengono rilevati; imposta
CHROME_PATH.
Per pagine con accesso, annotazioni o esportazione PDF a mano, usa l’estensione per il browser.
shot-scraper
shot-scraper è uno strumento Python basato su Playwright. Installalo, scarica il suo browser e fai uno screenshot, secondo la sua documentazione sugli screenshot:
pip install shot-scraper
shot-scraper install
shot-scraper https://example.com -o example.png
Quando ometti --height, lo screenshot è a pagina intera. --selector cattura un elemento, shot-scraper pdf salva un PDF e multi esegue un elenco YAML di screenshot. Il comando video, aggiunto nella 1.10, registra un WebM da uno storyboard YAML, e --mp4 lo converte con ffmpeg. Chromium è il browser predefinito, e Firefox e WebKit si possono installare. Sceglilo quando il tuo team lavora in Python o vuoi screenshot, PDF e video dimostrativi scriptati da un solo strumento.
capture-website-cli
capture-website-cli è uno strumento Node.js di Sindre Sorhus che cattura le pagine con Puppeteer. Il valore predefinito è la viewport; --full-page cattura l’intera pagina scorrevole:
npm install --global capture-website-cli
capture-website https://example.com --output=screenshot.png --full-page
Senza --output, scrive l’immagine su stdout. Produce PNG, JPEG o WebP. Flag come --element, --hide-elements, --remove-elements, --click-element, --dark-mode, --style e --script preparano la pagina prima della cattura, cosa che openscreenshot non sa fare. Sceglilo quando devi nascondere i banner dei cookie o iniettare CSS prima di una cattura.
pageres-cli
pageres-cli cattura più URL a più risoluzioni in un’unica esecuzione:
pageres https://example.com 1366x768 1600x900
Cattura ogni coppia di URL e risoluzione, a pagina intera per impostazione predefinita; --crop limita ogni immagine all’altezza impostata. L’output è PNG o JPEG, e la dimensione predefinita è 1366x768. Le parole chiave dei dispositivi come iphone5s non sono più supportate. L’attività è scarsa: l’ultima release, v9.0.0 del 9 settembre 2025, ha alzato il requisito di Node.js a 20 e aggiunto tre flag. Sceglilo per un rapido controllo responsive su più larghezze.
Playwright
Playwright è il framework di automazione e test di Microsoft per Chromium, Firefox e WebKit, con binding per Node.js, Python, Java e .NET. Uno screenshot a pagina intera è un’opzione di page.screenshot:
await page.screenshot({ path: 'page.png', fullPage: true });
page.pdf() genera un PDF con il CSS di stampa. La registrazione video è un’opzione del contesto, e il test runner può conservare il video solo per i test falliti. Playwright CLI (@playwright/cli) è uno strumento a riga di comando separato per l’automazione del browser da parte degli agenti di programmazione. Scegli Playwright quando lo screenshot è un passaggio di un test che fa login, clicca e verifica asserzioni.
Puppeteer
Puppeteer è la libreria Node.js di Google per Chrome e Firefox. npm i puppeteer scarica Chrome for Testing quando viene eseguito il suo script di installazione. I gestori di pacchetti che bloccano gli script di installazione richiedono npx puppeteer browsers install. Le opzioni degli screenshot hanno la stessa forma:
await page.screenshot({ path: 'page.png', fullPage: true });
page.pdf() genera un PDF con il CSS di stampa. page.record(), aggiunto in puppeteer-core 25.10.0, registra MP4 in Chrome. Firefox funziona tramite WebDriver BiDi, dove alcune funzioni non sono supportate. Per gli agenti, il README di Puppeteer rimanda a chrome-devtools-mcp, un server MCP basato su Puppeteer. openscreenshot è un sottile wrapper attorno a puppeteer-core, quindi usa Puppeteer direttamente quando ti serve più delle sue opzioni di cattura.
Playwright MCP
Playwright MCP permette a un agente di guidare un browser tramite snapshot di accessibilità, quindi non ha bisogno di un modello visivo. Il suo README fornisce questa configurazione standard:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
Lo strumento browser_take_screenshot accetta un parametro fullPage e restituisce PNG, JPEG o WebP. Gli strumenti per PDF e video si attivano tramite --caps. Il browser gira con interfaccia visibile per impostazione predefinita e mantiene un profilo persistente, quindi i login possono restare attivi; --isolated, --storage-state e --extension (per collegarsi a un Chrome o Edge in esecuzione) cambiano questo comportamento. --port serve via HTTP invece che via stdio. È ancora una release 0.0.x (v0.0.83). Sceglilo al posto di openscreenshot serve quando l’agente deve accedere, cliccare o compilare moduli.
Quale scegliere
- Un PNG di una pagina pubblica in uno script o come artefatto di CI: openscreenshot, shot-scraper o capture-website-cli.
- La stessa pagina a più larghezze: pageres-cli.
- Nascondere elementi o iniettare CSS prima: capture-website-cli o shot-scraper.
- PDF o un video dimostrativo scriptato dalla riga di comando: shot-scraper.
- Login, clic e asserzioni in una suite di test: Playwright o Puppeteer.
- Un agente che deve solo guardare una pagina:
openscreenshot serve. - Un agente che deve interagire con la pagina o accedere: Playwright MCP.
- Una persona che cattura e annota pagine con accesso: un’estensione; vedi il confronto tra estensioni per la pagina intera.