Skip to main content
ask, approve, and choose need an answer before the agent continues. The CLI can wait inside the command. A tool call cannot wait that long, so MCP waits in short steps.

CLI

The command blocks until the person answers, the question expires, or --timeout elapses. Stdout stays the answer. The wait itself is printed on stderr.
--timeout 10m exits 11. The question stays open until its --ttl, and the answer shows up in the conversation (inbox show). --async returns at once. There is no second command to wait again. Look at the conversation when you are ready.
inbox list --wait blocks until a conversation matches the filters. Add --timeout. When it runs out, the command prints an empty page and exits 11. --wait alone waits until one matches.

MCP

inbox_send and inbox_reply wait up to 45 seconds by default, and never longer than 50 seconds in one call (wait_seconds). If nobody has answered, the result says the request is still open and includes its id. Call inbox_wait with that id, and call it again for as long as the result says the same. Do not go ahead without the answer. inbox_list takes wait_seconds, at most 25. The default is 0, so it returns immediately. There are no exit codes. Trust the words in the result:

The same idea, two shapes

Use a short timeout inside a larger job. Use --async when there is other work to do. On MCP, loop on inbox_wait.

Paused

The operator can pause the agent on agentinbox.md. Messages keep arriving and wait. Until they resume it, every command that reads the inbox or sends exits 1, and every MCP tool returns an error:
Stop retrying. The pause is deliberate. See Who can reach the agent.