浏览器控制台
Capri FE
capri-fe · React 19 · TypeScript · Vite · Tailwind
发送指令、
- 斜杠命令(/model、
/theme、 /memory、 /rewind) 、 ! Shell 直连与草稿暂存 - 行内权限审批卡、
问题询问卡与 MCP Elicit 表单交互 - Git 状态/分支/Worktree 面板、
子代理全屏检视与上下文用量分布
任意设备浏览器
基于 ACP 协议 · MIT 开源
Agent 留在各自设备上读文件、改代码、跑测试;手机、平板或另一台电脑打开浏览器,即可跨屏接管会话。
现已适配 Grok Build;macOS、Windows 开箱即用。
架构与三端分工
切换下方拓扑模式,查看请求如何从浏览器抵达本机内核,以及三个组件各自的职责边界。
capri-host 二进制已内嵌完整前端界面。打开 Capri.app 或 Capri.exe 后,浏览器访问 http://localhost:8765 即可直接使用,无需部署 capri-hub。
浏览器控制台
capri-fe · React 19 · TypeScript · Vite · Tailwind
发送指令、
任意设备浏览器
中继节点(可选)
capri-hub · Go 1.26 · QUIC · WebSocket · Docker
仅做配对、
HTTP :8787 / UDP :8788
Agent 节点
capri-host · Go 1.26 · SwiftUI (macOS) · Systray (Windows) · ACP
内嵌前端界面与 API,
HTTP :8765
grok
在节点本机读写代码库、
stdio JSON-RPC (ACP)
HTTP / SSE 127.0.0.1:8765
工程机制
打开已有会话只拉取最新一轮并立即进入可交互态;上滑翻页按轮加载,大体积工具输出后台静默补全,不在首屏重放全量历史。
即使从公网 Hub 打开控制台,只要探测到当前选中的节点就跑在本机,API 与事件流自动直连 127.0.0.1:8765,省去一跳中继延迟。
节点到中继默认使用 QUIC(UDP :8788)长连接;遇到安全组或代理拦截 UDP 时自动回退到 WebSocket,无需人工干预。
Hub 与每台 Host 的 FE_TOKEN 彼此独立、分槽保存在浏览器本地。Host 默认只听回环地址(127.0.0.1),留空即可本机免密直连。
配对码每 15 分钟自动轮换。在桌面设置界面或前端填入一次后,长期凭据写入本机 ~/.capri-host/hub.json,后续重启自动重连。
中继模式下没有任何浏览器打开页面时,节点自动暂停实时状态上报以节省带宽与算力;页面打开瞬间即刻恢复。
快速上手
# 1. 从 Releases 下载 Capri-macos.zip 或 Capri-macos.dmg,将 Capri.app 拖入「应用程序」
# 2. 若首次启动提示无法验证开发者,执行以下命令移除隔离属性后打开:
xattr -dr com.apple.quarantine /Applications/Capri.app
open -a /Applications/Capri.app
# 下载 Capri-windows-amd64.zip(或 arm64),完整解压后双击根目录的 Capri.exe:
Capri/
├── Capri.exe # ← 双击它:托盘图标、图形设置页、进程守护
└── bin/
└── Capri-host.exe # 后台引擎(由 Capri.exe 无窗口拉起并接管日志,请勿单独双击)
chmod +x ./Capri-host
./Capri-host
# 浏览器直接访问 http://localhost:8765
# 从源码构建运行(需 Go 1.26+):go run ./cmd/capri-host
# 1. 公网服务器启动 Hub(也可用 Docker Compose):
FE_TOKEN=$(openssl rand -hex 24) ./capri-hub
./capri-hub paircode # 获取当前 6 位配对码(15 分钟自动轮换)
# 2. 节点接入(桌面端在「设置 → Hub」填入;命令行如下):
HUB_URL=https://your-hub HUB_PAIR_CODE=123456 HOST_ID=work-pc ./Capri-host