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)

1
2
3
4
5
6
7
project:
  name: "Your Project"
  owner: "Your Name or Team"
  languages:
    - "TypeScript"
  status: "active"
  repo: "github.com/you/your-project"
FieldDescription
nameProject name, used in generated docs and context
ownerOwner or team name
languagesProgramming languages used (array)
statusProject status: active, paused, archived
repoRepository URL (used for GitHub integration)

Review

1
2
3
4
5
6
7
review:
  model: claude-sonnet-4-6
  judgeModel: claude-haiku-4-5-20251001
  personas:
    - slug: performance
      model: claude-sonnet-4-6
    - slug: accessibility
FieldDefaultDescription
modelclaude-sonnet-4-6Model used for review analysis
judgeModelclaude-haiku-4-5-20251001Model used for LLM judge (dismissal re-raise detection)
personasCustom persona overrides (in addition to built-in security, architecture, correctness)
personas[].slugPersona identifier
personas[].modelInherits review.modelOverride model for this persona

Dispatch

1
2
3
4
dispatch:
  defaultAgent: claude
  maxConcurrent: 3
  acpxPath: /usr/local/bin/acpx
FieldDefaultDescription
defaultAgentclaudeAgent used when --agent is not specified
maxConcurrent3Maximum concurrent dispatch sessions
acpxPathAuto-detectedPath to the acpx binary

Oversight

1
2
3
oversight:
  enabled: true
  defaultModel: claude-sonnet-4-6
FieldDefaultDescription
enabledtrue if observer policies existEnable oversight observers during dispatch
defaultModelclaude-sonnet-4-6Model used by oversight observers

Intake

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
intake:
  github:
    labels:
      - bug
      - feature
    excludeLabels:
      - wontfix
      - duplicate
    assignee: your-username
    state: open
FieldDefaultDescription
github.labelsOnly import issues with these labels
github.excludeLabelsSkip issues with these labels
github.assigneeOnly import issues assigned to this user
github.stateopenIssue state filter: open, closed, all

Planner

1
2
3
planner:
  model: claude-sonnet-4-6
  maxTasks: 20
FieldDefaultDescription
modelclaude-sonnet-4-6Model used for plan decomposition
maxTasksMaximum number of tasks per plan

Validation

1
2
3
4
validation:
  model: claude-sonnet-4-6
  maxRetries: 3
  enableGates: false
FieldDefaultDescription
modelclaude-sonnet-4-6Model used for task validation
maxRetries3Number of retry attempts before escalating a task
enableGatesfalseRequire human approval after plan completion

Git

1
2
3
4
5
6
7
git:
  branchPrefix: "telesis/"
  commitToMain: false
  pushAfterCommit: true
  createPR: false
  llmCommitMessages: false
  llmPRBody: false
FieldDefaultDescription
branchPrefixtelesis/Prefix for auto-created branches
commitToMainfalseSkip branching; commit directly to current branch
pushAfterCommittrueAutomatically push after committing
createPRfalseCreate a GitHub PR after pushing (requires GITHUB_TOKEN)
llmCommitMessagesfalseGenerate commit messages with an LLM from diff and plan context
llmPRBodyfalseGenerate PR descriptions with an LLM from plan and diff context

Pipeline

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
pipeline:
  autoApprove: false
  closeIssue: false
  reviewBeforePush: false
  reviewBlockThreshold: high
  qualityGates:
    format: "pnpm run format"
    lint: "pnpm run lint"
    test: "pnpm test"
    build: "pnpm run build"
    drift: true
FieldDefaultDescription
autoApprovefalseSkip plan confirmation prompt in telesis run
closeIssuefalseClose source GitHub issue on pipeline completion
reviewBeforePushfalseRun code review before pushing changes
reviewBlockThresholdhighMinimum severity to block push: critical, high, medium, low
qualityGatesAutomated checks run before committing
qualityGates.formatShell command for formatting check
qualityGates.lintShell command for linting check
qualityGates.testShell command for test suite
qualityGates.buildShell command for build verification
qualityGates.driftRun telesis drift (boolean, not a shell command)

Daemon

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
daemon:
  watch:
    ignore:
      - "node_modules/**"
      - "dist/**"
      - ".git/**"
  heartbeatIntervalMs: 5000
  sessionLifecycle:
    restartPolicy: notify-only
    cooldownSeconds: 30
    maxRestartsPerMilestone: 10
FieldDefaultDescription
watch.ignoreGlob patterns for paths the daemon should not watch
heartbeatIntervalMs5000Interval between heartbeat events (milliseconds)
sessionLifecycle.restartPolicynotify-onlyWhat to do when a dispatched session ends: auto-restart, notify-only, manual
sessionLifecycle.cooldownSeconds30Minimum seconds between auto-restarts
sessionLifecycle.maxRestartsPerMilestone10Circuit breaker: max auto-restarts per milestone

Environment Variables

These are not in config.yml but affect Telesis behavior:

VariableRequiredDescription
ANTHROPIC_API_KEYYesAPI key for all model calls
GITHUB_TOKENFor GitHub featuresGitHub personal access token

Minimal Configuration

A working config needs only the project block. Everything else has sensible defaults:

1
2
3
4
5
6
7
project:
  name: "My Project"
  owner: "Me"
  languages:
    - "TypeScript"
  status: "active"
  repo: "github.com/me/my-project"

Full Configuration Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
project:
  name: "My Project"
  owner: "My Team"
  languages:
    - "TypeScript"
  status: "active"
  repo: "github.com/myteam/my-project"

review:
  model: claude-sonnet-4-6
  judgeModel: claude-haiku-4-5-20251001
  personas:
    - slug: performance

dispatch:
  defaultAgent: claude
  maxConcurrent: 3

oversight:
  enabled: true
  defaultModel: claude-sonnet-4-6

intake:
  github:
    labels: ["bug", "feature", "enhancement"]
    excludeLabels: ["wontfix"]
    state: open

planner:
  model: claude-sonnet-4-6
  maxTasks: 15

validation:
  model: claude-sonnet-4-6
  maxRetries: 3
  enableGates: false

git:
  branchPrefix: "telesis/"
  commitToMain: false
  pushAfterCommit: true
  createPR: true
  llmCommitMessages: true
  llmPRBody: true

pipeline:
  autoApprove: false
  closeIssue: true
  reviewBeforePush: true
  reviewBlockThreshold: high
  qualityGates:
    format: "pnpm run format"
    lint: "pnpm run lint"
    test: "pnpm test"
    build: "pnpm run build"
    drift: true

daemon:
  watch:
    ignore:
      - "node_modules/**"
      - "dist/**"
      - ".git/**"
  heartbeatIntervalMs: 5000
  sessionLifecycle:
    restartPolicy: notify-only
    cooldownSeconds: 30
    maxRestartsPerMilestone: 10