mcpField
T
Taprun

Taprun

远程服务
taprun.dev浏览器自动化1811 周前更新

关于 Taprun

Taprun 将浏览器任务编译为可重复运行的确定性 `.flow.json` 程序,并检查网站变化。它面向需要处理登录页面和复杂流程的 Agent,可通过用户的浏览器或 Playwright 执行任务。

主要功能

  1. 01将浏览器操作编译为 `.flow.json`
  2. 02确定性重放已编译程序
  3. 03检查页面快照以发现变化
  4. 04通过 Chrome 或 Playwright 运行
  5. 05读取、写入并监控网站
  6. 06按需捕获并创建自动化

适用场景

  1. 01提取网站信息
  2. 02自动化登录后的浏览器流程
  3. 03监控网站结构变化
  4. 04无需每次运行消耗 LLM 令牌,重复执行浏览器任务

MCP 相关

Taprun 提供 MCP 服务,供支持的 MCP 主机创建浏览器自动化。编译后的程序通过其浏览器运行时执行,无需每次重放都调用 LLM。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.taprun.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npm@taprun/cli0.29.2
pypitaprun0.29.2

工具

4
参数类型必填说明
urlstring否
intentstring否

详细介绍

Taprun

Taprun

Agent 在你自己的已登录浏览器中驱动的操作层,专为干净 API 无法触及、充满例外且合规要求严格的最后 20% 场景打造。编译一次,永久重放,LLM 令牌消耗为零。

主页  |  博客  |  已验证声明  |  📬 漂移提醒  |  中文

CI 发布版本 星标 许可证 Chrome 网上应用店

Taprun:AI 花费 $0.42 编译一次 Hacker News tap,之后永久重放,每次运行成本为 $0


为你的 Agent 提供浏览器闭环操作层,专门处理干净 API 和云端 Agent 无法触及、需要登录、充满例外且合规要求严格的最后 20% 场景。在你自己的 Chrome 中驱动,捕获一次,永久重放,LLM 令牌消耗为零。

随着 API 逐渐筑起高墙并开始计量收费,仍然需要处理的工作都藏在登录、OTP 验证墙和人为手势验证之后——云端 Agent 在架构上无法触及这些例外、审批和合规步骤。Taprun 正是为此提供操作层:你的 Agent 驱动真实且已登录的 Chrome,闭合操作环路(执行 → 验证效果 → 出现漂移时重新运行),并交付一份由你掌控的确定性重放程序。

其他所有浏览器 Agent 每次执行都会重新运行实时 LLM,也会再次消耗令牌。Taprun 的 AI Agent 只检查页面一次,并生成确定性的 .flow.json 程序;此后的每次重放都只是纯数据调度——每次调用结果一致,令牌成本为 $0,流程中不再需要 Agent。它运行在你的真实 Chrome 中,因此从架构上确保 Cookie 和登录会话留在你的设备上。tap verify 会在数据过时前捕获故障。

支持 Claude Code、CodeBuddy、Cursor、Cline、Windsurf 和任何 MCP 主机——直接从聊天窗口安装。按需从任意 URL 创建 tap,无需目录。

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

Taprun 对比

TaprunAI 浏览器 Agent传统爬虫
每次运行的 AI 成本$0(编译一次)每次运行都消耗 Token免费
准确性确定性每次运行各不相同确定性
静默故障检测每个点击的 CEL snapshot_equivalent 谓词 + 4 种结果判定无无
故障诊断tap verify — 精确显示发生变化的内容无手动抽查
检测风险低(真实浏览器会话)高高
运行时2(Chrome 扩展 + Playwright)11
代码可检查.flow.json — 纯 JSON、包含 18 个操作的封闭词汇表、git diff黑盒 / 临时文件脆弱的脚本
原生支持 MCP是(仅限创作层 — 执行不消耗 Token)否否

开始使用

1. 从聊天窗口连接到你的 Agent

Claude Code / CodeBuddy — 在聊天中粘贴两行,仅此而已:

/plugin marketplace add LeonTing1010/taprun
/plugin install tap@taprun

这会安装 Taprun MCP 服务,以及教会 Agent 何时使用它的技能,还有将受限站点的 fetch 请求路由到 Taprun 的钩子 — 无需终端,也无需配置文件。(CodeBuddy 仅在启动时连接插件 MCP 服务,因此安装后需要彻底重启一次;Claude Code 可通过 /reload-plugins 加载。)

其他 MCP 宿主(Cursor · VS Code · Claude Desktop)— 运行一条命令即可自动写入配置:

npx -y @taprun/cli embed cursor   # or: vscode | claude-desktop | claude-code | codebuddy | qwen

