bambouville

智能体中心

智能体中心把你所有连接中的 Claude Code 和 Codex 会话 —— tmux 窗口、窗格和 原始会话 —— 汇集到一个页面上,让你不用四处寻找正确的窗格就能回复它们的提示。 它属于实验性功能,默认关闭:在设置 → 实验性功能 → 智能体中心中启用。 之后再关掉它,并不会卸载主机上的钩子。

从侧边栏的智能体条目打开它(在 iPhone 上,它在会话标签的选择器后面 —— 当智能体需要你时,该标签会带标记),也可以用 ⌘⇧A,或者用智能体在等待时 出现在顶栏的关注按钮。当某个智能体正在聚焦的窗格中等待时, 滑动板也会把它的选项以花瓣的形式呈现。

智能体页面

卡片按状态分组 —— 等待输入刚刚完成工作中空闲状态不可用 —— 位于一行摘要(「N 个智能体 · N 个会话 · N 台主机」)和一条 「有智能体需要处理 / 全部已处理」横幅之下。

每张卡片显示该智能体当前的提示。在卡片上你可以:

  • 在卡片之间移动,按 19 选择带编号的选项,
  • ⌘↩ 打开 —— 直接跳到那个窗格,
  • 在消息字段中输入 —— 「给 <名称> 发消息…」会加入队列,「向 <名称> 提问…」会立即发送,
  • 中断该智能体。

回答在发送前会重新检查实时提示符,发送也会校验提交内容 —— 因此你永远不会去 回答一个智能体早已越过的问题。当智能体在终端里流式输出时,滚动会被短暂锁定, 免得误滑一下就把你拖到上面去 —— 如果你更愿意自由滚动, 设置 → 终端 → 智能体滚动锁定可以按提供方关掉这种冻结(claude codecodex,两者默认都开启)。检测、卡片和通知都不受影响。

智能体页面,卡片按等待输入、刚刚完成、工作中和空闲分组,每张卡片显示提供方、会话、主机、窗口和窗格,还有内嵌的回答按钮和一个提示输入框。
卡片按谁最需要你来分组。被阻塞的智能体会把自己的选项做成内嵌按钮。

检测是怎么工作的

基线检测是启发式的,从终端文本读取,使用与 滑动板配置相同的语法(内置的 Claude Code 和 Codex 语法,再加上你自己定义的任何配置)。

要获得精确状态,Tessera 提供一个需要主动启用、按主机设置的 智能体状态钩子:终端只能暴露进程和像素,无法说明智能体正在计算、空闲还是 被阻塞 —— 智能体自身的生命周期钩子才是权威信号。没有它时,卡片会显示 状态不可用,中心只能发现智能体;它绝不会猜测它们的状态。

安装这个钩子(从状态不可用的卡片,或顶栏的琥珀色警告进入)总会先准确显示它将 更改什么:它会在服务器的 ~/.config/tessera 下放置 Tessera 自有的文件,只把 Tessera 的处理器合并进 Claude Code 和 Codex 的用户配置 —— 绝不重写你已有的 别名、函数或无关的钩子 —— 并向 .zshrc / .bashrc 添加一行带保护条件的 source 语句(标记为 # TESSERA-AGENT-LIFECYCLE)。它回传的只有状态元数据: 提供方、生命周期事件、状态、原因、会话/回合标识符、通知类型、权限模式、时间戳 和本地进程 ID —— 绝不包含提示词、响应、源代码或凭据

安装之后值得知道的几件事:

  • 必须有某个 shell 加载它 —— 请打开一个新的 shell 或 tmux 窗口(Tessera 会在 空提示符下、也只在那里提出代劳)。
  • Codex 有自己的钩子信任边界:首次集成启动时可能会要求你用 /hooks 查看这个 钩子。
  • 该页面按主机跟踪钩子的状态 —— 未安装、已启用、此处未启用或已过时 —— 会自动 修复损坏的集成,并在有更新版本发布时提供更新状态钩子。在纯 mosh 下, 检查可能需要解锁密钥,因此 Tessera 会等你轻点立即检查,而不是主动轮询。

关注通知

启用智能体需要关注时的通知后,当 Tessera 在后台、而屏幕外的智能体完成或 需要你时,Tessera 会发出 iOS 横幅 —— 「<主机> · <窗口>」、「Claude Code 等待输入」、「…… 刚刚完成」。轻点横幅会直接把你带到对应的窗格。

  • 启用它会一次性关闭终端响铃的后台通知;智能体这条通道 更精确。
  • iOS 可能会挂起后台中较长的会话,因此在长时间运行的会话上,送达是尽力而为的。