Skip to main content
Launches an interactive onboarding session that creates a recipe, validates the provisioning script, and sets up a workspace and a custom agent persona for the target repo. Runs Claude Code with the 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, or Makefile).
  • Claude Code: claude is on your PATH. Install with npm install -g @anthropic-ai/claude-code.
  • MCP server: The murmur MCP server is configured in Claude Code (in the project’s .mcp.json or in ~/.claude.json). Run claude mcp add murmur -- murmur mcp or murmur setup --mcp if not.
  • Claude authentication: claude auth status succeeds. Run claude auth login if not.
  • murmur setup: A valid .murmur/murmur.yaml exists. Run murmur setup first.

What it does

The onboarding session runs as an interactive Claude Code conversation. The persona drives a workflow that:
  1. Inspects the repo to understand languages, frameworks, and build tools.
  2. Creates a provisioning script (.murmur/provisioning.sh) that installs dependencies and prepares the environment.
  3. Validates the script by running a bake-iterate-fix loop until the image builds cleanly.
  4. Creates the recipe and workspace in the catalog.
  5. Creates a workspace-scoped agent persona seeded with a build/test task bespoke to the repo.
  6. Runs a smoke test by spawning an agent with that persona to prove it can build and test the repo.
After the session completes, 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