二进制文件会自动复制到 ~/.tap/bin,并写入 Agent 的 MCP 配置。随时运行 tap embed --verify 重新检查。

使用的编码 Agent 不在列表中? tap embed 的目标是数据,而非代码:在 ~/.tap/embed-targets.json 中添加一行,新 Agent 就会立即生效 — 无需发布引擎版本。每行定义四种安装类型之一(cc-plugin 适用于 Claude-Code-plugin 宿主、cli-mcp-add 适用于支持 <cli> mcp add 的 CLI、ide-deeplink、desktop-bundle),例如 [{"id":"kode","kind":"cc-plugin","display":"Kode CLI","tier":1,"cli":"kode"}]。这与 Taprun 一贯的设计理念相同 — 引擎保持封闭且机械化;你可以通过本地数据扩展它。

现在选择运行时 — 只有在需要复用已登录的当前 Chrome 会话时,才需要安装扩展:

  • 公共网页 / 开放 API / CI — 无需再安装任何内容。 MCP 服务通过 npx 运行;到此即可完成。附加 --no-extension,即可在纯聊天环境中使用 Playwright 运行时及其独立隔离配置文件(无需浏览器手势,也无需点击)。
  • 已登录的站点(你的银行 / 内部仪表板 / 小红书 / 知乎)— 直接在聊天中告诉 Agent “为已登录站点设置 tap”。tap-setup 技能会通过聊天完成整个桥接设置:生成稳定版二进制文件(使用引擎通过 npx 已下载的文件 — 无需二次下载)并注册原生消息清单,然后打开扩展页面。唯一不能通过聊天完成的步骤,是点击一次 添加到 Chrome — 这就是允许 Taprun 复用你现有登录状态的信任关卡;安装完成后,正在执行的调用会自动恢复。
  • Claude Desktop:下载 tap.mcpb 并双击。
其他安装方式(brew · curl · 手动配置 MCP JSON · 原始二进制文件)
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)

如果你更愿意自行编写,可手动配置 MCP:

{ "mcpServers": { "tap": { "command": "npx", "args": ["-y", "@taprun/cli", "mcp", "stdio"] } } }
平台下载
macOS(Apple Silicon)tap-macos-arm64
macOS(Intel)tap-macos-x64
Linuxtap-linux-x64
Windowstap-windows-x64.exe
### 2. 验证它是否有效(约 2 分钟,无需登录)

运行声明账本中的第一项——也就是其 nightly CI 运行的确切验证:

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" 加上今日热门仓库,且消耗 0 个令牌 = 安装有效,并且声明成立。

3. 打造你自己的自动化
tap capture https://news.ycombinator.com hn/front --intent "front-page stories with points"
tap hn/front        # replay forever, $0

或者直接询问你的 AI Agent:

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.
可选:从自己的代码中驱动二进制程序(TypeScript / Python)

跳过 MCP——在自己的循环中调用 tap 二进制程序:

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)

CLI 会将 ToolResult<T> 封装为 JSON 输出——形状与 MCP 接口返回的相同,因此任何带有子进程库的语言都可以驱动它。运行 tap --help 查看完整的动词列表。

已有 Playwright / Puppeteer / Stagehand 脚本?

无需重写。使用其中一个开源适配器进行转换——放入现有源代码,即可生成兼容 Taprun 的 .flow.json 计划:

# 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
适配器源格式覆盖范围
@taprun/from-playwright.ts/.js Playwright 测试8 个 page.* API(goto/click/fill/type/press/waitForSelector/waitForTimeout/screenshot)
@taprun/from-puppeteer.ts/.js Puppeteer 脚本7 个 page.* API + page.keyboard.press
@taprun/from-stagehand.ts/.js Stagehand 脚本混合模式:确定性的 page.* 会映射到计划操作;NL act/extract/observe 会标记出来,以确保验证结果如实
create-tap-script(无——脚手架工具)根据 <site>/<name> <url> 生成初始 .flow.json 封装

格式本身记录在 @taprun/spec 中——这是公共协议接口包:包含 v2 Plan 的 TypeScript 类型(18 种操作组成的封闭联合类型 + 带判别字段的读 / 写 Plan 联合类型),以及 JSON Schema 2020-12,其 $id 可通过 taprun.dev/spec/plan-v1/schema.json 解析,并与 TS 类型进行双向漂移保护。第三方工具(IDE $schema 自动补全、Python/Ruby/Go 中与 ajv 等效的验证器、治理层、替代运行时、具备计划感知权限范围的 MCP 主机)可基于此包构建,而无需依赖专有的 Taprun 引擎。Plan-v1 参考文档:taprun.dev/spec/plan-v1。全部五个包的源代码位于 packages/(工作区概览请参阅 packages/README.md)。

