murmur-baker persona, which guides you through each step.
Synopsis
Arguments
--name, --workspace-name, and --persona-name must be bare DNS labels ([a-z][a-z0-9-]*, at most 63 characters, no slashes).
Prerequisites
murmur init checks these prerequisites before starting:
- Project root: The directory contains at least one recognized project marker (
.git,go.mod,package.json,pyproject.toml,Cargo.toml,Gemfile, orMakefile). - Claude Code:
claudeis on yourPATH. Install withnpm install -g @anthropic-ai/claude-code. - MCP server: The murmur MCP server is configured in Claude Code (in the project’s
.mcp.jsonor in~/.claude.json). Runclaude mcp add murmur -- murmur mcpormurmur setup --mcpif not. - Claude authentication:
claude auth statussucceeds. Runclaude auth loginif not. - murmur setup: A valid
.murmur/murmur.yamlexists. Runmurmur setupfirst.
What it does
The onboarding session runs as an interactive Claude Code conversation. The persona drives a workflow that:- Inspects the repo to understand languages, frameworks, and build tools.
- Creates a provisioning script (
.murmur/provisioning.sh) that installs dependencies and prepares the environment. - Validates the script by running a bake-iterate-fix loop until the image builds cleanly.
- Creates the recipe and workspace in the catalog.
- Creates a workspace-scoped agent persona seeded with a build/test task bespoke to the repo.
- Runs a smoke test by spawning an agent with that persona to prove it can build and test the repo.
murmur init records the workspace name in the target directory’s .murmur/murmur.yaml so that murmur spawn uses it by default. If that file does not exist, it prints a note instead.
The onboarding session runs on your machine, not in a sandbox. Writes and edits under
.murmur/, murmur commands, gh repo view, gh auth status, gh api, env, sleep, and the murmur spawn, wait, status, kill, and ls MCP tools are auto-approved. Other operations prompt you for confirmation.Why murmur init passes --dangerously-load-development-channels
Under the hood,
murmur init launches Claude Code with --dangerously-load-development-channels server:murmur. The flag opts the session into Claude Code’s channel transport, which Murmur uses to stream real-time events (bake progress, smoke-test status, child lifecycle) from the control plane into your conversation as <channel> tags. Without it the onboarding persona can’t observe the bake-iterate-fix loop or the test spawn, and the session falls back to blind polling.The dangerously- prefix is Claude Code’s wording for an opt-in developer feature, not a security warning specific to Murmur. The same flag is also used by murmur director and by every interactive agent VM that Murmur spawns, so all sessions can post to and receive from server:murmur.When Claude Code prompts you to confirm channels, say yes and opt in. The wizard can’t observe the bake without it.Examples
Onboard the current repo
Onboard a different directory
Onboard with explicit names
Name the custom persona
Replace an existing recipe and workspace
Errors
Related
- Recipes: what a recipe defines
- Workspaces: concept overview
- Agent personas: how personas guide agent behavior
murmur setup: configure your developer profile (prerequisite)murmur spawn: start an agent in the workspace created by init- Catalog: recipe: the recipe resource
- Catalog: workspace: the workspace resource