Configuration
AgentLoop uses TOML configuration files with a layered priority system. This page documents all available configuration options.
Configuration File Locations
| Location | Purpose |
|---|---|
./.agentloop/config.toml | Project-level config (local overrides) |
~/.config/agentloop/ | User-level config (global defaults), database, credentials, and cache |
Configuration Priority
Settings are applied in this order (highest priority first):
- Environment variables
- Project config (
./.agentloop/config.toml) - User config (
~/.config/agentloop/config.toml) - Default values
Viewing Configuration
Interactive Mode
View current configuration:
> /config showView settings:
> /settings showOrchestrator Settings
[orchestrator]
max_parallel_agents = 1 # Number of agents that can run in parallel
use_worktrees = false # Enable git worktrees for parallel development
worktrees_dir = ".worktrees" # Directory for worktrees (relative to project)
cleanup_worktrees_on_complete = false # Auto-cleanup worktrees after completion| Option | Default | Env Variable | Description |
|---|---|---|---|
max_parallel_agents | 1 | AGENTLOOP_MAX_PARALLEL_AGENTS | Maximum number of parallel agents |
use_worktrees | false | AGENTLOOP_USE_WORKTREES | Enable git worktrees |
worktrees_dir | .worktrees | AGENTLOOP_WORKTREES_DIR | Worktrees directory |
cleanup_worktrees_on_complete | false | AGENTLOOP_CLEANUP_WORKTREES | Auto-cleanup worktrees |
Container Sandbox Settings
[orchestrator.container_sandbox]
enabled = false # Enable Podman sandboxing
container_image = "agentloop-worker"
network_mode = "slirp4netns" # none, slirp4netns, or host
memory_limit = "4g"
cpu_limit = "2"
[orchestrator.container_sandbox.agent_images]
engineer = "agentloop-worker"
qa-tester = "agentloop-qa-worker"
analyzer = "agentloop-worker"
product-manager = "agentloop-worker"| Option | Default | Description |
|---|---|---|
enabled | false | Enable container sandboxing |
container_image | agentloop-worker | Default container image |
network_mode | slirp4netns | Network isolation mode (none, slirp4netns, host) |
memory_limit | 4g | Memory limit per container |
cpu_limit | 2 | CPU limit per container |
GitHub Settings
[github]
enabled = true
token = "ghp_your_token_here" # Or use GITHUB_PERSONAL_ACCESS_TOKEN env var| Option | Default | Env Variable | Description |
|---|---|---|---|
enabled | true | - | Enable GitHub integration |
token | - | GITHUB_PERSONAL_ACCESS_TOKEN | GitHub PAT (scopes: repo, workflow) |
Jira Settings
[jira]
siteUrl = "https://yourcompany.atlassian.net"
project = "PROJ"
boardId = "123"
# Basic Auth (simpler)
email = "user@example.com"
apiToken = "your_api_token"
# Or OAuth (more secure) - set via /jira set-oauth command
# clientId = "your_oauth_client_id"
# clientSecret = "your_oauth_client_secret"| Option | Description |
|---|---|
siteUrl | Jira site URL |
project | Jira project key |
boardId | Board ID for accurate syncing (find in board URL) |
email | Email for Basic Auth |
apiToken | API token for Basic Auth |
Example Configurations
User-Level Defaults
~/.config/agentloop/config.toml:
[github]
enabled = true
[orchestrator]
max_parallel_agents = 4
use_worktrees = trueProject-Level Overrides
./.agentloop/config.toml:
[orchestrator]
max_parallel_agents = 10
[orchestrator.container_sandbox]
enabled = true
network_mode = "slirp4netns"
[jira]
siteUrl = "https://company.atlassian.net"
project = "MYPROJ"
boardId = "42"Minimal Configuration
For quick setup with defaults:
[github]
enabled = trueFull Configuration
All options with typical values:
# GitHub integration
[github]
enabled = true
# Orchestrator settings
[orchestrator]
max_parallel_agents = 4
use_worktrees = true
worktrees_dir = ".worktrees"
cleanup_worktrees_on_complete = false
# Container sandboxing
[orchestrator.container_sandbox]
enabled = true
container_image = "agentloop-worker"
network_mode = "slirp4netns"
memory_limit = "8g"
cpu_limit = "4"
[orchestrator.container_sandbox.agent_images]
engineer = "agentloop-worker"
qa-tester = "agentloop-qa-worker"
analyzer = "agentloop-worker"
product-manager = "agentloop-worker"
# Jira integration
[jira]
siteUrl = "https://company.atlassian.net"
project = "DEV"
boardId = "42"
email = "developer@company.com"
apiToken = "your-jira-api-token"Environment Variables
Many settings can be overridden with environment variables:
# Orchestrator
export AGENTLOOP_MAX_PARALLEL_AGENTS=4
export AGENTLOOP_USE_WORKTREES=true
export AGENTLOOP_WORKTREES_DIR=".worktrees"
export AGENTLOOP_CLEANUP_WORKTREES=false
# GitHub
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_..."Security Best Practices
Never commit sensitive credentials to version control.
Recommended approach:
- Use environment variables for tokens and secrets
- Add
.agentloop/to.gitignoreif it contains credentials - Use OAuth for Jira instead of Basic Auth when possible
- Regularly rotate API tokens
Example .gitignore:
.agentloop/config.toml
.agentloop/credentials/Last updated on