Hashimoto Proposes OSC 7501, a Terminal Escape Code for Program Status
Software / news
Hashimoto Proposes OSC 7501, a Terminal Escape Code for Program Status
The draft would let a build tool or coding agent tell the terminal it is waiting on a permission prompt, instead of the terminal guessing from the screen.

Mitchell Hashimoto proposed a new terminal escape sequence, OSC 7501, on October 6, 2026. It lets a program tell its terminal whether it is idle, working, finished, blocked or failed. The draft sits on his website, and two terminal implementations already exist.
What OSC 7501 asks programs to send
The sequence has one shape: ESC ] 7501 ; key=value:key=value ESC \. Pairs are separated by colons. The only required key is state. Two keys are optional: app names the sender, and msg carries a human-readable note, base64-encoded.
The goal, in the post's words: "Let any program tell the terminal what it's doing: idle, working, waiting on the user, finished, or failed, and why." Today a terminal that wants to show a spinner or fire a notification has to guess from screen contents or process activity.
The friction it targets is concrete. You start a long build, switch windows, and the only way to learn that it stopped at a permission prompt four minutes ago is to switch back and look. A terminal that knows the state can badge the tab.
The five states
| State | Meaning in the draft |
|---|---|
| idle | Waiting for user instruction |
| working | Running, may include a progress percentage |
| done | Finished, result ready |
| blocked | Halted awaiting the user, with a kind of permission, question or auth |
| error | Failed and stopped |
The blocked state is where agent tools matter. A coding agent that stops to ask whether it may run a command is "blocked, kind permission", a different thing from a quiet build. The distinction is what a terminal would need to decide between a silent tab badge and a notification.
Who supports it
The post lists two implementations: libghostty and the Rex terminal. libghostty is described in its README as "a cross-platform, zero-dependency C and Zig library for building terminal emulators or utilizing terminal functionality", under the MIT licence. Hashimoto also lists proof-of-concept support in Terraform, Claude Code, Codex and Homebrew.
"Proof-of-concept" is the operative phrase. The post does not say which release of any of those tools emits the sequence, or whether a default install does. The libghostty README does not mention OSC 7501 or program status in the version read in the version read.
The design pitch is cheapness. Hashimoto writes that it is "Trivial to script with plain old POSIX sh. No SDK, no sockets, no environment variables, no JSON." The format is plain text, so no library is needed to send it.
What is still open
Terminals have a long list of numbered OSC codes, and a new one only matters once the major emulators agree to parse it. The post invites feedback from terminal maintainers and asks for notification of implementations so it can keep a maintained list. It names no other terminal that has committed to support.
Two questions the draft leaves unanswered in the text read here: how a terminal should behave when a program crashes without sending a final done or error, and how multiplexers such as tmux should pass the sequence through to the outer terminal.
Two of the four proof-of-concept senders, Claude Code and Codex, are coding agents. For another agent-era tool that surfaced on GitHub trending, see our earlier piece on rea.

The photograph is from 2012. The proposal is one person's draft, not a standard, and no standards body is named in it. A sequence like this only pays off once several programs agree on it. For another developer-tooling item from the same week, see our report on Headstart.
The next concrete milestone is the maintained implementation list the post says it will keep. A third terminal appearing on it would be the first sign the sequence travels beyond its author's own project.
Sources
More in Software
- 01OpenBSD 8.0 Drops Loongson, Rebases Graphics on Linux 6.18 and Ships OpenSSH 10.6The 61st release lifts amd64 kernel address space to 512G and carries an SSH compression change that can slow transfers.
- 02Jepsen Found Orkes Conductor Marking Workflows Complete That Never RanNine findings across versions 5.3.2 to 5.5.0-rc2. Orkes, which funded the test, says seven are closed; Jepsen lists two as still under investigation.
- 03Futhark Fixes a Ten-Year-Old INT_MIN Division Bug and Pays 2.3x on One GPU BenchmarkThe generated C divided the lowest 32-bit integer by -1, which C leaves undefined. The guard adds a branch to every signed division.
- 04Orca Gains 1,590 Stars in a Day and Answers Three of crystl's Six tmux Limits, With 4,303 Open PRsThe MIT-licensed worktree app for coding agents has 98,318 stars and 4,306 open issues; its README addresses three of the six tmux limits crystl lists.