Skip to Content
Configuration

Configuration

AgentLoop reads YAML configuration files with a layered priority system. This page documents the most commonly used options.

Most settings can also be edited from the Configuration panel inside the desktop app — but if you’d rather edit the YAML directly, the file paths and options below are the source of truth.

AgentLoop is in early access beta. Configuration keys covered here are stable, but new keys may be added in upcoming releases.

Configuration File Locations

LocationPurpose
./.agentloop/config.yamlProject-level config (lives next to the repo)
~/.config/agentloop/config.yamlUser-level config that applies to every project on this machine

On Windows the user config lives under %APPDATA%\agentloop\config.yaml, and on Linux it follows $XDG_CONFIG_HOME if set. macOS installs may use ~/Library/Application Support/agentloop/config.yaml — AgentLoop will pick the right path automatically.

Configuration Priority

Settings are applied in this order (highest priority first):

  1. Environment variables (where supported)
  2. Project config (./.agentloop/config.yaml)
  3. User config (~/.config/agentloop/config.yaml)
  4. Built-in defaults

When the same key appears in both files, the project value wins. Sections that don’t conflict are merged, so user-level defaults stay in effect for anything the project config doesn’t override.

Editing Configuration

The easiest way to edit configuration is from the Configuration panel in the desktop app — it gives you a guided UI with descriptions and validation, and writes the same YAML files described here.

If you prefer to edit YAML directly, restart the daemon (or quit and reopen the desktop app) so the new values take effect.

Top-Level Keys

A config file is a single YAML document. The following top-level keys are recognized:

KeyWhat it controls
modelsDefault and recently used models, vision tool provider
providersProvider selection, per-agent overrides, custom OpenAI-compatible endpoints
orchestratorParallel agent limits, worktrees, sandboxing, retry behavior
githubGitHub PR integration
jiraJira sync (OAuth or Basic Auth)
anthropicAnthropic API key / base URL overrides
mcpMCP server defaults (e.g. Serena)
loggingPer-log-stream toggles
column_triggersExtra agents to dispatch when a task enters a kanban column
disabled_agentsAgent types to suppress from column triggers
updatesAuto-update check cadence
runtimeContinuous agent runtime mode
hooksShell hooks fired on AgentLoop events — see the Hooks page

You only need to include the keys you want to set. Anything you omit falls back to defaults.

Model Settings

The models key holds your default model and recently used models. The default model is Claude Opus 4.8 (anthropic/claude-opus-4-8).

models: default: "anthropic/claude-opus-4-8" # Model used for new work
OptionDefaultDescription
defaultanthropic/claude-opus-4-8Model used when you haven’t picked one for a specific task

You don’t need to edit this file to change the default. Open the chat model picker in the desktop app, select a model, and choose Set as default — AgentLoop writes the change for you.

To use Claude models you can either sign in with a Claude Pro or Max subscription (“Use Claude subscription”) or provide an Anthropic API key (see Anthropic Settings). Both options are supported; the subscription option is the simplest if you don’t have an API key.

Orchestrator Settings

orchestrator: max_parallel_agents: 4 # Total agent slots (minimum 4) worktrees_dir: ".worktrees" # Where per-task git worktrees are created cleanup_worktrees_on_complete: false # Auto-cleanup worktrees after completion base_branch: "main" # Base branch for worktrees and PRs sync_agents: none # Which built-in agents to copy into the project
OptionDefaultEnv VariableDescription
max_parallel_agents4AGENTLOOP_MAX_PARALLEL_AGENTSTotal parallel agent slots, including infrastructure agents. Minimum is 4.
worktrees_dir.worktreesAGENTLOOP_WORKTREES_DIRDirectory used for per-task git worktrees
cleanup_worktrees_on_completefalseAGENTLOOP_CLEANUP_WORKTREESRemove a worktree once its task is complete
base_branchcurrent branchAGENTLOOP_BASE_BRANCHBase branch for worktree creation and PR targeting
sync_agentsnoneAGENTLOOP_SYNC_AGENTSall, none, or a list of agent names to copy from built-in templates into the project
continuous_agent_typeschat, orchestrator, product-manager, engineer, qa-testerAGENTLOOP_CONTINUOUS_AGENT_TYPESAgent types to keep running continuously instead of spawning per task
native_notifications_enabledtrueAGENTLOOP_NATIVE_NOTIFICATIONS_ENABLEDmacOS native notifications when a task is permanently blocked

There are additional knobs for QA bounce limits, trigger retries, and merge-resolver scope. The defaults are sensible for most projects; the desktop Configuration panel exposes them with inline help when you need to tune them.

Container Sandbox Settings

Container sandboxing isolates each agent in its own Podman or Docker container.

