Use o Thunderbit a partir do terminal — destile páginas em Markdown, extraia dados estruturados, sugira campos e processe em lote até 100 URLs. A CLI funciona de forma autônoma ou como um toolkit de skills que agentes de codificação AI podem descobrir.
Destile, extraia, sugira campos e execute jobs em lote diretamente do terminal.
Antes de usar a CLI, você precisa autenticar com sua API key do Thunderbit. Obtenha uma key no Thunderbit Dashboard. Formato: tb_ seguido de 32 caracteres hex.
Para gateways Thunderbit auto-hospedados, sobrescreva a base URL:
# Per callthunderbit --base-url https://api.your-domain.com distill https://example.com# Or set via environment variableexport THUNDERBIT_API_BASE_URL=https://api.your-domain.comthunderbit distill https://example.com
# Use the basic JS renderer (covers most modern sites)thunderbit distill https://example.com --render-mode basic# Use the full headless browser (slowest, highest fidelity)thunderbit distill https://example.com --render-mode full# Geo-target for region-aware sitesthunderbit distill https://example.com --country-code DE# Bump per-page timeoutthunderbit distill https://example.com --timeout 60000# Use sync /distill instead of the default async submit + pollthunderbit distill https://example.com --sync
Extraia dados estruturados de uma página. O schema é um mapa plano de fieldName → instrução em linguagem natural — cada valor é uma dica que a AI usa para encontrar o campo na página.
Nota: o exemplo da spec OpenAPI upstream mostra JSON Schema ({type:"object",properties:…}). No momento da escrita, o servidor em produção espera o mapa plano de instruções mostrado abaixo; estamos alinhando a spec.
# Schema inline — mapa plano de campo → instruçãothunderbit extract https://example.com/product \ --schema '{"name":"product name","price":"the listed price as a number","currency":"3-letter currency code"}'# Schema a partir de arquivothunderbit extract https://example.com/product --schema ./schema.json# Salvar o JSON extraídothunderbit extract https://example.com/product --schema ./schema.json --format json -o data.json
A resposta sempre retorna data.data como um array, um elemento por região da página que corresponda ao seu schema:
# AI proposes fields, you toggle/edit, then extraction runs with the curated schemathunderbit extract https://example.com/product --interactive# Steer the suggestion with a promptthunderbit extract https://example.com/product -i --prompt "focus on pricing and availability"# Persist the schema for reusethunderbit extract https://example.com/product -i --save-schema ./product-schema.json
Deixe a AI propor campos extraíveis antes de você escrever um schema.
# Basicthunderbit suggest-fields https://example.com/product# Steer with a promptthunderbit suggest-fields https://example.com/listings --prompt "extract job postings only"# Region-awarethunderbit suggest-fields https://example.com --country-code DE
O editor interativo permite alternar campos por número (1 3 5), add, rm 2, edit 4, e então done para confirmar. suggest-fields retorna [{name, type, instruction}, …]; quando você passa isso para o extract, transforme primeiro em um mapa plano:
Envie até 100 URLs em um único job em lote. Por padrão, faz submit + polling até COMPLETED / FAILED / CANCELLED.
# URLs as positional argsthunderbit batch distill https://a.com https://b.com https://c.com# Or read URLs from a file (one per line)thunderbit batch distill --file urls.txt# Submit only — print the job ID and exit (use webhook or poll later)thunderbit batch distill --file urls.txt --no-poll
As páginas já concluídas mantêm seus resultados. As páginas pendentes são descartadas e você deixa de ser cobrado por elas. O status muda para CANCELLED assim que o servidor confirma.
Sucesso. O resultado fica em stdout no formato escolhido por --format.
1
Qualquer falha — API key ausente, erro de auth, HTTP 4xx/5xx, erro de rede, arquivo de schema ausente, argumento obrigatório ausente.
Todo o texto de erro é escrito em stderr. Em caso de falha, stdout permanece vazio (sim, mesmo com --format json). Isso significa que um pipeline jq nunca recebe um envelope pela metade — verifique o exit code (ou set -e) antes de fazer parsing.
O progresso do polling (por exemplo Processing... (3) do async submit + poll) também é escrito em stderr. Faça pipe 2>/dev/null para silenciar. Chamadas síncronas de página única (--sync) não emitem progresso.
Error: API key is required. Exporte THUNDERBIT_API_KEY ou passe --api-key.
Erros de rede atrás de um proxy corporativo. Defina HTTPS_PROXY e HTTP_PROXY — clientes Node e Python ambos respeitam essas variáveis.
Polling de batch lento. Aumente --timeout para o orçamento por página. A cadência de polling em si é fixa em alguns segundos e atualmente não é configurável pela CLI.
A Thunderbit CLI é licenciada sob MIT e open source no GitHub: GitHub repository (o mesmo repositório também disponibiliza o servidor MCP e o plugin Claude Code). Distribuída no npm como @thunderbit/thunderbit-cli.