Skip to main content
Helix reads a single YAML file. /onboard writes it; this page documents every block, so you can tune LLM providers, models, trace sources, apply targets, and per-stage behaviour.

Location

Config is project-local: Helix reads .mutagent/config.yaml from your project root.

Full example

.mutagent/config.yaml

config_version

The schema version of the file — currently 0.4.0. /onboard writes it; leave it as is. A 0.2.0 or 0.3.0 file is upgraded automatically the next time Helix reads it, with nothing lost. A 0.1.0 file is too different to upgrade automatically: Helix stops and asks you to migrate it, and /onboard can walk you through it.

global.providers

The LLM providers Helix is allowed to call. Each entry names a provider and points at an environment variable for its credential. /onboard adds entries for you, or edit the file by hand.
mutagent providers add adds a provider to your Mutagent workspace (used by Helix in the cloud). It doesn’t change this file.
Mind the spelling: global.providers uses credentials_ref (plural); sources and targets use credential_ref (singular). Using the wrong one makes the file invalid.

global.workspace

The repository and subdirectory Helix operates on. This is not your Mutagent workspace (mutagent workspaces); it only scopes Helix to a repository path.

global.models

global.sources

Where your traces come from. A single entry auto-binds by role to Evaluate and Diagnose; with several sources you can bind them explicitly. See Traces for what each source provides.

global.targets

Where approved fixes are written — a list; add several and bind them per stage. Omit the block entirely and every stage stays report-only (Helix proposes changes but never writes them). When you do add a target, it must declare how it applies via apply.kind. Targets come in two kinds:
  • Markdown agents — agents defined as markdown files for a coding agent: Claude Code, Codex, Cursor, OpenCode. A fix edits the agent’s markdown files.
  • Code-based agents — agents defined in code: Mastra, Claude Agent SDK, DeepAgents, Pydantic AI. A fix is a code change.
Either way, a fix lands via GitHub: Helix opens a pull request on the target repo, and nothing is written in place. The exception is an agent hosted on a cloud agent platform (cloud-rest), where an approved fix is sent to the platform’s API.
DeepAgents and Pydantic AI (frameworks) are part of the target model but don’t have a dedicated platform value yet.

lifecycle

Per-skill overrides. Exactly four keys are accepted: agentspec, builder, evaluator, diagnostics.

triggers

Automatic runs, keyed by stage: build, evaluate, diagnose, optimize, ship. Shipped disabled: Helix is on-demand. These keys are reserved for a future release; today nothing reads them, so nothing fires on its own even when enabled is true. They are local automatic runs, unrelated to gateway triggers (mutagent gateway triggers, see Triggers and routines).

Secrets

Secrets never go in config.yaml. credentials_ref / credential_ref are the names of environment variables; Helix reads the values from your environment at runtime. The file is safe to commit.

Inspecting your config

Helix validates the config when it boots. The dashboard’s SETUP panel shows whether the config is complete, how many providers are ready, and which stages are ready to run; /help repaints it. /status and /onboard tell you what is missing and help you fill it in. helix doctor checks the installation itself — the binary, the agent directory and your provider credentials — not this file. Check spelling when you edit by hand: an unknown key, such as plaform, makes the file invalid. Only the sections inside lifecycle accept extra keys. Values listed as a set (platform, mode, apply.kind) accept only the values shown. After editing the file by hand, start Helix and check the SETUP panel, or run /status. From a script or coding agent, run helix -p "/status" (it needs a model key, like any headless run).