kuri
AI Agent 原生浏览器自动化工具,Zig 编写、135 个 HTTP 接口、极致 Token
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI Agent 原生浏览器自动化工具,Zig 编写、135 个 HTTP 接口、极致 Token
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:Kuri 项目 Logo,机器人小坚果的形象
当 AI 程序员告诉你「让 AI agent 自动操作浏览器完成订票任务」,大多数人想到的是 Selenium、Playwright 或 Puppeteer——这些工具本质上是给人类 QA 工程师设计的,接口笨重、token 消耗惊人,集成进 agent 循环后每次页面观测就要烧掉数千 token。
Kuri 解决的就是这个问题:为 AI agent 量身打造的浏览器自动化服务器,用 Zig 原生编写,通过 Chrome DevTools Protocol(CDP)控制浏览器,暴露 135 个 HTTP API 端点,任何语言、任何 agent 框架都可以直接调用。
2024 年起,AI coding agent(Claude Code、Cursor、Browse等)开始能自动完成复杂任务,但遇到需要「看网页」的环节就卡壳。传统方案要么依赖 headless Chrome + Playwright(太重),要么用远程浏览器服务(延迟高、数据泄露风险),要么基于 full DOM dump(token 爆炸)。
Kuri 的作者 justrach 在开发 AI 编程工具时亲历了这些痛点,决定用 Zig 从头写一个极轻量、极高效、agent-first 的浏览器自动化方案。项目的核心设计哲学是:AI agent 不需要像人一样看页面,只需要看到「能交互的元素」就够了。
传统方案截图或导出完整 DOM,Kuri 的 GET /snapshot?filter=interactive 只返回带 @eN 短引用的可交互元素列表。
实测数据对比:
GET /page/state:仅 48 tokens(vs full snapshot 2,124 tokens,44 倍差距)这是因为 Kuri 使用 Chrome 内置的 Accessibility Tree 而非渲染后的 DOM,配合 zero-prefix 渲染,把 token 消耗压到最低。
完整覆盖 agent 常用操作,包括:页面观测(snapshot/screenshot)、交互操作(click/type/hover)、批处理(batch,一次 HTTP 调用执行 N 条指令)、HAR 录制回放、移动端控制(iOS ADB / Android WebDriverAgent)。
批处理是关键:传统方案每个动作一次 HTTP 往返,每次都要 LLM 推理一次。Kuri 的 POST /batch 可以一次发送 N 条指令,agent 只需一次推理就能驱动完整行为链。
很多 AI agent 失败的原因是点击事件没触发(尤其是 React 18/19 架构)。Kuri 使用 CDP 原生鼠标事件 + 逐字符 key 事件,直接走 React 的 onClick 和 onChange 路径,兼容性远高于坐标点击方案。
除浏览器外,Kuri 还支持 iOS(通过 WebDriverAgent 控制 Safari)和 Android(原生 ADB wire-protocol 客户端,无需完整 Android SDK),成为目前最全的跨平台设备控制方案之一。
Kuri 是一个单进程 Zig HTTP 服务器,架构极简但模块化清晰:
HTTP Client → router.zig(路径分发+认证中间件)→ bridge.zig(共享状态:tabs/snapshots/CDP clients)→ cdp/client.zig(WebSocket同步请求/响应)/ snapshot(A11y Tree高效观测)/ crawler(爬虫逻辑)/ storage(HAR录制)
两种 Chrome 模式:
curl -fsSL https://raw.githubusercontent.com/justrach/kuri/main/install.sh | sh
支持 macOS(arm64/x86_64)和 Linux(x86_64/arm64),单文件二进制,无任何运行时依赖,二进制体积保持在 2 MB 以下。
import requests
BASE = "http://localhost:8080"
# 获取可交互元素
snapshot = requests.get(f"{BASE}/snapshot?tab_id=ABC&filter=interactive").json()
# 批处理:一次完成 go→snap→click→snap→eval
requests.post(f"{BASE}/batch", json=[
{"action": "goto", "url": "https://example.com"},
{"action": "snapshot", "filter": "interactive"},
{"action": "click", "ref": "e5"},
])
无需安装任何 SDK,纯 HTTP + JSON,任何语言都能集成。
Kuri 的出现反映了 2025-2026 年 AI agent 领域的一个重要趋势:工具层开始按 agent 的思维模式重新设计。传统工具考虑的是「人类怎么操作」,Kuri 考虑的是「AI agent 需要什么信息才能做决策」——这是本质差异。token 效率不是一个优化项,而是设计的第一性原理。
随着 AI coding agent 越来越强,浏览器操作这一环的高效化将成为决定 agent 能否独立完成端到端任务的关键因素。Kuri 正在填补这个空白。
项目地址:https://github.com/justrach/kuri
当前版本:v0.4.3
许可协议:MIT
Star:336
主要语言:Zig
核心标签:ai-agents, browser-automation, chrome-cdp, zig, ios, android