Docs/Configuration/Configuration

Configuration

Everything works out of the box with defaults. If you want to customize, create a dynamo.yaml in your project root.

dynamo.yaml

yaml
project:
  name: "MyGame"
  github_repo: "myorg/mygame"
  base_ref: "main"

ai:
  provider: "anthropic"
  personality: "full"        # full | light | minimal
  sandbox: "full"            # project | full | unrestricted
  memory: true               # false to disable memory
  auto_checkpoint: true      # false to disable auto-checkpoints
  auto_consolidate: false    # true to auto-consolidate memory on session start
  slim_mode: false           # compact mode for local providers (Ollama etc.)
  show_costs: false          # show per-turn cost in the status bar

  models:
    interactive: "anthropic/claude-sonnet-4-6"   # model for the chat REPL

  budget:
    session_limit: 5.0       # warn (non-blocking) at 80% / 100% of this spend

  shell:
    defaultTimeout: 120000   # 2 min (ms)
    maxTimeout: 600000       # 10 min max
    maxOutput: 50000         # 50K chars before truncation

  providers:
    deepseek:
      type: "openai-compatible"
      base_url: "https://api.deepseek.com/v1"
      api_key_env: "DEEPSEEK_API_KEY"

engines:
  unity:
    project_path: "./MyUnityProject"

Once a dynamo.yaml exists, project.name is the one required key — everything else has sensible defaults.

Run dynamo config to see your full resolved configuration.

Config namespaces

These top-level namespaces are available (see dynamo config for the full resolved tree):

NamespaceWhat it covers
ai.models.interactiveModel used for the chat REPL
ai.context.*Context engine — enabled, auto_index, cache
ai.instructions.*DYNAMO.md project-instructions loader
ai.budgetNon-blocking session cost limit (session_limit)
ai.show_costsPer-turn cost in the status bar
ai.slim_modeCompact mode for local/proxied providers
ai.openrouter.*OpenRouter fallback model list
hooksEvent-driven shell hooks
mcp.servers.*Engine bridge (Unity) connection
engines.unity.*Unity engine package settings

Personality Levels

LevelDescription
fullWarm game-dev teammate — conversational, shares thinking (default for interactive)
lightHelpful and clear, less personality
minimalTerse and direct (default for workflows)

Override with DYNAMO_PERSONALITY env var.

Environment Variables

API Keys

VariableProvider
ANTHROPIC_API_KEYAnthropic (Claude)
OPENAI_API_KEYOpenAI (GPT)
OPENROUTER_API_KEYOpenRouter (200+ models)
GOOGLE_API_KEYGoogle (Gemini)

For Ollama, no API key is needed — Dynamo auto-detects a running Ollama instance.

For custom providers (DeepSeek, Groq, etc.), set the key name in api_key_env in your provider config.

Overrides

VariablePurpose
DYNAMO_AI_PROVIDEROverride default provider
DYNAMO_PERSONALITYOverride personality level
DYNAMO_CONFIG_DIROverride config directory location (default ~/.config/dynamo/)
DYNAMO_SHELL_TIMEOUTOverride default shell timeout (ms)
DYNAMO_NERD_FONTSForce Nerd Fonts on (1) or off (0)
NO_COLORDisable all terminal colors
FORCE_COLORForce color level (3 for truecolor)

Auth Priority

Dynamo resolves credentials in this order:

  1. 1.Saved preferences (~/.config/dynamo/preferences.json)
  2. 2.dynamo.yaml config
  3. 3.OpenClaw credentials (if connected)
  4. 4.Environment variables
  5. 5.CLI fallback (prompts you)

OpenClaw Integration

If you use OpenClaw, Dynamo detects it automatically:

  • API key import — your OpenClaw API keys are imported automatically (explicit environment variables always take priority)
  • Model aliases — aliases like /model opus work if OpenClaw knows about the model
  • Context window sizes — imported so Dynamo knows each model's limits
  • Config watching — Dynamo watches for changes to your OpenClaw config and picks them up live
  • Manual sync — run /sync to re-sync OpenClaw settings on demand

No OpenClaw? No problem. Dynamo works fine standalone.

File Locations

FileLocation
Sessions~/.config/dynamo/sessions/
Preferences~/.config/dynamo/preferences.json
Credentials~/.config/dynamo/credentials.json
Checkpoints~/.config/dynamo/checkpoints/
Global memory~/.config/dynamo/memory/
Project memory.dynamo/memory/
Project config./dynamo.yaml
Project skills.dynamo/skills/
Personal skills~/.config/dynamo/skills/
Input history~/.config/dynamo/input-history.jsonl