Skip to main content
Starts a new agent in a workspace. The agent provisions a VM, clones the current repository at the current branch, and begins working on the given task. In autonomous mode, the agent works independently and reports results. In interactive mode, it runs in a tmux session you connect to with murmur ssh. The current branch must be pushed to origin before spawning — the agent clones from the remote, not from your local working tree.

Synopsis

The slug is a short identifier for this agent — it appears in status output, PR titles, and logs. The prompt is the task description: everything after the slug is joined into a single string. The prompt is required in autonomous mode and optional in interactive mode. When --flight is set, the slug is optional — it defaults to flight-<name>.

Arguments

Output

On success, prints the spawned agent’s slug and a summary of follow-up commands:
In interactive mode, an additional line shows how to connect:
When --wait is set, the command blocks until the agent is terminal or at rest, then prints a one-line outcome (wait ended: …) and the agent’s full status (same format as murmur status).

Examples

Spawn an autonomous agent

Spawn in interactive mode

Connect with murmur ssh explore-api to interact with the agent directly.

Spawn with a persona

The --agent flag selects an agent persona — a predefined configuration that shapes the agent’s behavior and system prompt.

Override the repo and base branch

By default, the agent clones the repo and branch you are currently on. Use --repo to add additional repos or override the base branch. The format is URL=base or URL=base:working.

Spawn in a specific workspace

If your murmur.yaml already sets a workspace, you can omit --workspace.

Fork from another agent

The new agent starts with all the context from the fix-auth agent’s session. Always use a distinct slug when forking to avoid branch name conflicts.

Resurrect a previous session

Restores the agent’s prior context for the fix-auth slug. If a previous session is still shutting down, the command waits for it to finish before spawning.

Wait for completion

The command blocks until the agent is terminal or at rest — under the default on_idle: sleep policy a finished agent rests rather than completing — then prints the outcome and the agent’s full status.

Forward environment variables

-e API_KEY reads the value from your current shell environment. -e DATABASE_URL=postgres://localhost/mydb sets it explicitly. The agent receives these as environment variables on its VM. Values are encrypted by the server before they reach the agent’s VM. To give a whole subtree the same variable, set it on the top-level spawn: children inherit their parent’s secrets. Which identity the agent runs as is independent of this — a spawn under a service profile delivers -e values beside the profile’s own credentials, and only GH_TOKEN is left to the profile’s minted GitHub token.

Execute a flight

Resolves the billing-migration flight from the tenant catalog and spawns a pilot agent to execute it. The slug defaults to flight-billing-migration. Pass --input to provide context variables the flight expects.

Spawn with a task checklist

Each --task flag adds a checklist item the agent tracks and completes.

Tag an agent

Each --tag attaches a tag for grouping and filtering in the dashboard. A tag name that does not yet exist is created automatically.

Propose a spawn for review

Nothing spawns yet: the command stages a SpawnAction change-request PENDING for review. A reviewer’s approval (for example murmur change-request approve) executes the spawn under the infra-bot service profile — the agent acts as the profile, never as the proposer or approver. Proposing needs change-request.create plus workspace.read; approval needs service-profile.assume on the profile.

Errors