Murmur supports layered configuration: a shared murmur.yaml committed to the repo, a gitignored murmur.local.yaml for per-developer credentials, and environment variable overrides for CI or special cases.
murmur.local.yaml
Keep murmur.local.yaml and all murmur.*.local.yaml files in .gitignore. The murmur install command adds these patterns automatically.
The primary local overlay lives at .murmur/murmur.local.yaml. This file is gitignored and contains per-developer settings that should not be committed to the repository. It is created automatically by murmur install or murmur setup.
Fields
developer
Type: string
Your GitHub username. Used to associate agents with your identity, scope agent listings, and determine authorization.
encrypted_profile
Type: string
Your encrypted developer profile, generated during murmur install or murmur setup. This blob contains your Anthropic API credentials and other sensitive configuration, encrypted with the tenant’s KMS key. It is transported to agent VMs where the control plane re-seals it with per-VM ephemeral keys and decrypts it in memory only.
ssh_public_keys
Type: array of strings
SSH public keys authorized for connecting to your agent VMs via murmur ssh or murmur attach. Add a key for each machine you work from. Keys are injected into the VM’s authorized_keys at boot time.
claude_credentials
Type: array of objects
Labeled Claude OAuth credentials, written by murmur setup auth add, rotated by murmur setup auth update, and removed by murmur setup auth remove. Together with the default pair, these form the rotation set that spawns round-robin across: spawns from this machine carry the whole set on the request and the server selects one credential per spawn — no upload needed. Each token value is KMS-encrypted server-side — the same encryption as encrypted_secrets; nothing in this file is plaintext, and the rotation itself is never delivered to a VM (each agent receives only its assigned credential). The local file is the source of truth: uploading your profile mirrors this set onto your developer profile — what dashboard spawns select from — overwriting its Claude credential state.
Explicit path overrides
For maximum control, bypass walk-up discovery entirely with explicit file paths:
MURMUR_CONFIG
Replaces walk-up discovery. Murmur loads the shared config from this exact path instead of searching for .murmur/murmur.yaml up the directory tree.
MURMUR_LOCAL_CONFIG
Overrides the local overlay path. Useful when your local settings live outside the repository, for example in ~/.config/murmur/.
Environment variable reference
The full set of environment variables that affect Murmur configuration:
Precedence rules
When the same setting appears in multiple sources, the highest-precedence source wins:
For named contexts, context-specific files replace the defaults entirely — murmur.dev.yaml is loaded instead of murmur.yaml, not merged with it. Similarly, murmur.dev.local.yaml replaces murmur.local.yaml.
Environment variables always take highest precedence, regardless of which context is active.