Ghostty 作者、HashiCorp 联合创始人 Mitchell Hashimoto 提出了一套新的终端协议 OSC 7501,想解决一类常见问题:Claude Code、Codex、Terraform 这类程序运行后,外部工具往往不知道它究竟是在工作、等待用户操作,还是已经结束,只能依靠猜测。
Mitchell 提到,当前像 Herdr 这样的工具,通常会读取终端画面、窗口标题和进程信息,再通过一套规则判断 Agent 的状态。
现有做法依赖规则推断
他举例说,Herdr 仅为识别 Claude Code 就维护了 16 条规则,而这套规则在过去 3 个月里改了约 10 次。只要 Claude Code 更换一个加载动画,相关适配就可能要重新调整。
Mitchell 还表示,他找到了 250 多个 Agent 编排工具,很多产品都在重复处理类似问题。
OSC 7501 让程序自己汇报状态
按照 OSC 7501 的设计,程序不再让外部工具通过界面信息反推状态,而是由程序自己直接汇报。程序可以告诉终端自己当前处于空闲、工作中、等待用户、已完成或出错,也可以附带进度信息,以及等待用户响应的原因。
Mitchell 举的例子是,Claude Code 如果卡在权限确认这一步,可以直接告诉终端「我在等授权」,不必再让 Herdr 去分析屏幕上的文字和符号。
这些状态通过程序原本就在使用的终端连接传递,因此在 SSH 和容器环境里也能正常工作。
补足现有终端协议未覆盖的信息层
Mitchell 认为,现有终端进度协议只能表达忙碌、进度或错误,仍然无法清楚说明程序到底在等什么。OSC 7501 要补的,就是这一层信息。
已完成部分实现和概念验证
他表示,自己已经在 libghostty 和 Rex 中实现了这套协议,并通过插件或 fork,为 Terraform、Claude Code、Codex 和 Homebrew 做了概念验证。
就接入难度来看,Mitchell 称实现并不复杂,每个实现都不超过十几行代码。不过,OSC 7501 最终能否普及,仍取决于其他终端和程序是否愿意采用。

