Ghostty creator proposes OSC 7501 to let programs report their own terminal state

Ghostty creator proposes OSC 7501 to let programs report their own terminal state

N
News Editor
2026-10-07 03:45:01
Ghostty creator and HashiCorp co-founder Mitchell Hashimoto has proposed a new terminal protocol, OSC 7501, aimed at solving a recurring problem for developer tools and AI agents: outside software often cannot reliably tell whether a program is actively running, waiting for user input, finished, or stuck. Today, tools such as Herdr infer that state by reading terminal output, window titles, and process information, then applying custom rules. Hashimoto said Herdr alone maintains 16 rules just to recognize Claude Code, and those rules changed about 10 times over the past three months. Even a loading animation change can force another round of adaptation. Under OSC 7501, the program would report its own state directly to the terminal, including whether it is idle, working, waiting on the user, finished, or in an error state, along with progress and the reason it is waiting. Hashimoto said he has already implemented the protocol in libghostty and Rex, and built proofs of concept for Terraform, Claude Code, Codex, and Homebrew through plugins or forks.

Ghostty creator and HashiCorp co-founder Mitchell Hashimoto has proposed a new terminal protocol, OSC 7501, to address a persistent visibility problem around tools such as Claude Code, Codex, and Terraform. Once these programs start running, outside software often cannot tell whether they are actively working, waiting for user input, or already done. In many cases, it has to guess.

Hashimoto said tools such as Herdr currently read terminal screens, window titles, and process data, then use rules to infer an agent's state.

Rule-based detection keeps breaking

He said Herdr maintains 16 rules just to identify Claude Code, and that ruleset has been changed about 10 times over the past three months. A simple change in Claude Code's loading animation can be enough to trigger another round of compatibility work.

Hashimoto also said he found more than 250 agent orchestration tools, with many of them repeatedly solving the same class of problem.

OSC 7501 shifts reporting to the program itself

Under OSC 7501, the program reports its own state instead of forcing outside tools to infer it from UI signals. A program can tell the terminal whether it is idle, working, waiting for the user, finished, or in an error state. It can also attach progress information and explain why it is waiting.

Hashimoto gave one example: if Claude Code is blocked on a permission confirmation step, it can tell the terminal directly, 「I'm waiting for authorization」, instead of making Herdr inspect text and symbols on the screen to work that out.

Because the status is carried through the same terminal connection the program already uses, the setup also works over SSH and inside containers.

Filling a gap left by existing progress protocols

Hashimoto said current terminal progress protocols can express busy status, progress, or errors, but they do not clearly show what a program is waiting on. OSC 7501 is meant to add that missing layer.

Implementation and proof-of-concept work already underway

He said the protocol has already been implemented in libghostty and Rex. Through plugins or forks, he has also built proofs of concept for Terraform, Claude Code, Codex, and Homebrew.

Hashimoto described integration as relatively simple, saying each implementation took no more than a dozen or so lines of code. Whether OSC 7501 can gain broad adoption, though, will depend on whether other terminal and software projects decide to support it.

This article was originally published by Bit.Fan. For more cryptocurrency news and market insights, visit www.bit.fan.
100

Disclaimer:

The market information, project data, and third-party content displayed on this platform are for industry information sharing only and do not constitute any form of investment advice or return commitment.

Cryptocurrency trading carries high risks. Users should fully assess their risk tolerance and make independent decisions. All profits, losses, and legal responsibilities are borne by the users themselves.