状态是真的,不是猜的
蓝色在跑、橙色在等你、红色出错。数据来自 hook 事件,不是从终端输出里正则匹配出来的。
终端不是叠 tab,是铺在无限画布上的节点。 缩到全景,看颜色分布就知道哪个在跑、哪个在等你、哪个已经错了十分钟。
状态来自 Claude Code 与 Codex 的 hook 事件 —— 是真状态,不是从输出里猜的。
为什么
你不知道哪个跑完了、哪个卡在权限弹窗上、哪个已经错了十分钟。 Tab 栏上全是一样的标题,只能一个个点进去看。
蓝色在跑、橙色在等你、红色出错。数据来自 hook 事件,不是从终端输出里正则匹配出来的。
凭证是画布上的节点,连一根线到终端就是「这个终端用这个号」。额度实时显示。
把活派给画布上另一个 agent,跨机器也行 —— 走你已有的 ssh,不新开端口。
会话由 tmux 托着,重启应用不杀正在跑的活。布局和滚动历史都留着。
一个组一棵 git worktree,各改各的分支和目录。物理隔离,不靠提示词求它们别乱动。
手机上看同一块画布。只绑回环或 Tailscale,永远不绑所有网卡。
派活
目标可以在同一块画布上,也可以在你的另一台机器上。跨机走的是你已有的免密 ssh —— 不新开任何端口,没有新增的暴露面。
最后一条是刻意设计的:连接串只在主进程里流转,一个字节都不进终端。 agent 用得到这个数据库,但看不到密码。
# 派给画布上另一个终端里的 agent tb ask t-7k3 "把 auth 那块的测试补齐" # 跨机器同理,走你已有的 ssh 别名 tb ask mac-mini:t2 "跑一遍完整回归" # 让 agent 查生产库 —— 但它拿不到连接串 tb db prod "select count(*) from orders"
账号
靠给每个终端注入不同的配置目录做到,不是靠反复登出登入。 凭证内容用系统钥匙串加密后落盘,界面层从设计上就拿不到值 —— 只拿得到有哪些变量名。
还能显式删掉某个环境变量:你 shell 里 export 的 API key 会被应用继承,让订阅号白开还产生账单。
3 个终端在用 · 已登录
1 个终端在用 · 已登录
没有额度接口可查 —— 如实显示,不画一个空进度条
立场
画布上所有终端和应用本身跑在同一个用户身份下。 任何已经能在你机器上执行命令的进程,都可以绕开这里的全部检查。
所以画布上的「连线即授权」和弹窗确认,是产品护栏,不是安全边界。 它防的是 agent 拿错账号、连错库、把活派到你没打算派的地方 —— 不防一个已经拿到你 shell 的攻击者。
这条写在文档里、注释里,也写在这。