智能体感知

同时运行多个智能体时,你无法盯着每个终端——每个节点都需要告诉你它何时需要你,以及它正在何处工作,这样你就能及时采取行动,而不必一直守着它。TermTree 通过识别终端中运行的智能体 CLI 来实现这一点:它目前支持 Claude Code,也能检测 Codex;不过,节点的终端完全不必运行智能体——它本身只是一个普通 shell,只是 TermTree 还能额外识别其中是否正在运行智能体。

Worktree 指示器

当智能体进入一个 git worktree 时,它会将自己的工作目录切换到那里;从那以后,它报告的路径——无论是在输出、堆栈跟踪还是 git status 中——都相对于该 worktree 的根目录,而不是窗格中 shell 的目录。如果忘了智能体位于哪个 worktree,你可能会查看错误的文件副本,因此 TermTree 会自动将其显示出来。

当 TermTree 检测到终端的前台智能体正在一个 git worktree 内工作时,它会在该节点和终端标题栏上显示一个 worktree 图标。将鼠标悬停在图标上即可查看该 worktree 的分支名称。

该指示器会在重启后保留——重新打开 TermTree 后,如果某个节点的智能体之前位于 worktree 中,该节点仍会显示此信息。

原生 Windows 上不可用。 Worktree 检测依赖 POSIX 风格的路径解析,因此无法在原生 Windows shell 中工作。它也无法跨越 WSL 边界使用,因为该边界会向宿主机隐藏智能体的工作目录——在这种情况下,TermTree 会回退到 shell 报告的目录。

恢复 Claude 会话

选中一个节点后,按 Cmd+Shift+R / Ctrl+Shift+R 可恢复其 Claude Code 会话(claude --resume)——如果终端已关闭,或者你想无需重新输入恢复命令就回到某次对话中,这会很有用。有关应用重启后如何自动执行此操作的信息,请参阅会话持久化

TermTree 如何知道智能体正在等待你

INPUT 状态(橙色圆点)表示智能体已被阻塞,正在等待你的响应。TermTree 通过两种方式检测此状态:

  • Claude Code——权威检测。 TermTree 会在 ~/.claude/settings.json 中注册一个 Notification 钩子,并将 TERMTREE_NODE_ID 注入每个终端的环境。当 Claude 触发通知时(例如请求批准某次工具调用),TermTree 能够明确知道哪个节点需要你关注——它并非根据终端文本进行猜测。
  • 其他 CLI——模式匹配回退机制。 对于没有钩子集成的智能体,TermTree 会扫描终端输出,查找常见的阻塞提示模式(例如 [y/N] 风格的确认提示),从而推断终端是否正在等待输入。