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.

A flight is a Markdown document that defines a directed acyclic graph (DAG) of agent tasks. Each H2 section is an agent with a prompt, dependencies, and optional configuration. A pilot agent reads the flight and orchestrates the sub-agents.

Basic structure

# Refactor Authentication

## design

> persona: architect
> out: respond

Analyze the current auth system and propose a refactoring plan.
Focus on session management and token refresh logic.

## implement

> needs: design
> out: pr

Implement the refactoring plan from the design phase.
Follow the architectural recommendations exactly.

## test

> needs: implement
> gate: ci

Write comprehensive tests for the new auth system.
Ensure all edge cases are covered.
  • H1: Flight name
  • H2: Agent slug (must be unique within the flight)
  • Blockquote lines (> key: value): Agent metadata
  • Body text: The agent’s task prompt

Metadata directives

Each agent can have these blockquote directives:
DirectiveTypeDescription
personastringAgent persona: programmer, architect, pm, or custom name
modelstringModel override (e.g., claude-opus-4-6)
needsCSVUpstream agents that must complete first (new branch, new VM)
continuesstringUpstream agent to send a follow-up to (same branch, same VM)
gateCSVCompletion criteria: ci, review, approve, merge
branchstringExplicit branch name (auto-generated if omitted)
eachstringCollection description for fanout (one agent per item)
outstringExpected output: pr, push, respond, or freeform

Dependencies

needs — new context

When agent B needs agent A, B starts only after A completes. B gets a new thread — fresh workflow, new branch, new VM. No inherited conversation context.
## backend-api
Implement the REST API.

## frontend
> needs: backend-api
Build the UI that calls the API.
Multiple dependencies: > needs: design, backend-api — all must complete before the dependent starts.

continues — same context

When agent B continues agent A, B sends a follow-up to agent A on the same branch and VM. Full conversation context is preserved. This is a 1:1 relationship.
## initial-implementation
Write the first draft of the feature.

## refinement
> continues: initial-implementation
Review your implementation, fix edge cases, and clean up.
needs and continues are mutually exclusive. An agent can have one or the other, not both.

Fanout with each

The each directive creates a template agent that’s expanded into one instance per item:
## fix-module
> each: every Go package that has failing tests

Fix the failing tests in this package: {}
The pilot agent interprets the each value, enumerates items, and spawns one agent per item. The {} placeholder is replaced with each item. When another agent needs an each agent, all expanded instances must complete.

Gates

Gates block downstream agents until conditions are met:
GateDescription
ciCI checks must pass on the agent’s PR
reviewA reviewer agent is spawned to review the PR
approvePilot waits for human approval
mergePR must be merged
## implement
> out: pr
> gate: ci, review
Build the feature and open a PR.

YAML frontmatter

Flights stored in the catalog can have optional frontmatter:
---
workspace: backend-team
on:
  issue_opened:
    repos: [https://github.com/acme-corp/api]
    labels: [bug]
daemon: true
max_concurrent: 3
---

# Bug Fixer

## triage
> persona: architect
Analyze the bug report and determine the fix.
Frontmatter fieldDescription
workspaceRequired for catalog flights
onEvent triggers (see below)
daemonKeep the flight alive after idle (for long-lived processors)
max_concurrentLimit on parallel flight instances
outExpected output for the pilot
personaPilot persona (for zero-agent flights)
modelModel override for the pilot
disabledSkip during schedule sync

Event triggers

Flights can be triggered by GitHub events:
on:
  issue_opened:
    repos: [https://github.com/acme-corp/api]
    labels: [bug, enhancement]
  pr_opened:
    repos: [https://github.com/acme-corp/api]
  push:
    repos: [https://github.com/acme-corp/api]
    branches: [main]
  schedule:
    cron: "0 9 * * 1-5"
  ci_failure:
    repos: [https://github.com/acme-corp/api]
    check: [TestSuite]
    branch: [main]

Running flights

From the CLI:
murmur spawn --flight plan.md my-flight "Execute the refactoring plan"
With input context:
murmur spawn --flight triage.md --input repo=acme-corp/api --input number=42 bug-42
Validate before running:
murmur flight validate plan.md

Stored flights

Save flights to the catalog for reuse and event-triggered execution:
murmur set flight bug-fixer < bug-fixer.md
List stored flights:
murmur get flight