Taprun / agent action layer / zero-token replay ● local · 0 tokens · v0.29.0 Filed 2026-05-05

Your agent's action layer — in your own logged-in browser.

Your agent is the brain; Taprun is the hands. It drives your real, already-logged-in Chrome to do the work clean APIs and cloud agents can't reach — the login-gated, exception-heavy, compliance-critical last 20% every automation stalls on: OTP-gated pages, Cloudflare Turnstile checkpoints, logged-in dashboards. Your agent compiles the task once into a deterministic .plan.json; from then on it replays at zero tokens, credentials never leaving your machine — and closes the loop: act, verify the effect, re-run on drift. The Chrome extension is the bridge — add it below.

0
credentials uploaded, ever
$0.003
cost per replay at run #2 onward
70+
community taps, MIT, ready to run
~/.tap/plans/hn/top.plan.json
{ "site": "hn", "name": "top", "ops": [ { "op":"nav", "url":"news.ycombinator.com" }, { "op":"extract", "from":"jsonld[].headline" }, { "op":"tap", "as":"stories[]" } ] }
$ tap run hn/top
✓ 30 records · 0.41s · 0 tokens

One engine. Three delegators.

A browser task is delegable the moment its intent is frozen and no judgment is needed mid-run. The one who froze the intent can be a client, your past self, or your agent — the same compiled plan does the work either way.

The tell for the first door: does someone hand you their logins for this work? That handover proves everything at once — the task recurs, it's delegated, and the outcome matters. If that's your inbox, skip the docs and take the pilot.

Compile Once, Replay Forever

One AI compile. Infinite replays. Zero tokens.

Watch Taprun execute a pre-compiled plan. Same result every time, at $0 per run.

Taprun CLI
18-op plan
Extension
Your Chrome
GitHub
Your Session
tap run github-star
$ tap run github-star --verbose
Loading plan from ~/.tap/taps/github/LeonTing1010/tap...
✓ GitHub opened in new tab — check it out!

Every other browser SDK ships your session to a stranger's server.

Browserbase. Apify. Stagehand. Playwright Cloud. They all drive a browser they own. That means your cookies, your auth tokens, your live session — sitting on infrastructure you don't control. It isn't a bug. It's the only way their architecture can work.

  • Browserbase your cookies, your auth headers, your active session → their cloud
  • Apify login state, residential proxy fingerprint, scraped output → their cloud
  • Stagehand page DOM + LLM context on every run → openai + browserbase
  • browser-use $0.04 of tokens per step, hallucinated clicks included → token meter
  • Taprun nothing leaves your machine — extension reuses your live cookies → stays on disk

Pay the AI to think once. Then never pay it again.

Taprun compiles your task into an 18-op deterministic plan — a small JSON program AI never re-reads. Your Chrome replays it. The bill stops at compile time.

01

Capture once.

Point AI at a URL with intent. It probes JSON-LD, OpenAPI, RSS, ARIA — stable structural addresses, not fragile CSS selectors. It writes a Plan.

$ tap capture https://news.ycombinator.com hn/top # 12.4s · 1,840 tokens · saved to ~/.tap/plans/
02

Replay forever.

Your real Chrome — already logged in, already trusted — runs the plan locally. No tokens. No cloud round-trip. No "session expired" mid-flow.

$ tap run hn/top 30 stories · 0.41s · 0 tokens
03

Verify on drift.

When the site changes, snapshot-equivalence tells you before your pipeline notices. Re-capture heals it in seconds.

$ tap verify hn/top ✓ equivalent — substrate matches baseline

100 reruns. Two bills. One crossover.

Same task, same outputs. We ran a 12-step authenticated checkout flow 100 times against both systems. Here's what your accounting team actually sees.

browser-use, inc.

Invoice · Run #1–#100
LLM step inference × 1,200$3.84
Vision context / DOM × 100$0.28
Browserbase compute × 100$0.08
Subtotal$4.20
Hallucinated clicks7
Mid-run session fail2
TOTAL$ 4.20
★★☆☆☆ — keep paying every run

Taprun (open source)

Invoice · Run #1–#100
Compile (run #1, AI)$0.003
Replay × 99 (deterministic)$0.000
Cloud session storage
Hallucinated clicks0
Mid-run session fail0
Cookies uploaded0
TOTAL$ 0.003
★★★★★ — paid once, owned forever

Cloud SDKs price browser automation like a subscription to a clicker. Taprun prices it like a compiler — pay at build time, ship a binary, run for free.

#2
Crossover at run #2.
From there, the gap compounds.

And on run #50 — when the site changes — your cloud-SDK selectors silently rot. Taprun's verify arm flags it before your pipeline does.

Four verdicts. Zero ambiguity.

tap verify is read-only. It compares today's substrate to your baseline snapshot through a per-tap predicate you wrote. The verdict is one of four, always.

001 · Equivalent
Same substrate, same shape.
Predicate returned true. Today's snapshot matches your baseline. Replay is safe.
002 · Drifted
The site moved.
Predicate returned false in a way you said matters. Re-capture and the plan heals — same name, fresh baseline.
003 · First snapshot
Baseline laid.
No prior snapshot existed; today's becomes the reference. The next verify has something to compare against.
004 · Unreachable
The substrate fell down.
Network, auth, or page-load failed before the predicate ran. Not the plan's fault — and we say so.

A real run, no edits.

14:02:11.041[runtime] bridge=embedded · profile=persistent · session=reused14:02:11.042[tap] hn/top → run14:02:11.118[op:nav] https://news.ycombinator.com14:02:11.402[op:read] jsonld[].headline → 30 items stories[]14:02:11.412[op:project] stories | shape({title, url, by, score})14:02:11.418[done] 30 records · 0.41s · 0 tokens · 0 network round-trips after capture14:02:11.420[verdict] equivalent

Then it's yours.

No account. No API key handed to a vendor. No telemetry to opt out of. Install, connect your MCP host, run.

Install

One curl line, or your favourite package manager.Mac · Linux · Windows · all signed.

Connect MCP

Point Claude Code, Cursor, or any MCP host at taprun mcp stdio.Taprun appears as 12 tools across 3 namespaces.

Capture your first tap

tap capture a URL with intent — and you have a deterministic, replay-forever plan.Example tap pages at /taps; nightly-verified claims at tap-skills.

$npx -y @taprun/cli embed claude-code # or: cursor | vscode | claude-desktop # binary + MCP config + browser bridge — all written for you
$curl -fsSL https://taprun.dev/install.sh | sh $tap mcp stdio # point your MCP host at this command
$brew install LeonTing1010/tap/taprun $tap mcp stdio
$npx -y @taprun/cli --version $npx -y @taprun/cli mcp stdio
# ~/.claude/mcp.json (or your host's equivalent) { "mcpServers": { "tap": { "command": "npx", "args": ["-y", "@taprun/cli", "mcp", "stdio"] } } }

Stop renting your sessions to someone else's cloud.

Taprun is MIT-licensed, written in TypeScript on Deno, ships as a single signed binary. The Chrome extension is an open extension. No license server, no phone-home, no usage telemetry. Free to use and build on — or, if you'd rather buy the outcome than the tool, the done-for-you service is $99/month. See pricing.

Get told before your taps break.

When a site you automate changes its DOM, replays fail silently — and you find out in production. Subscribe and we send the patched connector before that happens. No product spam. Just drift.

Outbound only — we email you; nothing about your taps or sessions leaves your machine. Unsubscribe anytime.

Opening GitHub...
Click the ★ Star button in the top right to support us!