Para um PNG de uma página pública a partir de um script de shell ou de um job de CI, uma ferramenta de linha de comando basta: openscreenshot, shot-scraper, capture-website-cli ou pageres-cli. Quando a captura precisa de login, cliques, asserções ou vídeo, escreva-a com Playwright ou Puppeteer. Para um agente de IA, um servidor MCP local retorna capturas de tela ao modelo: openscreenshot serve faz uma captura por chamada, e o Playwright MCP controla uma sessão inteira do navegador.
O pacote openscreenshot é nosso produto, e esta página diz onde ele é a opção mais fraca. Ela compara recursos e não classifica as ferramentas. Todos os fatos são de 17 de outubro de 2026 e vêm do repositório, do registro de pacotes ou da documentação oficial de cada projeto, com links abaixo.
As ferramentas em resumo
| Ferramenta | Linguagem / runtime | Página inteira | CLI | MCP | Vídeo | Licença |
|---|---|---|---|---|---|---|
| openscreenshot | Node.js 22.12+, Chrome, Chromium ou Edge instalado | --full |
Sim | Sim, stdio | Não | MIT |
| shot-scraper | Python 3.10+, navegadores do Playwright | Padrão | Sim | Não listado | Sim, WebM ou MP4 | Apache-2.0 |
| capture-website-cli | Node.js 20+, Chrome do Puppeteer | --full-page |
Sim | Não listado | Não | MIT |
| pageres-cli | Node.js 20+, Chrome do Puppeteer | Padrão | Sim | Não listado | Não | MIT |
| Playwright | Node.js, Python, Java, .NET | fullPage: true |
Executor de testes, playwright-cli |
Pelo Playwright MCP | Sim | Apache-2.0 |
| Puppeteer | Node.js 22.12+ | fullPage: true |
Não listado | Pelo chrome-devtools-mcp | Sim, MP4 no Chrome | Apache-2.0 |
| Playwright MCP | Node.js via npx, ou Docker |
Parâmetro fullPage |
Só servidor | Sim, stdio ou HTTP | Sim, opcional | Apache-2.0 |
“Não listado” significa que a documentação do próprio projeto que consultamos não descreve o recurso.
openscreenshot (CLI e servidor MCP)
O openscreenshot controla o Chrome, Chromium ou Edge que já está no seu computador por meio do puppeteer-core, então ele não baixa nenhum navegador. Um comando salva um PNG de página inteira:
npx openscreenshot shot https://example.com --out example.png --full
As flags são --out (um arquivo, ou - para stdout), --full, --width (de 200 a 3840, padrão 1280), --height (de 200 a 2160, padrão 800) e três flags de ocultação: --redact (um seletor CSS), --redact-pattern (email, phone ou secret) e --redact-rect (um retângulo em pixels). A ocultação desenha tarjas pretas na página antes da captura. O código de saída 0 significa que um PNG foi gravado, 1 significa que a captura falhou e 2 significa uso incorreto. openscreenshot serve inicia um servidor MCP via stdio com uma ferramenta, capture_screenshot, que recebe url, fullPage, width, height e redact e retorna o conteúdo de uma imagem PNG. O guia da CLI, o guia do MCP e o guia de CI explicam a configuração, e o código-fonte é a referência.
Onde ele é a opção mais fraca:
- Cada captura inicia um navegador novo com um perfil vazio. Ele não tem cookies, login, cliques nem espera por seletores, então uma página que exige login mostra a tela de login.
- A navegação espera por
networkidle2por até 30 segundos, sem opção de espera extra. Páginas que renderizam depois que a rede fica ociosa podem sair carregadas pela metade. - A saída é só PNG, sem PDF nem vídeo.
- O servidor MCP é só local via stdio, sem URL hospedada nem transporte HTTP. A ferramenta retorna uma imagem e não grava um arquivo.
- O navegador é executado com
--no-sandboxpara funcionar em contêineres. Capture só URLs em que você confia. - No Windows, o Edge e as instalações do Chrome por usuário não são detectados; defina
CHROME_PATH.
Para páginas com sessão iniciada, anotações ou exportação manual em PDF, use a extensão de navegador.
shot-scraper
O shot-scraper é uma ferramenta em Python baseada no Playwright. Instale-o, baixe o navegador dele e faça uma captura, segundo a documentação de capturas dele:
pip install shot-scraper
shot-scraper install
shot-scraper https://example.com -o example.png
Quando você omite --height, a captura é de página inteira. --selector captura um elemento, shot-scraper pdf salva um PDF e multi executa uma lista YAML de capturas. O comando video, adicionado na 1.10, grava WebM a partir de um roteiro em YAML, e --mp4 converte o vídeo com o ffmpeg. O Chromium é o navegador padrão, e o Firefox e o WebKit podem ser instalados. Escolha-o quando sua equipe trabalha em Python ou quando você quer capturas de tela, PDFs e vídeos de demonstração roteirizados em uma só ferramenta.
capture-website-cli
O capture-website-cli é uma ferramenta Node.js de Sindre Sorhus que captura páginas com o Puppeteer. O padrão é a área de visualização; --full-page captura toda a página com rolagem:
npm install --global capture-website-cli
capture-website https://example.com --output=screenshot.png --full-page
Sem --output, ele grava a imagem no stdout. Ele gera PNG, JPEG ou WebP. Flags como --element, --hide-elements, --remove-elements, --click-element, --dark-mode, --style e --script preparam a página antes da captura, o que o openscreenshot não faz. Escolha-o quando você precisa ocultar banners de cookies ou injetar CSS antes de uma captura.
pageres-cli
O pageres-cli captura várias URLs em várias resoluções em uma única execução:
pageres https://example.com 1366x768 1600x900
Ele captura cada par de URL e resolução, em página inteira por padrão; --crop limita cada imagem à altura definida. A saída é PNG ou JPEG, e o tamanho padrão é 1366x768. Palavras-chave de dispositivo como iphone5s não são mais compatíveis. A atividade é baixa: a última versão, v9.0.0, de 9 de setembro de 2025, aumentou o requisito do Node.js para 20 e adicionou três flags. Escolha-o para uma verificação responsiva rápida em várias larguras.
Playwright
O Playwright é o framework de automação e testes da Microsoft para Chromium, Firefox e WebKit, com bindings para Node.js, Python, Java e .NET. Uma captura de página inteira é uma opção de page.screenshot:
await page.screenshot({ path: 'page.png', fullPage: true });
page.pdf() gera um PDF com CSS de impressão. A gravação de vídeo é uma opção do contexto, e o executor de testes pode guardar o vídeo só dos testes que falharam. O Playwright CLI (@playwright/cli) é uma ferramenta de linha de comando separada para automação de navegador a partir de agentes de programação. Escolha o Playwright quando a captura é uma etapa de um teste que faz login, clica e faz asserções.
Puppeteer
O Puppeteer é a biblioteca Node.js do Google para Chrome e Firefox. npm i puppeteer baixa o Chrome for Testing quando o script de instalação dele é executado. Gerenciadores de pacotes que bloqueiam scripts de instalação precisam de npx puppeteer browsers install. As opções de captura usam o mesmo formato:
await page.screenshot({ path: 'page.png', fullPage: true });
page.pdf() gera um PDF com CSS de impressão. page.record(), adicionado no puppeteer-core 25.10.0, grava MP4 no Chrome. O Firefox é executado via WebDriver BiDi, onde alguns recursos não são compatíveis. Para agentes, o README do Puppeteer indica o chrome-devtools-mcp, um servidor MCP baseado no Puppeteer. O openscreenshot é uma camada fina sobre o puppeteer-core, então use o Puppeteer diretamente quando você precisar de mais do que as opções de captura dele.
Playwright MCP
O Playwright MCP permite que um agente controle um navegador por meio de snapshots de acessibilidade, então ele não precisa de um modelo de visão. O README dele traz esta configuração padrão:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
A ferramenta browser_take_screenshot recebe um parâmetro fullPage e retorna PNG, JPEG ou WebP. As ferramentas de PDF e vídeo são opcionais e ativadas por --caps. O navegador é executado com interface visível por padrão e mantém um perfil persistente, então os logins podem continuar ativos; --isolated, --storage-state e --extension (para se conectar a um Chrome ou Edge em execução) mudam isso. --port serve HTTP em vez de stdio. Ele ainda está em uma versão 0.0.x (v0.0.83). Escolha-o em vez de openscreenshot serve quando o agente precisa fazer login, clicar ou preencher formulários.
Qual escolher
- Um PNG de uma página pública em um script ou artefato de CI: openscreenshot, shot-scraper ou capture-website-cli.
- A mesma página em várias larguras: pageres-cli.
- Ocultar elementos ou injetar CSS antes: capture-website-cli ou shot-scraper.
- PDF ou um vídeo de demonstração roteirizado pela linha de comando: shot-scraper.
- Login, cliques e asserções em uma suíte de testes: Playwright ou Puppeteer.
- Um agente que só precisa olhar uma página:
openscreenshot serve. - Um agente que precisa interagir com a página ou fazer login: Playwright MCP.
- Uma pessoa que captura e anota páginas com sessão iniciada: uma extensão; veja a comparação de extensões de página inteira.