你可以做什么?

读取 — 从任何网站提取数据

tap reddit/hot                   # Reddit front page
tap bilibili/trending            # Bilibili trending
tap arxiv/search --keyword "LLM" # arXiv papers

写入 — 操作任何网站

tap xiaohongshu/publish --title "My Note" --images photo.jpg
tap zhihu/publish --title "My Article" --content "..."

监控 — 监测变化

tap verify github/trending        # spot drift; schedule via cron / launchd

组合 — 像 Unix 管道一样串联

tap github/trending | tap filter --field stars --gt 500 | tap table

打造 — 使用 AI 创建新的自动化

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

使用你自己的模型——兼容 Claude、OpenAI、DeepSeek,或任何 兼容 OpenAI 的端点,包括用于完全离线打造的 本地 Ollama / LM Studio:

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

工作原理

                        ┌─ Chrome extension  (your real browser sessions)
You → AI → Taprun ──────┤
     capture            └─ Playwright        (headless, server, CI/CD)
  1. 你描述想要实现的目标(URL × 自然语言意图)
  2. AI 编译出一个 .flow.json 程序——纯 JSON,采用 18 种操作组成的封闭词汇表,并进行版本控制
  3. Taprun 运行该程序,可使用任一运行时——永久运行,成本为 $0

每次成功编译都会让下一次更快。要为新网站创建一个 tap?你的 Agent 可以按需使用 capture 打造一个——无需目录。

已验证的声明

tap-skills 不再是技能目录,而是一个声明账本:针对实时网络、带日期且可证伪的声明,每条声明都附带自己的确定性计划,并由 CI 每晚重新验证,不消耗任何 LLM token。如果某条声明发生变化,当晚就会公开标记为 🟡。

亲自验证第一条声明(约 2 分钟,无需登录或浏览器):

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

你获得的验证结果与每晚 CI 完全相同——确定性重放,结果一致。包含 140 个技能的 v1 目录原封不动地保存在 v1-archive 分支中;预先构建的目录只会逐渐过时,因此计划改为通过 capture 按需生成。

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

架构上以本地为先

零 token 重放是核心卖点;以本地为先则是其底层保障。Taprun 在你的浏览器中运行——Chrome 扩展会复用你当前的登录会话,因此 Cookie、身份验证令牌和凭据绝不会离开你的设备。这是架构上的选择,而非营销宣传:

关注点以云端为先的浏览器 SDKTaprun(以本地为先)
已登录的 Cookie 存放在哪里?云服务供应商的服务器上仅在你的本地浏览器中
AI 能看到什么?完整会话和你的数据仅在生成时查看页面 DOM
是否符合 noindex / robots.txt / TOS 的要求?供应商代表你签署 ToS使用你的账户,遵守你的条款
内部 / 内网网站需要 VPN 隧道直接打开页面即可
停用风险供应商停运 → 你的抓取程序停止运行本地代码继续运行
层级保护措施
沙箱程序以零权限运行——无法访问文件、网络或系统
静态分析CI 会在危险模式触达用户之前将其拦截
仅限本地你的数据、会话和 API 密钥在架构层面就不会离开你的设备

完整威胁模型请参阅 SECURITY.md。

贡献

最简单的贡献方式:生成一个新的 tap。 只需一个 .flow.json 文件。

详情请参阅 CONTRIBUTING.md。

路线图

  • 社区技能目录——于 2026-07 停用,改为采用声明账本(v1 目录已归档)
  • 2 种运行时——Chrome 扩展 + Playwright(无头模式 / CI)
  • Unix 管道——tap A | tap B
  • 监视模式——随时间监控变化
  • 验证——tap verify 快照等价性检查,提供 4 种漂移判定(等价 / 已漂移 / 首次快照 / 无法访问)
  • 单命令 MCP 服务——为任何 MCP 主机运行 tap mcp stdio(或 tap mcp http)
  • Android 运行时
  • iOS 运行时
  • 并发控制——为 M 个 Agent 并行操作共享账户提供确定性协调

支持

隐私

Taprun 在架构上以本地为先。它在你自己的设备上驱动你自己的浏览器——凭据、Cookie 和页面数据绝不会离开设备。引擎不会发送遥测数据,也不会发起任何出站网络请求,唯一的例外是你明确为已保存的 tap 指定的请求(op:fetch)。已保存的 tap、密钥和跟踪记录仅存放在你设备上的 ~/.tap/ 中。

完整政策:taprun.dev/privacy。

许可证

Chrome 扩展和文档:MIT。声明账本:MIT。

Star 历史

Star 历史图表

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。