Tap
IA forja automação de navegador como programas determinísticos .tap.js. Mais de 140 habilidades da comunidade, 3 runtimes. Programas rodam para sempre a $0.
Documentação
Taprun
A camada de ação que seu agente dirige no seu próprio navegador já logado — para os últimos 20% repletos de exceções e críticos para conformidade que APIs limpas não alcançam. Compilado uma vez, reproduzido para sempre com zero tokens de LLM.
Página inicial | Blog | Alegações Verificadas | 📬 Alertas de Deriva | 中文
A camada de ação de circuito fechado do seu agente para o navegador — os últimos 20% atrás de logins, repletos de exceções e críticos para conformidade que APIs limpas e agentes em nuvem não alcançam. Dirigido no seu próprio Chrome, capturado uma vez, reproduzido para sempre com zero tokens de LLM.
À medida que as APIs são isoladas e medidas, o trabalho que sobrevive vive atrás de logins, muros de OTP e portões de gestos humanos — as exceções, aprovações e etapas de conformidade que um agente em nuvem arquiteturalmente não pode tocar. Taprun é a camada de ação exatamente para isso: seu agente dirige seu Chrome real, já logado, fecha o circuito (agir → verificar o efeito → reexecutar em caso de deriva) e entrega a você uma reprodução determinística que você possui.
Todo outro agente de navegador reexecuta um LLM ao vivo — e queima tokens novamente — a cada execução. O agente de IA do Taprun inspeciona a página uma vez e emite um programa determinístico .flow.json; toda reprodução depois disso é puro despacho de dados — mesmo resultado a cada chamada, $0 em tokens, sem agente no circuito. Ele roda no seu Chrome real, então cookies e sessões de login permanecem na sua máquina por arquitetura. tap verify detecta quebras antes que seus dados fiquem obsoletos.
Funciona com Claude Code, CodeBuddy, Cursor, Cline, Windsurf e qualquer host MCP — instale direto da janela de chat. Forje um tap de qualquer URL sob demanda — sem necessidade de catálogo.
Capture: AI inspects the site → compiles a .flow.json program (one-time cost)
Run: The program executes instantly, same result every time ($0, zero AI)
Verify: tap verify checks the snapshot equivalence predicate (catches drift)
Repair: re-run capture against the same site/name; the next (only when needed)
verify rebaselines after human review
Como o Taprun se Compara
| Taprun | Agentes de Navegador com IA | Scrapers Tradicionais | |
|---|---|---|---|
| Custo de IA por execução | $0 (compila uma vez) | Tokens a cada execução | Grátis |
| Precisão | Determinística | Varia a cada execução | Determinística |
| Detecção de falha silenciosa | Predicado CEL snapshot_equivalent por tap + veredito de 4 braços | Nenhuma | Nenhuma |
| Diagnóstico de quebras | tap verify — diff exato do que mudou | Nenhum | Verificações manuais pontuais |
| Risco de detecção | Baixo (sessões reais de navegador) | Alto | Alto |
| Runtimes | 2 (extensão do Chrome + Playwright) | 1 | 1 |
| Código inspecionável | .flow.json — JSON puro, vocabulário fechado de 18 ops, git diff | Caixa preta / efêmero | Scripts frágeis |
| Nativo MCP | Sim (apenas camada de autoria — execução é zero tokens) | Não | Não |
Comece Agora
1. Anexe ao seu agente — pela janela de chat
Claude Code / CodeBuddy — cole duas linhas no chat, nada mais:
/plugin marketplace add LeonTing1010/taprun
/plugin install tap@taprun
Isso instala o servidor MCP do Taprun mais as skills que ensinam seu agente quando usá-lo e o hook que roteia buscas bloqueadas para o Taprun — sem terminal, sem arquivo de configuração. (O CodeBuddy conecta servidores MCP de plugins apenas na inicialização, então reinicie-o completamente uma vez após instalar; o Claude Code os detecta com /reload-plugins.)
Qualquer outro host MCP (Cursor · VS Code · Claude Desktop) — um comando escreve a configuração para você:
npx -y @taprun/cli embed cursor # or: vscode | claude-desktop | claude-code | codebuddy | qwen
O binário se copia para ~/.tap/bin e a configuração MCP do seu agente é gravada. Verifique novamente a qualquer momento com tap embed --verify.
Usando um agente de codificação que não está nessa lista? Os alvos
tap embedsão dados, não código: adicione uma linha em~/.tap/embed-targets.jsone o novo agente funciona imediatamente — sem lançamento de engine. Cada linha nomeia um dos quatro tipos de instalação (cc-pluginpara hosts de plugin Claude-Code,cli-mcp-addpara CLIs com<cli> mcp add,ide-deeplink,desktop-bundle), por exemplo,[{"id":"kode","kind":"cc-plugin","display":"Kode CLI","tier":1,"cli":"kode"}]. Mesma doutrina do resto do Taprun — o engine permanece fechado e mecânico; você o estende em dados locais.
Agora escolha seu runtime — a extensão só é necessária para reutilizar seu Chrome ao vivo já logado:
- Páginas públicas / APIs abertas / CI — nada mais para instalar. O servidor MCP roda sobre
npx; você terminou. Acrescente--no-extensionpara um runtime Playwright totalmente no chat com seu próprio perfil isolado (sem gesto de navegador, sem clique). - Sites com login (seu banco / dashboard interno / Xiaohongshu / Zhihu) — basta dizer ao seu agente "configure tap para sites com login" direto no chat. A skill tap-setup conduz toda a ponte pelo chat: ela materializa o binário estável (do engine
npxjá baixado — sem segundo download) e registra o manifesto de mensagens nativas, depois abre a página da extensão. O único clique Adicionar ao Chrome é a única etapa que não é uma ação de chat — é o portão de confiança que permite ao Taprun reutilizar seu login existente, e a chamada em andamento é retomada automaticamente quando ele é concluído. - Claude Desktop: baixe
tap.mcpbe clique duas vezes.
Outros caminhos de instalação (brew · curl · MCP JSON manual · binários brutos)
brew install LeonTing1010/tap/taprun # Homebrew (macOS / Linux)
curl -fsSL https://taprun.dev/install.sh | sh # permanent binary
npx -y @taprun/cli --version # zero-install (any Node host)
Configuração MCP manual, se preferir escrever você mesmo:
{ "mcpServers": { "tap": { "command": "npx", "args": ["-y", "@taprun/cli", "mcp", "stdio"] } } }
| Plataforma | Download |
|---|---|
| macOS (Apple Silicon) | tap-macos-arm64 |
| macOS (Intel) | tap-macos-x64 |
| Linux | tap-linux-x64 |
| Windows | tap-windows-x64.exe |
2. Prove que funciona (~2 minutos, sem login)
Execute a primeira entrada do registro de alegações — a verificação exata que seu CI noturno executa:
mkdir -p ~/.tap/flows/github
curl -fsSL https://raw.githubusercontent.com/LeonTing1010/tap-skills/main/claims/2026-07-11-github-trending-has-no-api/plan.json \
-o ~/.tap/flows/github/trending-no-api.flow.json
tap github/trending-no-api
"state": "committed" mais os repositórios em alta de hoje com zero tokens = sua instalação funciona e a alegação se sustenta.
3. Forje o seu próprio
tap capture https://news.ycombinator.com hn/front --intent "front-page stories with points"
tap hn/front # replay forever, $0
Ou apenas pergunte ao seu agente de IA:
You: What's trending on GitHub today?
Agent: Here are today's top repos — React compiler hit 734 stars...
You: Capture a tap for Douban top 250 movies
Agent: Done. Run `tap douban/top250` anytime — $0 per run.
Opcional: Dirija o binário do seu próprio código (TypeScript / Python)
Pule o MCP — chame o binário tap do seu próprio loop:
tap capture <url> hackernews/top --intent "front-page top stories"
tap hackernews/top --args '{}' # JSON-on-stdout, exit 0 on success
tap verify hackernews/top # 3-arm verdict (live / drifted / unreachable)
O CLI emite envelopes ToolResult<T> como JSON — mesma forma que a superfície MCP retorna — então qualquer linguagem com uma biblioteca de subprocesso pode dirigi-lo. Veja tap --help para a lista completa de verbos.
Tem um script existente de Playwright / Puppeteer / Stagehand?
Não reescreva. Converta com um dos adaptadores de código aberto — coloque seu código-fonte existente, obtenha um plano .flow.json compatível com Taprun:
# Existing Playwright script (47M weekly npm downloads — most likely the one you have)
npm install @taprun/from-playwright @taprun/spec
node -e "import('@taprun/from-playwright').then(m => console.log(m.playwrightToTap(require('fs').readFileSync('tests/login.spec.ts','utf8'), {site:'example', name:'login'})))"
# Or scaffold a new starter from scratch
npx create-tap-script github/trending https://github.com/trending
| Adaptador | Formato de origem | Cobertura |
|---|---|---|
@taprun/from-playwright | Testes .ts/.js Playwright | 8 APIs page.* (goto/click/fill/type/press/waitForSelector/waitForTimeout/screenshot) |
@taprun/from-puppeteer | Scripts .ts/.js Puppeteer | 7 APIs page.* + page.keyboard.press |
@taprun/from-stagehand | Scripts .ts/.js Stagehand | Híbrido: page.* determinístico mapeado para ops de plano; NL act/extract/observe sinalizado para vereditos de verificação honestos |
create-tap-script | (nenhum — gerador de scaffold) | Gera um envelope .flow.json inicial a partir de <site>/<name> <url> |
O formato em si é documentado em @taprun/spec — o pacote de superfície de protocolo público: tipos TypeScript para o Plano v2 (união fechada de 18 ops + união discriminada de Plano de leitura/escrita) + JSON Schema 2020-12 com $id resolvível em taprun.dev/spec/plan-v1/schema.json, protegido bidirecionalmente contra deriva em relação aos tipos TS. Ferramentas de terceiros (autocomplete $schema de IDE, validadores equivalentes a ajv em Python/Ruby/Go, camadas de governança, runtimes alternativos, hosts MCP com escopo de permissão ciente de plano) compilam contra este pacote sem depender do engine proprietário do Taprun. Referência do Plano-v1: taprun.dev/spec/plan-v1. Origem para todos os cinco pacotes: packages/ (veja packages/README.md para a visão geral do workspace).
O Que Você Pode Fazer?
Ler — Extraia dados de qualquer site
tap reddit/hot # Reddit front page
tap bilibili/trending # Bilibili trending
tap arxiv/search --keyword "LLM" # arXiv papers
Escrever — Opere qualquer site
tap xiaohongshu/publish --title "My Note" --images photo.jpg
tap zhihu/publish --title "My Article" --content "..."
Observar — Monitore mudanças
tap verify github/trending # spot drift; schedule via cron / launchd
Compor — Encadeie como pipes Unix
tap github/trending | tap filter --field stars --gt 500 | tap table
Forjar — Crie novas automações com IA
tap capture https://news.ycombinator.com hackernews/hot --intent "top stories" # API detected — compiled without AI
tap capture https://example.com mysite/home --intent "..." # BYOK Claude / GPT for the long tail
Traga seu próprio modelo — funciona com Claude, OpenAI, DeepSeek ou qualquer endpoint compatível com OpenAI, incluindo Ollama / LM Studio locais para forja totalmente offline:
tap config set ai.baseUrl http://localhost:11434/v1
tap config set ai.key ollama
tap config set ai.model llama3.1
tap capture https://arxiv.org/list/cs.AI/recent arxiv/recent --intent "recent papers" # 0 bytes leave your machine
Como Funciona
┌─ Chrome extension (your real browser sessions)
You → AI → Taprun ──────┤
capture └─ Playwright (headless, server, CI/CD)
- Você descreve o que quer (URL × intenção em linguagem natural)
- A IA compila em um programa
.flow.json— JSON puro, vocabulário fechado de 18 ops, versionado - O Taprun executa o programa em qualquer runtime — para sempre, a $0
Cada compilação bem-sucedida torna a próxima mais rápida. Precisa de um tap para um novo site? Seu agente forja um sob demanda com capture — sem necessidade de catálogo.
Alegações Verificadas
tap-skills não é mais um catálogo de skills — é um registro de alegações: alegações datadas e falseáveis sobre a web ao vivo, cada uma com seu próprio plano determinístico, re-verificadas todas as noites por CI com zero tokens de LLM. Uma alegação que deriva muda para 🟡 publicamente, na mesma noite.
Verifique a primeira alegação você mesmo (~2 minutos, sem login, sem navegador):
mkdir -p ~/.tap/flows/github
curl -fsSL https://raw.githubusercontent.com/LeonTing1010/tap-skills/main/claims/2026-07-11-github-trending-has-no-api/plan.json \
-o ~/.tap/flows/github/trending-no-api.flow.json
npx -y @taprun/cli github/trending-no-api
Você obtém a verificação exata que o CI noturno obtém — reprodução determinística, mesmo resultado. O catálogo v1 de 140 skills é preservado intacto no branch v1-archive; catálogos pré-construídos só apodrecem, então os planos são forjados sob demanda com capture em vez disso.
tap verify <site>/<name> # Snapshot equivalence — catches silent failures before your data goes stale
tap list # See everything available
tap show <site>/<name> # Print the saved tap's plan as JSON
Local-first por arquitetura
A reprodução de zero tokens é o destaque; local-first é a garantia por baixo dele. O Taprun roda no seu navegador — a extensão do Chrome reutiliza suas sessões de login ao vivo, então cookies, tokens de autenticação e credenciais nunca saem da sua máquina. Uma escolha estrutural, não uma alegação de marketing:
| Preocupação | SDKs de navegador cloud-first | Taprun (local-first) |
|---|---|---|
| Onde os cookies logados vivem? | Nos servidores do fornecedor de nuvem | Apenas no seu navegador local |
| O que a IA vê? | A sessão completa + seus dados | Apenas o DOM da página durante a forja |
Conformidade com noindex / robots.txt / ToS | Fornecedor assina ToS por você | Sua conta, seus termos |
| Sites internos / intranet | Precisam de túnel VPN | Basta abrir a página |
| Risco de descontinuação | Fornecedor cai → seus scrapers param | Código local continua rodando |
| Camada | Proteção |
|---|---|
| Sandbox | Programas rodam com zero permissões — sem acesso a arquivos, rede ou sistema |
| Análise Estática | CI bloqueia padrões perigosos antes que cheguem aos usuários |
| Somente local | Seus dados, sessões e chaves de API nunca saem da sua máquina — arquiteturalmente |
Veja SECURITY.md para o modelo de ameaça completo.
Contribuindo
A maneira mais fácil de contribuir: forge um novo tap. Um arquivo .flow.json é tudo o que é preciso.
Veja CONTRIBUTING.md para detalhes.
Roadmap
- Catálogo de habilidades da comunidade — descontinuado em 2026-07 em favor do livro-razão de reivindicações (catálogo v1 arquivado)
- 2 runtimes — extensão do Chrome + Playwright (headless / CI)
- Pipes Unix —
tap A | tap B - Modo de observação — monitore mudanças ao longo do tempo
- Verificação —
tap verifyverificação de equivalência de snapshot com veredito de deriva de 4 braços (equivalente / desviado / primeiro_snapshot / inacessível) - Servidor MCP de comando único —
tap mcp stdio(outap mcp http) para qualquer host MCP - Runtime Android
- Runtime iOS
- Controle de concorrência — coordenação determinística para M agentes operando contas compartilhadas em paralelo
Suporte
- Discussões no GitHub — perguntas e respostas, ideias, mostre e conte
- support@taprun.dev — licenciamento, feedback privado, consultoria
- Issues — relatórios de bugs
Privacidade
O Taprun é local-first por arquitetura. Ele controla seu próprio navegador na sua própria máquina — credenciais, cookies e dados de página nunca saem dela. O mecanismo não envia telemetria e não faz chamadas de rede de saída, exceto aquelas que seus próprios taps salvos direcionam explicitamente (op:fetch). Taps salvos, segredos e rastros ficam em ~/.tap/ apenas na sua máquina.
Política completa: taprun.dev/privacy.
Licença
Extensão do Chrome e documentação: MIT. Livro-razão de reivindicações: MIT.