Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.murmur.dev/llms.txt

Use this file to discover all available pages before exploring further.

The platform maintains warm VM pools for fast agent startup. When you spawn an agent, it claims a pre-booted VM from the pool instead of waiting for a fresh boot. These commands let you monitor pool health, adjust scaling parameters, and flush VMs when needed.

murmur pool status

Show the current state of your tenant’s VM pool, including running VMs, idle count, pending boots, and active configuration.
murmur pool status [flags]

Flags

FlagTypeDescription
--workspacestringOverride workspace
murmur pool status

Example output

Pool: default
Status: healthy

VMs:
  Total:    12
  Active:   8   (running agents)
  Idle:     3   (warm, ready to claim)
  Booting:  1   (starting up)

Configuration:
  max_vms:      30
  min_idle:     2
  max_idle:     5
  idle_timeout: 15m
  boot_timeout: 5m

murmur pool up

Trigger the pool to scale up, ensuring warm VMs are available. This is a manual nudge to the pool scaler — it ensures at least min_idle VMs are ready.
murmur pool up [flags]

Flags

FlagTypeDescription
--workspacestringOverride workspace
murmur pool up
This is useful before a batch of spawns to pre-warm the pool, or after adjusting pool configuration to immediately apply the new min_idle target.

murmur pool flush

Destroy warm (idle) VMs in the pool. Active VMs running agents are not affected.
murmur pool flush [flags]

Flags

FlagTypeDescription
--nukeboolAlso terminate active VMs (kills running agents). Use with extreme caution.
--workspacestringOverride workspace
# Flush idle VMs only
murmur pool flush

# Nuclear option: terminate everything (idle + active)
murmur pool flush --nuke
murmur pool flush --nuke terminates all VMs including those running agents. All running agents will be killed. Use only when you need a complete pool reset.

When to flush

  • After image updates: Flush warm VMs so new spawns pick up the updated image.
  • After config changes: Flush to ensure warm VMs match the new configuration.
  • Cost management: Flush idle VMs when you know no new agents will be spawned for a while.
  • Debugging: Start fresh when VMs are in a bad state.

Pool configuration

Pool behavior is controlled by a pool-config catalog resource. Every tenant has a default pool config.

Viewing pool config

murmur get pool-config default

Example pool config

max_vms: 30
min_idle: 2
max_idle: 5
idle_timeout: 15m
boot_timeout: 5m

Configuration fields

FieldTypeDefaultDescription
max_vmsint30Maximum total VMs (active + idle) in the pool
min_idleint2Minimum number of warm idle VMs to maintain
max_idleint5Maximum number of idle VMs before excess are terminated
idle_timeoutduration15mHow long a completed agent’s VM stays warm before termination
boot_timeoutduration5mMaximum time to wait for a VM to boot before considering it failed

Modifying pool config

Use murmur patch to update individual fields:
# Increase max VMs
murmur patch pool-config default --set max_vms=50

# Increase minimum warm VMs for faster spawns
murmur patch pool-config default --set min_idle=5

# Reduce idle timeout to save costs
murmur patch pool-config default --set idle_timeout=5m

# Multiple changes at once
murmur patch pool-config default \
  --set max_vms=20 \
  --set min_idle=3 \
  --set max_idle=8
To replace the entire config:
cat <<EOF | murmur set pool-config default
max_vms: 20
min_idle: 3
max_idle: 8
idle_timeout: 10m
boot_timeout: 5m
EOF

Understanding pool scaling

The pool scaler runs continuously and maintains these invariants:
  1. Scale up: If idle VMs < min_idle and total VMs < max_vms, boot new VMs
  2. Scale down: If idle VMs > max_idle, terminate excess idle VMs
  3. Timeout: If an idle VM has been idle longer than idle_timeout, terminate it
  4. Claiming: When murmur spawn runs, the oldest idle VM is claimed. If none are available, a new VM is booted on demand (subject to max_vms).
                     ┌──────────┐
  spawn ────claim───▶│ Idle VM  │──────▶ Active (running agent)
                     └──────────┘              │
                          ▲                    │
                     boot │              agent completes
                          │                    │
                     ┌────┴─────┐              ▼
                     │  Scaler  │◀──── Return to idle pool
                     └──────────┘       (or terminate if
                                         idle_timeout or
                                         max_idle exceeded)

Cost considerations

Warm VMs incur compute costs even when idle. Tune these parameters to balance cost against spawn latency:
GoalAction
Faster spawnsIncrease min_idle (more warm VMs ready)
Lower costsDecrease min_idle, decrease idle_timeout
Burst capacityIncrease max_vms (allows more concurrent agents)
Tight budgetSet min_idle=0 (all spawns boot on demand, ~60s delay)
A typical development team configuration:
murmur patch pool-config default \
  --set max_vms=20 \
  --set min_idle=2 \
  --set max_idle=5 \
  --set idle_timeout=10m
This keeps 2-5 warm VMs at all times, allows up to 20 concurrent agents, and recycles idle VMs after 10 minutes.