浏览器控制台
Capri FE
:5173 · React 19 · TypeScript · Vite · Tailwind
对齐终端界面常用能力的 Web 前端:斜杠命令、权限审批、图片、后台任务、Git / MCP / 记忆。左上角随手切换机器。
- 会话续传,不重放全量历史
- 权限审批与作用域记忆
- 图片、后台任务、子代理视图
- 密钥只存在这台浏览器里
01 / 05 · 一次请求要走的路
任何设备
只负责掌控:发指令、看结果、审批权限。门禁密钥存在本地,不进构建产物。
02 / 05 · 一次请求要走的路
HTTP 8787
配对、发现、转发三件事。不执行命令,不落业务数据。可选,单机场景省掉。
03 / 05 · 一次请求要走的路
QUIC UDP 8788
节点与中继之间的长连接。UDP 被安全组挡住时自动回退 WebSocket。
04 / 05 · 一次请求要走的路
HTTP 8765
你的机器。拉起内核、内嵌界面、代理接口,同一个端口全都给了。
05 / 05 · 一次请求要走的路
stdio JSON-RPC
以标准输入输出跑的 Agent 进程,按 ACP 协议交换会话事件、工具调用与权限请求。
三个组件
浏览器控制台
:5173 · React 19 · TypeScript · Vite · Tailwind
对齐终端界面常用能力的 Web 前端:斜杠命令、权限审批、图片、后台任务、Git / MCP / 记忆。左上角随手切换机器。
Agent 节点
:8765 · Go 1.26 · ACP · stdio JSON-RPC
跑在有 Agent 的那台机器上,自动拉起内核,并把 Web 界面一起端出来。不用 nginx,不用另起静态服务器。
中继节点
:8787 · Go 1.26 · QUIC · WebSocket
汇集你所有的节点:家里的、办公室的、服务器上的。它不执行任何命令,只做配对、发现和转发。
能力
在手机、平板、另一台电脑的浏览器里,继续本机正在跑的会话。恢复会话不重放全量历史,打开就能接上。
左上角切换节点:家里的、办公室的、服务器上的。每台机器一个标识,中继负责找到它。
斜杠命令、权限审批、图片、后台任务、Git / MCP / 记忆——对齐终端界面的常用能力。
Agent 在节点那台机器上自己读文件、跑命令。浏览器只发指令、看结果。中继不执行任何命令。
节点二进制里嵌着前端构建产物,打开根路径就是界面,同端口提供接口。不用 nginx。
节点到中继默认走 QUIC;UDP 被挡时自动回退 WebSocket,功能不受影响。域名经代理丢 UDP 时可强制拨号地址。
中继启动打印六位配对码,十五分钟有效。配对成功后 token 写在那台机器上,重启只需要中继地址。
中继模式下没有浏览器订阅时,节点暂停实时上报以省流量;打开页面自动恢复。
快速开始
chmod +x ./capri-host
./capri-host
# 浏览器打开 http://localhost:8765
go run ./cmd/capri-host
FE_TOKEN=$(openssl rand -hex 24) go run ./cmd/capri-hub