New structure: docs/ split into 11 subdirectories (getting-started/, agents/, providers/, sidecar/, multi-machine/, plugins/, config/, production/, architecture/, contributing/, pro/). New files: - docs/README.md: navigation index with audience table - docs/getting-started/quickstart.md: install, build, first session - docs/config/ref-settings.md: all env vars, config files, databases - docs/architecture/overview.md: split from architecture.md (>300 lines) - docs/pro/README.md: Pro edition overview - docs/pro/features/analytics.md: analytics dashboard docs - docs/pro/features/cost-intelligence.md: budget + router docs Remaining docs being written by background agents — will be committed in follow-up when complete.
229 lines
7.2 KiB
Markdown
229 lines
7.2 KiB
Markdown
# Configuration Reference
|
|
|
|
All configuration paths, environment variables, database files, and per-project
|
|
settings for Agents Orchestrator.
|
|
|
|
## Environment variables
|
|
|
|
### Core
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `AGOR_TEST` | unset | Set to `1` to enable test mode. Disables file watchers, wake scheduler, and telemetry. |
|
|
| `AGOR_OTLP_ENDPOINT` | unset | OpenTelemetry OTLP/HTTP endpoint (e.g. `http://localhost:4318`). When unset, telemetry is console-only. |
|
|
| `AGOR_TEST_DATA_DIR` | unset | Override data directory in test mode. Isolates SQLite databases. |
|
|
| `AGOR_TEST_CONFIG_DIR` | unset | Override config directory in test mode. Isolates groups.json and plugins. |
|
|
| `AGOR_TEST_CTX_DIR` | unset | Override ctx database directory in test mode. |
|
|
| `AGOR_EDITION` | `community` | Set to `pro` to enable commercial features (used by vitest and CI). |
|
|
|
|
### Provider-specific
|
|
|
|
Provider environment variables (`CLAUDE_*`, `CODEX_*`, `OLLAMA_*`) are stripped
|
|
from the sidecar process environment to prevent cross-contamination. The
|
|
whitelist `CLAUDE_CODE_EXPERIMENTAL_*` is preserved.
|
|
|
|
Variables the sidecar runner may read:
|
|
|
|
| Variable | Provider | Description |
|
|
|----------|----------|-------------|
|
|
| `ANTHROPIC_API_KEY` | Claude | API key (used by Claude CLI internally) |
|
|
| `OPENAI_API_KEY` | Codex | API key for Codex SDK |
|
|
| `OPENROUTER_API_KEY` | Aider | API key for OpenRouter-routed models |
|
|
| `CLAUDE_CONFIG_DIR` | Claude | Override Claude config directory (multi-account) |
|
|
| `BTMSG_AGENT_ID` | All (Tier 1) | Injected for management agents to enable btmsg/bttask CLI |
|
|
|
|
## Config files
|
|
|
|
Base directory: `~/.config/agor/`
|
|
|
|
### groups.json
|
|
|
|
Primary configuration file. Defines project groups, projects, and management
|
|
agents.
|
|
|
|
```
|
|
~/.config/agor/groups.json
|
|
```
|
|
|
|
Schema: `GroupsFile` (see `src/lib/types/groups.ts`).
|
|
|
|
Structure:
|
|
|
|
```json
|
|
{
|
|
"version": 1,
|
|
"groups": [
|
|
{
|
|
"id": "group-id",
|
|
"name": "Group Name",
|
|
"projects": [ ... ],
|
|
"agents": [ ... ]
|
|
}
|
|
],
|
|
"activeGroupId": "group-id"
|
|
}
|
|
```
|
|
|
|
Managed via the Settings tab in the UI or by editing the file directly. Changes
|
|
are picked up on next group load.
|
|
|
|
### accounts.json (Pro edition)
|
|
|
|
Commercial multi-account configuration.
|
|
|
|
```
|
|
~/.config/agor/accounts.json
|
|
```
|
|
|
|
Only present when `AGOR_EDITION=pro`. Not included in the community build.
|
|
|
|
### plugins/
|
|
|
|
Plugin discovery directory. Each plugin is a subdirectory containing a
|
|
`plugin.json` manifest.
|
|
|
|
```
|
|
~/.config/agor/plugins/
|
|
my-plugin/
|
|
plugin.json
|
|
index.js
|
|
```
|
|
|
|
Plugins run in Web Worker sandboxes with permission-gated APIs. See
|
|
`src/lib/plugins/plugin-host.ts`.
|
|
|
|
## Database files
|
|
|
|
Base directory: `~/.local/share/agor/`
|
|
|
|
All databases use SQLite WAL mode with 5-second busy timeout for concurrent
|
|
access.
|
|
|
|
### sessions.db
|
|
|
|
Session persistence, layout state, settings, session metrics, and anchors.
|
|
|
|
```
|
|
~/.local/share/agor/sessions.db
|
|
```
|
|
|
|
Tables:
|
|
|
|
| Table | Description |
|
|
|-------|-------------|
|
|
| `sessions` | Session state (project_id, group_name, layout data) |
|
|
| `agent_messages` | Per-project message persistence |
|
|
| `project_agent_state` | SDK session ID, cost, status per project |
|
|
| `session_metrics` | Historical session data (tokens, turns, cost, model) |
|
|
| `session_anchors` | Preserved turns through compaction chains |
|
|
| `settings` | Key-value application settings |
|
|
|
|
### btmsg.db
|
|
|
|
Shared database for inter-agent messaging (btmsg) and task board (bttask).
|
|
|
|
```
|
|
~/.local/share/agor/btmsg.db
|
|
```
|
|
|
|
Created by the `btmsg` CLI on first `btmsg register`. Used concurrently by
|
|
Python CLIs and the Rust backend.
|
|
|
|
Tables:
|
|
|
|
| Table | Description |
|
|
|-------|-------------|
|
|
| `agents` | Registered agents (id, name, role, group_id, tier, model, status) |
|
|
| `messages` | Direct messages between agents |
|
|
| `channels` | Named broadcast channels |
|
|
| `channel_messages` | Messages posted to channels |
|
|
| `contacts` | ACL for agent-to-agent visibility |
|
|
| `heartbeats` | Agent liveness tracking |
|
|
| `dead_letter_queue` | Undeliverable messages |
|
|
| `audit_log` | Agent action audit trail |
|
|
| `seen_messages` | Per-message read tracking (session_id, message_id) |
|
|
| `tasks` | Kanban task board entries |
|
|
| `task_comments` | Comments on tasks |
|
|
|
|
### search.db
|
|
|
|
FTS5 full-text search index.
|
|
|
|
```
|
|
~/.local/share/agor/search.db
|
|
```
|
|
|
|
Virtual tables:
|
|
|
|
| Table | Description |
|
|
|-------|-------------|
|
|
| `search_messages` | Indexed agent messages |
|
|
| `search_tasks` | Indexed task board entries |
|
|
| `search_btmsg` | Indexed btmsg messages |
|
|
|
|
Rebuilt on demand via the search overlay (`Ctrl+Shift+F`).
|
|
|
|
## Tauri configuration
|
|
|
|
### src-tauri/tauri.conf.json
|
|
|
|
Community edition Tauri config. Defines window properties, permissions, updater
|
|
endpoint, and bundle metadata.
|
|
|
|
### src-tauri/tauri.conf.commercial.json
|
|
|
|
Commercial edition overlay. Merged with the base config when building with
|
|
`--config src-tauri/tauri.conf.commercial.json`. Changes bundle identifier,
|
|
product name, and updater URL.
|
|
|
|
## Theme settings
|
|
|
|
17 themes in 3 groups, all mapping to the same 26 `--ctp-*` CSS custom
|
|
properties.
|
|
|
|
| Group | Themes |
|
|
|-------|--------|
|
|
| Catppuccin | Mocha (default), Macchiato, Frappe, Latte |
|
|
| Editor | VSCode Dark+, Atom One Dark, Monokai, Dracula, Nord, Solarized Dark, GitHub Dark |
|
|
| Deep Dark | Tokyo Night, Gruvbox Dark, Ayu Dark, Poimandres, Vesper, Midnight |
|
|
|
|
Settings keys (persisted in `sessions.db` settings table):
|
|
|
|
| Key | Default | Description |
|
|
|-----|---------|-------------|
|
|
| `theme` | `mocha` | Active theme ID |
|
|
| `ui_font_family` | system sans-serif | UI element font |
|
|
| `ui_font_size` | `14` (px) | UI font size (feeds CSS `--ui-font-size`) |
|
|
| `term_font_family` | system monospace | Terminal font |
|
|
| `term_font_size` | `14` (px) | Terminal font size (feeds CSS `--term-font-size`) |
|
|
| `default_shell` | system default | Default shell for terminal panes |
|
|
| `default_cwd` | `~` | Default working directory |
|
|
|
|
All font settings are restored from SQLite on startup via `initTheme()`.
|
|
|
|
## Per-project settings
|
|
|
|
These fields are set in `groups.json` per project entry (`ProjectConfig`):
|
|
|
|
| Field | Type | Default | Description |
|
|
|-------|------|---------|-------------|
|
|
| `provider` | `ProviderId` | `claude` | Agent provider |
|
|
| `model` | string | provider default | Model identifier override |
|
|
| `profile` | string | `default` | Claude profile name |
|
|
| `useWorktrees` | boolean | `false` | Git worktree isolation per session |
|
|
| `sandboxEnabled` | boolean | `false` | Landlock filesystem sandbox |
|
|
| `autonomousMode` | string | `restricted` | `restricted` or `autonomous` |
|
|
| `anchorBudgetScale` | string | `medium` | Anchor budget: `small` (2K), `medium` (6K), `large` (12K), `full` (20K) |
|
|
| `stallThresholdMin` | number | `15` | Minutes before idle agent is marked stalled (range 5--60) |
|
|
|
|
### Agent-specific fields
|
|
|
|
Set on `GroupAgentConfig` entries in the `agents` array:
|
|
|
|
| Field | Type | Default | Description |
|
|
|-------|------|---------|-------------|
|
|
| `role` | string | required | `manager`, `architect`, `tester`, or `reviewer` |
|
|
| `wakeIntervalMin` | number | `3` | Auto-wake check interval (Manager only) |
|
|
| `wakeStrategy` | string | `smart` | `persistent`, `on-demand`, or `smart` |
|
|
| `wakeThreshold` | number | `0.5` | Threshold for smart wake strategy (0.0--1.0) |
|
|
| `systemPrompt` | string | none | Custom system prompt appended to generated prompt |
|