Proposal: a non-blocking progresstool (twin ofquestion) so coding agents can signal long-running work without looking dead or abusing questions A developer has proposed a non-blocking "progress" tool as a counterpart to the existing "question" tool, letting coding agents signal long-running work such as compiles, subagents or long jobs without appearing frozen, burning tokens on polling or misusing the question tool for status updates. The draft schema takes a stable id, a status of running, done, error or waiting, plus optional title, detail and 0–1 progress fields, and is fire-and-forget so it never pauses the agent or requires a human reply. The proposal notes that harnesses including OpenCode, Claude Code and Codex would each implement one tool, while control surfaces like T3 Code map a single event into existing Working/Waiting UI, though nothing cross-harness is standard yet. Coding agents can ask the user questions question / AskUserQuestion , but they have no standard way to say: “I’m still alive — waiting on a compile / subagent / long job.” So today they either: - look frozen - burn tokens polling - abuse the question tool for status updates Control surfaces T3 Code, etc. already have UI for Working / Waiting — they just don’t get a clean signal from the model. Classic waiting UX: xkcd 303 https://xkcd.com/303 A tiny, non-blocking twin of question : progress { id: "compile-1", // stable id → update / clear later status: "running" | "done" | "error" | "waiting", title: "Waiting on tsc", detail?: "34s elapsed", progress?: 0.65 // optional 0–1 } Rules: - fire-and-forget does not pause the agent - same id updates in place - never requires a human reply - harness / UI decides how to render toast, status bar, Agents panel, OSC, … question = “I need you.” progress = “I’m still working.” xkcd 927 https://xkcd.com/927 One small shared shape beats five slightly different notify plugins. - Agents — honest status without polling or fake questions - Harnesses OpenCode, Claude Code, Codex, … — one tool to implement - Control surfaces T3 Code, etc. — one event to map into existing UI Draft only. OpenCode already has community notify plugins; MCP has progress notifications. Nothing cross-harness is standard yet.