jk
Writing

Let the program say what it is doing

10 October 2026

Kodosi shows which of your agents is working and which one is waiting for you. The obvious way to know is to read the screen: look for a spinner, a prompt, the words an agent prints when it wants an answer. I decided against it.

Reading the screen means a set of rules for each agent, and any agent release can break them. Before deciding, I looked at Herdr, which keeps such rules for each agent. It had also tried agent hooks and dropped them, because their reports went stale.

Kodosi takes the state only from what the program reports, through the Program Status Protocol (OSC 7501). It doesn’t read the screen to find the state. Claude Code reports its state from version 2.1.295. For programs that don’t report yet, a progress bar fills in, and issue #13 tracks which agents support it.

It means waiting for agents to add support, which is slower. In return, nothing breaks when an agent changes what it prints.

BoBe went the same way in May. Its first coding worker drove an agent’s terminal interface through tmux and hooks. The same day it was replaced by a typed JSON-RPC session. In the commit’s words, from “scrape a TUI and hope” to “talk to a typed JSON-RPC session”.