Taprun
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
The action layer your agent drives in your own logged-in browser — for the exception-heavy, compliance-critical last 20% that clean APIs can't reach. Compiled once, replayed forever at zero LLM tokens.
Homepage |
Blog |
Verified Claims |
📬 Drift Alerts |
中文
---
**Your agent's closed-loop action layer for the browser — the login-gated, exception-heavy, compliance-critical last 20% that clean APIs and cloud agents can't reach. Driven in your own Chrome, captured once, replayed forever at zero LLM tokens.**
As APIs get walled off and metered, the work that survives lives behind logins, OTP walls, and human-gesture gates — the exceptions, approvals, and compliance steps a cloud agent architecturally can't touch. Taprun is the action layer for exactly that: your agent drives your real, already-logged-in Chrome, closes the loop (act → verify the effect → re-run on drift), and hands you a deterministic replay you own.
Every other browser agent re-runs a live LLM — and re-burns tokens — on every execution. Taprun's AI agent inspects the page **once** and emits a deterministic .flow.json program; every replay after that is pure data dispatch — same result every call, **$0 in tokens, no agent in the loop**. It runs in your real Chrome, so cookies and login sessions stay on your machine by architecture. tap verify catches breakage before your data goes stale.
Works with Claude Code, CodeBuddy, Cursor, Cline, Windsurf, and any MCP host — install straight from the chat window. Forge a tap from any URL on demand — no catalog needed.
How Taprun Compares
| | Taprun | AI Browser Agents | Traditional Scrapers |
|--|-----|-------------------|---------------------|
| **AI cost per run** | $0 (compile once) | Tokens every run | Free |
| **Accuracy** | Deterministic | Varies per run | Deterministic |
| **Silent failure detection** | Per-tap CEL snapshot_equivalent predicate + 4-arm verdict | None | None |
| **Breakage diagnostics** | tap verify — exact diff of what changed | None | Manual spot checks |
| **Detection risk** | Low (real browser sessions) | High | High |
| **Runtimes** | 2 (Chrome extension + Playwright) | 1 | 1 |
| **Code inspectable** | .flow.json — bare JSON, 18-op closed vocabulary, git diff | Black box / ephemeral | Fragile scripts |
| **MCP native** | Yes (authoring layer only — execution is zero tokens) | No | No |
Get Started
1. Attach to your agent — from the chat window
**Claude Code / CodeBuddy** — paste two lines into the chat, nothing else:
That installs the Taprun MCP server **plus** the skills that teach your agent when to use it and the hook that routes walled fetches to Taprun — no terminal, no config file. (CodeBuddy wires plugin MCP servers at startup only, so **fully restart it once** after installing; Claude Code picks them up with /reload-plugins.)
**Any other MCP host** (Cursor · VS Code · Claude Desktop) — one command writes the config for you:
The binary self-copies to ~/.tap/bin and your agent's MCP config is written. Re-check anytime with tap embed --verify.
> **Using a coding agent that isn't in that list?** tap embed targets are *data, not code*: drop a row into ~/.tap/embed-targets.json and the new agent works immediately — no engine release. Each row names one of four install *kinds* (cc-plugin for Claude-Code-plugin hosts, cli-mcp-add for CLIs with a mcp add, ide-deeplink, desktop-bundle), e.g. [{"id":"kode","kind":"cc-plugin","display":"Kode CLI","tier":1,"cli":"kode"}]. Same doctrine as the rest of Taprun — the engine stays closed and mechanical; you extend it in local data.
Now pick your runtime — **the extension is only needed to reuse your *live* logged-in Chrome:**
- **Public pages / open APIs / CI — nothing more to install.** The MCP server runs over npx; you're done. Append --no-extension for a fully in-chat Playwright runtime with its own isolated profile (no browser gesture, no click).