murmur.local.yaml). Run this once per repo to get ready to spawn agents.
Synopsis
murmur setup takes no positional arguments. The subscription and connection subcommands must come directly after setup.
Arguments
What it does
Interactivemurmur setup runs eight sections:
- Control plane: Reports the murmur API server address setup talks to.
- Sign in: Chooses how murmur verifies who you are: your
ghCLI login (recommended), or a one-time device-flow code from murmur’s GitHub App. If theghtoken cannot serve as identity (for example, it is a personal access token), setup falls back to the device flow. A device-flow identity is stored in the OS keychain. - GitHub access: Chooses the token agents act with on GitHub: from the
ghCLI (refreshed withgh auth tokenon every spawn), or a fixed token you paste (for example, a bot account’s PAT). Ifghis not authenticated, setup runsgh auth loginfor you. - Tenant & workspace: Lists the tenants you belong to and lets you pick one. A single tenant is selected automatically. Then lists workspaces for that tenant. If
.murmur/murmur.yamldoes not exist, setup asks before creating it. - Claude: Uses
ANTHROPIC_API_KEYfrom the environment, signs in with a Claude subscription (OAuth), takes a pasted Anthropic API key, or skips. Without a Claude credential, Claude agents run on murmur-billed inference. - OpenAI / Codex: Uses
OPENAI_API_KEYfrom the environment, signs in with a ChatGPT subscription (OAuth), takes a pasted OpenAI API key, or skips. Without one, Codex agents run on murmur-billed inference. - Git & SSH: Offers to generate an ed25519 SSH key when
~/.sshhas none, and offers to set up commit signing. - Save & finish: Creates or updates
.murmur/murmur.yaml(shared team config) with your tenant and workspace. A newly created file also adds.murmur/murmur.local.yamlto.gitignore. Encrypts your credentials and writesmurmur.local.yaml(personal, gitignored). Optionally uploads your profile so you can spawn agents from the dashboard. A subscription credential gathered in this run is always uploaded. Finally, offers to register murmur as an MCP server with Claude Code (claude mcp add -s user murmur -- <murmur> mcp) and Codex (codex mcp add murmur -- <murmur> mcp).
MCP registration only
murmur setup --mcp runs step 8’s MCP registration by itself. Each prompt defaults to yes. It fails when neither claude nor codex is on PATH, or when a registration you confirmed does not complete.
Non-interactive mode
With--non-interactive, murmur setup reads credentials from environment variables instead of prompting. An existing .murmur/murmur.yaml is required. The recognized variables are:
All backend credentials are optional. Without one, agents on that backend run on murmur-billed inference. Without
--upload, the profile is written locally and not uploaded.
Subscriptions and connections
murmur setup subscription manages the Claude (Anthropic) and Codex (OpenAI/ChatGPT) subscriptions that spawns round-robin across. murmur setup connection manages the inference connections that opencode models run on. See murmur setup subscription and murmur setup connection.
Examples
Interactive setup in a new repo
Non-interactive setup in CI
Write local config to stdout
Register the MCP server only
Errors
Related
- Profiles and secrets: what the profile contains and how credentials are stored
- Workspaces: concept overview
murmur login: sign in without running full setupmurmur setup subscription: manage Claude and Codex subscriptionsmurmur setup connection: manage inference connectionsmurmur auth: standalone Claude OAuth flowmurmur init: onboarding wizard for new reposmurmur spawn: start an agent- Configuration: murmur.yaml: shared team config file
- Configuration: local overlays: per-developer local config