这两年写代码的方式变了。
以前是一个终端、一个项目、一条命令跑到底。现在桌面上常年开着三四个 AI 编程 Agent —— Claude Code 在改一个模块,Codex 在另一个仓库跑重构,Kiro CLI 在补测试,旁边还挂着 SSH、构建、日志。
然后传统终端就有点撑不住了。
Tab 和窗口多到记不清哪个是哪个;哪个 Agent 跑完了在等我、哪个还在 thinking、哪个报错停住了,全靠一个个点过去看;AI 会话、普通 Shell、日志窗口混在一排 Tab 里,切换成本高得离谱;手一抖关掉终端,一堆上下文就没了。
但是微信我们可以同时和十几个人聊天:谁有新消息就亮个红点,点进去就是完整上下文。为什么终端会话不能这样管?
于是有了 ChatTerm。

把终端会话当成聊天对话
ChatTerm 是一个终端工作区 —— 在真实终端之上,加了一层 IM 风格的会话管理。一句话:把终端会话,当成聊天软件里的对话来管。
- 左边一列 IM 风格的会话列表,每个会话有头像、有最新输出预览、有未读红点;
- 它能认出哪个会话是 Claude Code、哪个是 Codex、哪个是 Kiro、哪个只是普通 Shell,自动配上对应的头像和状态;
- 它能看出一个 Agent 此刻是在 thinking 还是 idle —— 侧边栏一眼就分清谁在干活、谁在等你回话;
- Agent 回了什么,侧边栏直接给你回复预览,不用切进去看。
预览这块,我没用"截屏 OCR"那种脆办法。Claude Code、Codex、Kiro 都支持在 Stop、PostToolUse 这类事件上挂 hook —— ChatTerm 就在这些 hook 上挂一个小脚本,通过命名管道(FIFO)把事件喂回应用。干净、实时;而且 ChatTerm 没开着的时候,消息直接丢弃,绝不会卡住你的 Agent。
情绪价值:萌宠头像
初次之外,还是提供了情绪价值 —— 萌宠头像。一键就能把头像方块换成会眨眼、会摇摆、会喊「!」的小动物,表情和气泡还跟着会话状态走:thinking、asking、error、done、idle、有未读…… 各有各的反应。
盯一整天 AI 写代码,侧边栏有只小动物陪你一起 thinking。
还有些顺手的细节
- 会话持久化 —— 重启后会话列表自动恢复,Agent 会话还能
--resume接上次的上下文; - ⌘K 搜索 —— 按名字、工作目录,甚至按输出内容,快速跳到某个会话;
- 主题 —— 内置几套配色,macOS 还能直接导入系统 Terminal 的
.terminal主题。
技术上,前端是 React 19 + TypeScript + xterm.js,后端 Rust + Tauri 2 + portable-pty —— 一个轻量的原生应用,不是又一个 Electron 壳。
试试看
macOS、Linux、Windows 都有包。最快的方式是一行装好 App,再一行配 Agent hooks:
curl -fsSL https://raw.githubusercontent.com/chatterm/chatterm/main/scripts/install-remote.sh | bash
curl -fsSL https://raw.githubusercontent.com/chatterm/chatterm/main/scripts/setup-hooks.sh | bash源码、Releases、各平台详细安装说明都在 GitHub —— github.com/chatterm/chatterm。
如果你也同时盯着好几个 AI Agent 干活,欢迎试试,也欢迎来提 issue。
暂无评论