How to generate a capsule manifest with mur new
Beta feature
mur new "<task description>" is a beta feature: it exists only in a mur built with the
beta-mur-new feature, and runs only after mur beta enable mur-new. Behavior and flags may
change in future releases. To scaffold a formation instead, use
mur new --roster, which is in every build.
mur new takes a plain-language task description and writes a ready-to-refine murmur.yaml
to the current directory. It cold-boots a short-lived generator capsule backed by your inference
provider, which queries the artifact index to discover relevant tools and produces a manifest
tailored to the task — no schema knowledge required.
The relevant manifest options are:
| Option | Controls |
|---|---|
| lifecycle.task_acceptance | How the capsule accepts tasks; always single in generated manifests |
| lifecycle.after_task | What happens after the task completes; always exit in generated manifests |
| inference.model | The model the generated capsule will use; the generator chooses it, so check it |
Step 1 — install the generator artifacts
mur new runs its generator capsule from four artifacts, which must be in the global store
~/.murmur/artifacts/ before the first run. Install them with mur install -g; a project
install does not reach the generator.
mur install -g murmur/driver-anthropic@0.19.0
mur install -g murmur/tool-registry-search@0.5.0
mur install -g murmur/tool-editor@0.12.0
mur install -g murmur/skill-create-manifest@0.12.0
mur install -g murmur/driver-openai@0.19.0
mur install -g murmur/tool-registry-search@0.5.0
mur install -g murmur/tool-editor@0.12.0
mur install -g murmur/skill-create-manifest@0.12.0
Different ways to install artifacts
mur install fetches an artifact from the source of its scope. murmur/ artifacts come from
the built-in source, murmur-nexus/default-artifacts, with no configuration.
Option A — name the source of a scope in ~/.murmur/config.yaml:
registry:
sources:
- repo: <owner>/<repo>
token: "${GITHUB_TOKEN}"
Then install by full name, with or without a version:
mur install <owner>/<artifact-name>@<version>
Option B — pass a full GitHub reference and skip configuration entirely:
mur install github:<owner>/<repo>@<tag>
See Installing artifacts to learn more.
mur new checks for these artifacts before starting any capsule. If one is missing it exits with
E-RUN-008 and the mur install -g command that installs it.
Configure your inference provider — mur new detects it automatically using the following
priority order:
-
Config file (
~/.murmur/config.yaml,inference:section) — recommended for repeated use:inference: provider: anthropic # or "openai" model: claude-haiku-4-5-20251001 api_key: sk-ant-... endpoint: "" # leave empty to use the provider default -
Environment variable —
ANTHROPIC_API_KEY(modelclaude-haiku-4-5-20251001) orOPENAI_API_KEY(modelgpt-5.6-luna). When detected,mur newprints a one-line hint suggesting you addinference:to~/.murmur/config.yamlinstead. -
First-run wizard — if neither the config file nor an env var is present,
mur newlaunches an interactive wizard that prompts for provider, model, and API key, then offers to save the result to~/.murmur/config.yamlfor future runs.
The wizard requires an interactive terminal. In non-interactive contexts (CI, piped stdin), it
exits with error E-CFG-001 and a message describing how to configure inference.
Step 2 — run mur new
Run mur new with a plain-language description of what the capsule should do:
mur new "review this PR for security issues"
Output:
mur new: generating manifest...
murmur.yaml written to /path/to/current-dir/murmur.yaml
The generator queries the artifact index, reasons about the task, and writes murmur.yaml
to the current directory.
By default the generator searches the index on the latest default-artifacts release. To point it at another source's index, pass the index's URL:
mur new "review this PR for security issues" \
--index https://github.com/your-org/your-artifacts/releases/latest/download/artifacts-index.json
The generator capsule fetches that URL itself, and mur new adds its host to the generator's
network allow list. The same index decides the versions of the generator's driver, tools and
skill: the newest of each that fits your mur, which is what to have installed. To search an
index file on disk, pass its path instead; mur new checks it and copies it into the generator's
work folder:
mur new "review this PR for security issues" --index ./artifacts-index.json
The generator cannot see the artifacts installed on this machine, so --index local is refused
with E-NEW-005. To list what is installed, run:
mur search "" --index local
Step 3 — understand the output
The generator picks one of two shapes based on the task description.
Single capsule — for focused, bounded tasks (review, classify, summarise):
name: pr-security-reviewer
version: "0.1.0"
artifacts:
- name: murmur/driver-anthropic
version: "0.19.0"
runtime: driver
gateway:
endpoint: https://api.anthropic.com
api_key: ${ANTHROPIC_API_KEY}
- name: murmur/tool-git
version: "0.6.0"
runtime: tool
capabilities:
shell:
allow:
- git
lifecycle:
task_acceptance: single
after_task: exit
inference:
model: claude-sonnet-5
driver:
artifact: murmur/driver-anthropic
name: pr-security-reviewer
version: "0.1.0"
artifacts:
- name: murmur/driver-openai
version: "0.19.0"
runtime: driver
gateway:
endpoint: https://api.openai.com/v1
api_key: ${OPENAI_API_KEY}
- name: murmur/tool-git
version: "0.6.0"
runtime: tool
capabilities:
shell:
allow:
- git
lifecycle:
task_acceptance: single
after_task: exit
inference:
model: o3-mini-high
driver:
artifact: murmur/driver-openai
name: pr-security-reviewer
version: "0.1.0"
artifacts:
- name: murmur/driver-deepseek
version: "0.17.0"
runtime: driver
gateway:
endpoint: https://api.deepseek.com
api_key: ${DEEPSEEK_API_KEY}
- name: murmur/tool-git
version: "0.6.0"
runtime: tool
capabilities:
shell:
allow:
- git
lifecycle:
task_acceptance: single
after_task: exit
inference:
model: deepseek-r1
driver:
artifact: murmur/driver-deepseek
Orchestrator — for research, multi-step, pipeline, or report tasks. The generator adds a
spawn block so the capsule can launch child capsules:
name: climate-research-agent
version: "0.1.0"
artifacts:
- name: murmur/driver-anthropic
version: "0.19.0"
runtime: driver
gateway:
endpoint: https://api.anthropic.com
api_key: ${ANTHROPIC_API_KEY}
capabilities:
spawn:
allow:
- local/climate-data-worker
lifecycle:
task_acceptance: single
after_task: exit
inference:
model: claude-sonnet-5
driver:
artifact: murmur/driver-anthropic
name: climate-research-agent
version: "0.1.0"
artifacts:
- name: murmur/driver-openai
version: "0.19.0"
runtime: driver
gateway:
endpoint: https://api.openai.com/v1
api_key: ${OPENAI_API_KEY}
capabilities:
spawn:
allow:
- local/climate-data-worker
lifecycle:
task_acceptance: single
after_task: exit
inference:
model: o3-mini-high
driver:
artifact: murmur/driver-openai
name: climate-research-agent
version: "0.1.0"
artifacts:
- name: murmur/driver-deepseek
version: "0.17.0"
runtime: driver
gateway:
endpoint: https://api.deepseek.com
api_key: ${DEEPSEEK_API_KEY}
capabilities:
spawn:
allow:
- local/climate-data-worker
lifecycle:
task_acceptance: single
after_task: exit
inference:
model: deepseek-r1
driver:
artifact: murmur/driver-deepseek
Generated manifests are a starting point
Artifact versions in the generated manifest reflect what the generator found in the artifact index at
run time. mur install refuses a version that does not fit this mur and names the one
that does; run mur list to compare with what is installed.
Step 4 — refine the manifest
Open murmur.yaml and check these fields before running:
Model — the generator chooses inference.model. Change it if the task needs a different
model:
inference:
model: claude-sonnet-5
inference:
model: o3-mini-high
inference:
model: deepseek-r1
System prompt — the generator does not add inference.system_prompt. Add one to give the
capsule role-specific context:
inference:
system_prompt: |
You are a security-focused code reviewer. Focus on OWASP Top 10 vulnerabilities,
insecure defaults, and missing input validation.
Capabilities — add or remove capabilities.network.allow entries to match what the capsule
actually needs to access. Remove entries for hosts the capsule will never contact.
Step 5 — install manifest dependencies
mur install
Different ways to install artifacts
mur install fetches an artifact from the source of its scope. murmur/ artifacts come from
the built-in source, murmur-nexus/default-artifacts, with no configuration.
Option A — name the source of a scope in ~/.murmur/config.yaml:
registry:
sources:
- repo: <owner>/<repo>
token: "${GITHUB_TOKEN}"
Then install by full name, with or without a version:
mur install <owner>/<artifact-name>@<version>
Option B — pass a full GitHub reference and skip configuration entirely:
mur install github:<owner>/<repo>@<tag>
See Installing artifacts to learn more.
Step 6 — run the capsule
Create a task.md file with the task description for the capsule, then run it:
mur run --manifest murmur.yaml --task task.md
Summary
| Feature / setting | How it works |
|---|---|
mur new "<description>" |
Boots a generator capsule; writes murmur.yaml to CWD |
No --index |
Searches the index on the latest default-artifacts release |
--index <url> |
Searches that index; its host is added to the generator's network allow list |
--index <path> |
Checks the index file on the host, then searches a copy in the generator's work folder |
--index local |
Refused with E-NEW-005; mur search <query> --index local lists the installed artifacts |
| Single capsule | Generated for focused, bounded tasks — no spawn block |
| Orchestrator | Generated for research and pipeline tasks — adds a capabilities.spawn.allow list |
| Validation | Generated YAML is validated before writing; nothing written if validation fails |
| Inference config | Config file (inference: in ~/.murmur/config.yaml) → env var (ANTHROPIC_API_KEY / OPENAI_API_KEY) → interactive first-run wizard |
| Generator artifacts | murmur/driver-anthropic (or murmur/driver-openai), murmur/tool-registry-search, murmur/tool-editor and murmur/skill-create-manifest must all be in the global store; install them with mur install -g |
| Artifact discovery | murmur/tool-registry-search is a native tool and runs in the generator capsule's sandbox; What each native tool needs lists what it can reach |
inference.model |
Chosen by the generator; change it in the generated manifest if needed |
See also
mur search— search the artifact index from the CLImurmur/tool-registry-search— the in-capsule tool the generator uses for artifact discoverymurmur/skill-create-manifest— full schema reference skill for authoring manifests manuallymur build— build the generated capsule into a.mur.zipmur run— run the capsule locally