Skip to main content
Risoluto’s configuration is layered with this merge order (last wins):
  1. Built-in defaults — sensible out-of-the-box configuration
  2. Persistent overlay~/.risoluto/config/overlay.yaml (or $DATA_DIR/config/overlay.yaml)
  3. Environment variables and $SECRET:name resolution at runtime

Managing Configuration

Overlay changes via the API or dashboard are persisted to disk and survive restarts. You never need to restart Risoluto after a config change — the orchestrator reloads automatically.

Configuration Sections

Timeouts:Authentication:
Resources:Security:Logging:
Hooks:
Risoluto supports two notification config shapes. The single-Slack shape is the legacy path; the channels array is the current multi-channel path and is what you should use for anything beyond a single Slack webhook.Legacy single-Slack:Multi-channel array:Slack channel (type: slack):Webhook channel (type: webhook):Desktop channel (type: desktop): no extra fields — surfaces notifications in the dashboard notification tray only.
See the Notifications guide for event types and severity levels.
Route issues to different repositories based on tracker metadata. Each entry in repos is a destination that the orchestrator matches against the incoming issue before launching a worker. See the Multi-repo recipe for a worked example.
Controls the opt-in auto-merge engine. Defaults to disabled, so no PR is auto-merged until you turn enabled on.
Override the default issue lifecycle stages and transitions. Only needed if your tracker uses non-standard states or you want to gate specific transitions.

Secrets Management

Secrets are stored in an AES-256-GCM encrypted store, separate from config:
Keep secrets out of committed files. Use $SECRET:name references in config or environment variable expansion like $LINEAR_API_KEY.

Environment Variables

What’s Next

Dashboard

Explore the real-time dashboard views.

Security

Harden your deployment with network controls and sandbox policies.
Last modified on April 10, 2026