Configuration File Location
The orchestrator searches for configuration in the following order:Directory Tree Search
Search up from current working directory (like git) for:
agent-orchestrator.yamlagent-orchestrator.yml
packages/core/src/config.ts:289-349
Creating Your First Config
The fastest way to get started:Minimal Configuration
At minimum, you only need to define projects:Configuration Structure
The configuration file is organized into several top-level sections:Global Settings
Global Settings
System-wide settings that apply to all projects:
Web dashboard port
Terminal WebSocket server port (optional—auto-detected if not set)
Direct terminal WebSocket port (optional)
Milliseconds before a “ready” session becomes “idle” (default: 5 minutes)
defaults
defaults
Default plugin selections for all projects (can be overridden per-project):
Where sessions execute:
tmux, process, docker, kubernetes, ssh, e2bAI coding assistant:
claude-code, codex, aider, goose, opencode, customWorkspace isolation:
worktree, clone, copyNotification channels
projects
projects
Per-project configuration. See Projects for details.
notifiers
notifiers
Notification channel configurations. See Notifications for details.
notificationRouting
notificationRouting
Route notifications by priority level. See Notifications for details.
reactions
reactions
Auto-responses to events. See Reactions for details.
Configuration Validation
Agent Orchestrator validates your configuration using Zod schemas at load time. If validation fails, you’ll receive a detailed error message explaining what’s wrong.Validation happens at startup, so you’ll know immediately if your configuration has issues.
Common Validation Errors
Duplicate session prefixes:sessionPrefix to one project:
Environment Variable Support
You can reference environment variables using${VAR_NAME} syntax:
Environment variables are expanded when the config is loaded. Make sure to set them before running
ao start.Path Expansion
All path fields support~ for home directory expansion:
packages/core/src/config.ts:113-127
Plugin System
Agent Orchestrator has 8 plugin slots that control every aspect of the system:| Slot | Purpose | Default | Alternatives |
|---|---|---|---|
| Runtime | Where sessions execute | tmux | process, docker, kubernetes, ssh, e2b |
| Agent | AI coding assistant | claude-code | codex, aider, goose, opencode |
| Workspace | Code isolation | worktree | clone, copy |
| Tracker | Issue tracking | github | linear, jira |
| SCM | Source control & PR | github | GitLab, Bitbucket (future) |
| Notifier | Notifications | desktop | slack, composio, discord, webhook |
| Terminal | Human interaction | iterm2 | web |
| Lifecycle | Session management | (core) | Non-pluggable |
packages/core/src/types.ts.
Default Values
When you omit configuration, these defaults apply:packages/core/src/config.ts:84-106,215-278
Configuration Reloading
To apply configuration changes:- Stop the orchestrator (Ctrl+C)
- Edit
agent-orchestrator.yaml - Restart:
ao start
Multiple Configurations
You can run multiple orchestrator instances with different configurations:Each orchestrator instance needs a unique
port value to avoid conflicts.Next Steps
Projects
Configure projects with repos, branches, and per-project settings
Reactions
Set up auto-responses to CI failures, reviews, and more
Notifications
Route notifications to Slack, Discord, or custom webhooks
