Skip to main content
POST
Wait for an agent phase

Authorizations

Authorization
string
header
required

murmur API key: mur_<key_id>.

Body

application/json
agentId
object

Identifies an agent. The identity is (tenant, workspace, owner, agent path); the workspace scopes the agent's repos, environment, and base branches.

targetPhase
enum<string>
default:PHASE_UNSPECIFIED

The lifecycle state of an agent.

Available options:
PHASE_UNSPECIFIED,
PHASE_STARTING,
PHASE_RUNNING,
PHASE_TASK_COMPLETE,
PHASE_IDLE,
PHASE_SLEEPING,
PHASE_DESTROYING,
PHASE_COMPLETED,
PHASE_FAILED,
PHASE_CANCELED

Response

A successful response.

The full state of an agent: identity, phase, output, tasks, cost, and failure details. Returned by the Status and Wait endpoints.

agentId
object

Identifies an agent. The identity is (tenant, workspace, owner, agent path); the workspace scopes the agent's repos, environment, and base branches.

phase
enum<string>
default:PHASE_UNSPECIFIED

The lifecycle state of an agent.

Available options:
PHASE_UNSPECIFIED,
PHASE_STARTING,
PHASE_RUNNING,
PHASE_TASK_COMPLETE,
PHASE_IDLE,
PHASE_SLEEPING,
PHASE_DESTROYING,
PHASE_COMPLETED,
PHASE_FAILED,
PHASE_CANCELED
agent
string
description
string
vmStopped
boolean
vmDeleted
boolean

True when the VM and its disk no longer exist. Takes precedence over vm_stopped: a destroyed VM would otherwise read as merely stopped.

output
object

The result of a completed agent task.

version
string
tasks
current task checklist items · object[]
progressAt
string<date-time>
currentDescription
string

The task description the current turn is working on.

queuedFollowUps
string[]
shortId
string

Short stable identifier for this agent, used in preview-URL subdomains.

runCount
integer<int32>
sessionMode
enum<string>
default:SESSION_MODE_UNSPECIFIED

SessionMode determines how the agent's coding session is executed.

  • SESSION_MODE_AUTONOMOUS: The agent runs each turn to completion and returns structured output.
  • SESSION_MODE_STREAMING: Long-lived interactive session; follow-ups stream into the live session.
Available options:
SESSION_MODE_UNSPECIFIED,
SESSION_MODE_AUTONOMOUS,
SESSION_MODE_STREAMING
completionCheck
enum<string>
default:COMPLETION_CHECK_UNSPECIFIED

CompletionCheck determines whether the agent re-checks completion after a task finishes, before entering idle behavior.

  • COMPLETION_CHECK_NONE: Proceed directly to idle behavior.
  • COMPLETION_CHECK_ASSESSOR: Fork session, run completion assessor up to 3 times.
Available options:
COMPLETION_CHECK_UNSPECIFIED,
COMPLETION_CHECK_NONE,
COMPLETION_CHECK_ASSESSOR
onIdle
enum<string>
default:ON_IDLE_UNSPECIFIED

OnIdle determines what happens when the agent has no more work after task completion (and optional completion check).

  • ON_IDLE_SLEEP: Hibernate/suspend VM, wait for follow-up or cancel.
  • ON_IDLE_TERMINATE: End the agent and destroy its VM.
  • ON_IDLE_KEEP_ALIVE: VM stays running, session stays live. Periodic session backup every 30m.
Available options:
ON_IDLE_UNSPECIFIED,
ON_IDLE_SLEEP,
ON_IDLE_TERMINATE,
ON_IDLE_KEEP_ALIVE
model
string
fastMode
boolean
logErrorCount
integer<int32>

Count of ERROR-severity VM log entries.

workspace
string

workspace name (if spawned from a workspace preset). Display only.

environment
string

environment name.

repos
per-repo branch state (clone_url, base_branch, branch, branch_created) · object[]
dequeueStrategy
enum<string>
default:DEQUEUE_STRATEGY_UNSPECIFIED

Controls how queued follow-up messages are drained between agent turns.

  • DEQUEUE_STRATEGY_UNSPECIFIED: Default: AUTO.
  • DEQUEUE_STRATEGY_ALL: Drain all queued follow-ups into one batch.
  • DEQUEUE_STRATEGY_ONE: Drain one follow-up per turn.
  • DEQUEUE_STRATEGY_FIVE: Drain up to five follow-ups per turn.
  • DEQUEUE_STRATEGY_AUTO: Drain up to five follow-ups of one kind per turn — manual follow-ups and auto-generated events are never delivered in the same turn (kind-boundary batching, capped at five).
Available options:
DEQUEUE_STRATEGY_UNSPECIFIED,
DEQUEUE_STRATEGY_ALL,
DEQUEUE_STRATEGY_ONE,
DEQUEUE_STRATEGY_FIVE,
DEQUEUE_STRATEGY_AUTO
purpose
string

One-sentence human-readable goal for this agent. Displayed in the dashboard for context. Not interpreted by the system.

backend
string
serviceProfile
string

Service profile name when the agent runs as a service profile. Empty for developer agents.

nagError
string

Last nag (completion-check) failure message. Non-empty when the most recent nag attempt failed (e.g. PAT/auth error, process launch error). Cleared at the start of each new turn so it only surfaces while the agent is idle after a failed nag. Customers polling status can use this field to understand why a completion check did not run.

dashboardUrl
string

Dashboard URL for this agent. Empty when the server has no public URL configured.

failure
object

Structured failure details for an agent that failed — typically during setup, before its first turn. Returned on AgentStatus so clients can render an actionable message.

clientHint
object

Identifies the client surface that issued an action (CLI, MCP, dashboard). Display-only attribution — never an authorization input.

tags
string[]

Names of the tags attached to this agent. Empty if untagged.

terminationSuggestedAt
string<date-time>

When termination was suggested for this agent. Set means a suggestion is pending; unset means none.

terminationSuggestedReason
string
suggestTerminateMode
enum<string>
default:SUGGEST_TERMINATE_MODE_UNSPECIFIED
  • SUGGEST_TERMINATE_MODE_UNSPECIFIED: inherit (workspace, then the SUGGEST default)

  • SUGGEST_TERMINATE_MODE_SUGGEST: advisory only: the dashboard renders a delete button; a human decides

  • SUGGEST_TERMINATE_MODE_IMMEDIATE: terminate the agent immediately, no delete button

Available options:
SUGGEST_TERMINATE_MODE_UNSPECIFIED,
SUGGEST_TERMINATE_MODE_SUGGEST,
SUGGEST_TERMINATE_MODE_IMMEDIATE
reasoningEffort
string

Active reasoning-effort override. Empty means the backend default.

serviceTier
string

Active Codex service-tier override. Empty means the backend default.

currentSpawnId
string

The agent's current execution key. A respawn of the same slug starts a new execution under a new key, so this field changing is how a client detects a respawn. Empty on some serving paths.

delayedFollowUps
string[]

Deferred messages still waiting on their deliver_at times, rendered as " (delivers at )". Separate from queued_follow_ups: a deferred message is scheduled future work, not work waiting on the current turn.