orchestrator: container_sandbox: enabled: false runtime: "auto" # auto, podman, or docker container_image: "agentloop-worker" network_mode: "slirp4netns" # none, slirp4netns, or host memory_limit: "4g" cpu_limit: "2" agent_images: engineer: "agentloop-worker" qa-tester: "agentloop-qa-worker"
OptionDefaultDescription
enabledfalseEnable container-based agent isolation
runtimeautoauto, podman, or docker (auto prefers Podman if available)
container_imageagentloop-workerDefault image used when no per-agent override is set
network_modeslirp4netnsNetwork isolation mode (none, slirp4netns, or host)
memory_limit4gMemory limit per container
cpu_limit2CPU limit per container
agent_imagesOptional per-agent image overrides (e.g. a QA image bundled with browsers)

See Container Sandboxing for details on building images and choosing a runtime.

GitHub Settings

github: enabled: true token: "ghp_your_token_here" # Or set GITHUB_PERSONAL_ACCESS_TOKEN
OptionDefaultEnv VariableDescription
enabledtrueEnable GitHub integration
tokenGITHUB_PERSONAL_ACCESS_TOKENGitHub PAT (recommended scopes: repo, workflow)

Anthropic Settings

These settings apply when you bring your own Anthropic API key. If you’d rather not manage a key, you can instead sign in with a Claude Pro or Max subscription from the account menu — no anthropic block required.

anthropic: api_key: "sk-ant-..." # Or set ANTHROPIC_API_KEY base_url: "https://api.anthropic.com" # Optional override
OptionEnv VariableDescription
api_keyANTHROPIC_API_KEYAnthropic API key
base_urlANTHROPIC_BASE_URLCustom base URL (proxies, gateways)

Jira Settings

Jira accepts either OAuth credentials or a Basic Auth email + API token.

jira: siteUrl: "https://yourcompany.atlassian.net" project: "PROJ" # OAuth (recommended) clientId: "your_client_id" clientSecret: "your_client_secret" # Basic Auth (simpler, less secure) email: "user@example.com" apiToken: "your_api_token"
OptionDescription
siteUrlJira site URL
projectJira project key
clientId / clientSecretOAuth credentials
email / apiTokenBasic Auth credentials (alternative to OAuth)

See Integrations for full Jira setup.

Hooks

The hooks: block lets you run shell commands when AgentLoop events fire (task status changes, agent completions, orchestrator lifecycle, etc.). Hook configuration lives in the same file as the rest of your settings.

See the dedicated Hooks page for events, payloads, matchers, and examples.

Example Configurations

User-Level Defaults

~/.config/agentloop/config.yaml:

github: enabled: true orchestrator: max_parallel_agents: 4 cleanup_worktrees_on_complete: false

Project-Level Overrides

./.agentloop/config.yaml:

orchestrator: max_parallel_agents: 10 base_branch: "main" container_sandbox: enabled: true network_mode: "slirp4netns" jira: siteUrl: "https://company.atlassian.net" project: "MYPROJ"

Minimal Configuration

github: enabled: true

Full Configuration

A representative config showing the most commonly tweaked options:

# GitHub integration github: enabled: true # Orchestrator settings orchestrator: max_parallel_agents: 4 worktrees_dir: ".worktrees" cleanup_worktrees_on_complete: false base_branch: "main" sync_agents: none # Container sandboxing container_sandbox: enabled: true runtime: "auto" container_image: "agentloop-worker" network_mode: "slirp4netns" memory_limit: "8g" cpu_limit: "4" agent_images: engineer: "agentloop-worker" qa-tester: "agentloop-qa-worker" # Jira integration jira: siteUrl: "https://company.atlassian.net" project: "DEV" email: "developer@company.com" apiToken: "your-jira-api-token"

Environment Variables

Many settings can be overridden with environment variables, which take precedence over both YAML files:

# Orchestrator export AGENTLOOP_MAX_PARALLEL_AGENTS=4 export AGENTLOOP_WORKTREES_DIR=".worktrees" export AGENTLOOP_CLEANUP_WORKTREES=false export AGENTLOOP_BASE_BRANCH="main" # GitHub export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_..." # Anthropic export ANTHROPIC_API_KEY="sk-ant-..." export ANTHROPIC_BASE_URL="https://api.anthropic.com"

Security Best Practices

Never commit sensitive credentials to version control.

  • Prefer environment variables (or your OS credential store) for tokens and secrets
  • Add .agentloop/config.yaml to .gitignore if it contains credentials
  • Use OAuth for Jira instead of Basic Auth when possible
  • Rotate API tokens regularly

Example .gitignore:

.agentloop/config.yaml .agentloop/credentials/
Last updated on
AgentLoop — Multi-agent loops you can see and control