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

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  |  中文

CI Release Stars License Chrome Web Store

Taprun: AI compiles a Hacker News tap once for $0.42, then replays forever at $0 per run


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

TaprunAgentes de Navegador com IAScrapers Tradicionais
Custo de IA por execução$0 (compila uma vez)Tokens a cada execuçãoGrátis
PrecisãoDeterminísticaVaria a cada execuçãoDeterminística
Detecção de falha silenciosaPredicado CEL snapshot_equivalent por tap + veredito de 4 braçosNenhumaNenhuma
Diagnóstico de quebrastap verify — diff exato do que mudouNenhumVerificações manuais pontuais
Risco de detecçãoBaixo (sessões reais de navegador)AltoAlto
Runtimes2 (extensão do Chrome + Playwright)11
Código inspecionável.flow.json — JSON puro, vocabulário fechado de 18 ops, git diffCaixa preta / efêmeroScripts frágeis
Nativo MCPSim (apenas camada de autoria — execução é zero tokens)NãoNã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 embed são dados, não código: adicione uma linha em ~/.tap/embed-targets.json e o novo agente funciona imediatamente — sem lançamento de engine. Cada linha nomeia um dos quatro tipos de instalação (cc-plugin para hosts de plugin Claude-Code, cli-mcp-add para 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-extension para 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 npx já 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.mcpb e 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"] } } }
PlataformaDownload
macOS (Apple Silicon)tap-macos-arm64
macOS (Intel)tap-macos-x64
Linuxtap-linux-x64
Windowstap-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
AdaptadorFormato de origemCobertura
@taprun/from-playwrightTestes .ts/.js Playwright8 APIs page.* (goto/click/fill/type/press/waitForSelector/waitForTimeout/screenshot)
@taprun/from-puppeteerScripts .ts/.js Puppeteer7 APIs page.* + page.keyboard.press
@taprun/from-stagehandScripts .ts/.js StagehandHí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)
  1. Você descreve o que quer (URL × intenção em linguagem natural)
  2. A IA compila em um programa .flow.json — JSON puro, vocabulário fechado de 18 ops, versionado
  3. 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çãoSDKs de navegador cloud-firstTaprun (local-first)
Onde os cookies logados vivem?Nos servidores do fornecedor de nuvemApenas no seu navegador local
O que a IA vê?A sessão completa + seus dadosApenas o DOM da página durante a forja
Conformidade com noindex / robots.txt / ToSFornecedor assina ToS por vocêSua conta, seus termos
Sites internos / intranetPrecisam de túnel VPNBasta abrir a página
Risco de descontinuaçãoFornecedor cai → seus scrapers paramCódigo local continua rodando
CamadaProteção
SandboxProgramas rodam com zero permissões — sem acesso a arquivos, rede ou sistema
Análise EstáticaCI bloqueia padrões perigosos antes que cheguem aos usuários
Somente localSeus 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 verify verificaçã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 (ou tap 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

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.

Histórico de Estrelas

Star History Chart