Configuration Reference
All Telesis configuration lives in .telesis/config.yml. This file is created during telesis init with project metadata and sensible defaults. Every setting is optional except the project block.
Project (Required)
| |
| Field | Description |
|---|---|
name | Project name, used in generated docs and context |
owner | Owner or team name |
languages | Programming languages used (array) |
status | Project status: active, paused, archived |
repo | Repository URL (used for GitHub integration) |
Review
| |
| Field | Default | Description |
|---|---|---|
model | claude-sonnet-4-6 | Model used for review analysis |
judgeModel | claude-haiku-4-5-20251001 | Model used for LLM judge (dismissal re-raise detection) |
personas | — | Custom persona overrides (in addition to built-in security, architecture, correctness) |
personas[].slug | — | Persona identifier |
personas[].model | Inherits review.model | Override model for this persona |
Dispatch
| |
| Field | Default | Description |
|---|---|---|
defaultAgent | claude | Agent used when --agent is not specified |
maxConcurrent | 3 | Maximum concurrent dispatch sessions |
acpxPath | Auto-detected | Path to the acpx binary |
Oversight
| |
| Field | Default | Description |
|---|---|---|
enabled | true if observer policies exist | Enable oversight observers during dispatch |
defaultModel | claude-sonnet-4-6 | Model used by oversight observers |
Intake
| |
| Field | Default | Description |
|---|---|---|
github.labels | — | Only import issues with these labels |
github.excludeLabels | — | Skip issues with these labels |
github.assignee | — | Only import issues assigned to this user |
github.state | open | Issue state filter: open, closed, all |
Planner
| |
| Field | Default | Description |
|---|---|---|
model | claude-sonnet-4-6 | Model used for plan decomposition |
maxTasks | — | Maximum number of tasks per plan |
Validation
| |
| Field | Default | Description |
|---|---|---|
model | claude-sonnet-4-6 | Model used for task validation |
maxRetries | 3 | Number of retry attempts before escalating a task |
enableGates | false | Require human approval after plan completion |
Git
| |
| Field | Default | Description |
|---|---|---|
branchPrefix | telesis/ | Prefix for auto-created branches |
commitToMain | false | Skip branching; commit directly to current branch |
pushAfterCommit | true | Automatically push after committing |
createPR | false | Create a GitHub PR after pushing (requires GITHUB_TOKEN) |
llmCommitMessages | false | Generate commit messages with an LLM from diff and plan context |
llmPRBody | false | Generate PR descriptions with an LLM from plan and diff context |
Pipeline
| |
| Field | Default | Description |
|---|---|---|
autoApprove | false | Skip plan confirmation prompt in telesis run |
closeIssue | false | Close source GitHub issue on pipeline completion |
reviewBeforePush | false | Run code review before pushing changes |
reviewBlockThreshold | high | Minimum severity to block push: critical, high, medium, low |
qualityGates | — | Automated checks run before committing |
qualityGates.format | — | Shell command for formatting check |
qualityGates.lint | — | Shell command for linting check |
qualityGates.test | — | Shell command for test suite |
qualityGates.build | — | Shell command for build verification |
qualityGates.drift | — | Run telesis drift (boolean, not a shell command) |
Daemon
| |
| Field | Default | Description |
|---|---|---|
watch.ignore | — | Glob patterns for paths the daemon should not watch |
heartbeatIntervalMs | 5000 | Interval between heartbeat events (milliseconds) |
sessionLifecycle.restartPolicy | notify-only | What to do when a dispatched session ends: auto-restart, notify-only, manual |
sessionLifecycle.cooldownSeconds | 30 | Minimum seconds between auto-restarts |
sessionLifecycle.maxRestartsPerMilestone | 10 | Circuit breaker: max auto-restarts per milestone |
Environment Variables
These are not in config.yml but affect Telesis behavior:
| Variable | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY | Yes | API key for all model calls |
GITHUB_TOKEN | For GitHub features | GitHub personal access token |
Minimal Configuration
A working config needs only the project block. Everything else has sensible defaults:
| |
Full Configuration Example
| |