Skip to main content
Runs are honest about their lifecycle: when the final turn ends, the run completes and the VM is gone — an agent cannot poll or wake itself up. Instead, it has platform tools for waiting and communicating, and you have an inbox for answering.
Platform tools exist only in autonomous runs. Interactive sessions — dashboard chat, the OpenAI-compatible API, SSH — don’t get them: a live reader is already watching the conversation, so there is nothing to notify and nothing to sleep through.

Waiting

  • sleep(seconds) / sleep_until(timestamp) — the agent parks the run (max 6 hours). The VM is snapshotted while sleeping (zero compute) and resumes mid-turn with full state. For anything longer, the agent is instructed to finish with a handoff instead.

Asking: send_message

send_message(text) notifies you through the agent detail page’s Inbox tab, outbound webhooks (agent_message.created), and configured message channels. It is fire-and-forget.
In a run, send_message is the only agent output that reaches you — plain assistant text stays in the session timeline and notifies nobody. Together with files staged in ~/outputs/, it forms the two-channel contract for run deliverables, and the run preamble tells the agent so.

Answering

Reply from the agent’s Inbox tab in the dashboard, or from the CLI:
A live session is steered in place; a finished one gets a follow-up run on the same workspace. Either way, the agent sees your answer with full context.

Message channels

Channels deliver an agent’s send_message output beyond the dashboard:
Manage existing channels with zwrm agent channels enable|disable|remove <channel-id> --agent <agent>. Available channel types depend on what your deployment has configured — channels list prints the deliverable types.

Escalations

Connector tools attached with --escalate pause the run (needs_attention) until you approve or deny the tool call from the run page. The VM waits suspended at no cost. See Connectors for details.