-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.tpl.yml
More file actions
564 lines (548 loc) · 18.2 KB
/
Copy pathconfig.tpl.yml
File metadata and controls
564 lines (548 loc) · 18.2 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
# =============================================================================
# Oh My Pi — Configuration
# =============================================================================
# This is the annotated configuration for config.yml.
# It shows every available configuration field with documentation.
# Copy values from here into config.yml to override defaults.
#
# Fields marked [REQUIRED] must be present in config.yml.
# All other fields are optional and fall back to harness defaults.
#
# =============================================================================
# HOW TO USE THIS FILE
# =============================================================================
# 1. Edit config.yml (your actual settings) — this file is read-only reference.
# 2. Copy any field from here into config.yml to override the default.
# 3. Run `omp config validate` to check your config.yml for errors.
# =============================================================================
# =============================================================================
# CHANGELOG TRACKING
# =============================================================================
# lastChangelogVersion
# Track the last changelog version shown to the user.
# Type: string (semver, e.g. "13.13.2")
# Default: unset / undefined (first run shows all entries)
# Set this to the last changelog version you have acknowledged.
#
# The explicit current settings snapshot begins below.
#
lastChangelogVersion: "0.0.0"
# shellPath
# Optional shell binary used for spawned shell sessions. When null, OMP uses
# its built-in shell-resolution fallback chain.
shellPath: null
# extensions / enabledModels / disabledProviders / disabledExtensions
# Low-level capability and provider filters from the unified settings schema.
# Empty arrays keep upstream discovery behavior unchanged.
extensions:
- "~/.omp/agent/extensions/swarm-extension"
enabledModels:
- cliproxyapi/*
- openrouter/*
disabledProviders: []
disabledExtensions: []
# =============================================================================
# MODEL ROLES
# =============================================================================
# Map of role name -> model identifier.
# Each role is a named model configuration you can reference in skills,
# commands, or agent definitions.
#
# Model identifier format: "<provider>/<model>[:thinkingLevel]"
#
# Common providers:
# anthropic — Claude models (__CLAUDE_SONNET__, __CLAUDE_OPUS__, etc.)
# openai — OpenAI models (__GPT__, __GPT_LUNA__, etc.)
# openai-codex — OpenAI Codex models/providers used by OMP
# google — Gemini models (__GEMINI_PRO__, __GEMINI_FLASH__, etc.)
# deepseek — DeepSeek models
# mistral — Mistral models
# groq — Groq models
# openrouter — OpenRouter (access to many models)
#
# Examples:
# default: cliproxyapi/free
# fast: cliproxyapi/free
# slow: cliproxyapi/__DEEPSEEK_FLASH__
modelRoles:
# Default model role used as the fallback when no other role is selected.
default: "cliproxyapi/free"
# Smaller / dumber model for cheap lightweight work.
smol: "cliproxyapi/free"
# Strongest model in the suite for hard tasks.
slow: "cliproxyapi/__DEEPSEEK_FLASH__"
# Keep vision on the main default model.
vision: "cliproxyapi/__DEEPSEEK_FLASH__"
# Planning / architecture model.
plan: "cliproxyapi/free"
# Commit message model.
commit: "cliproxyapi/free"
# Fast subagent path.
task: "cliproxyapi/free"
# =============================================================================
# DISPLAY
# =============================================================================
display:
# showTokenUsage
# Show per-turn token usage on assistant messages.
# Type: boolean
# Upstream default: false
showTokenUsage: true
# tabWidth
# Default number of spaces used when rendering tab characters.
# Type: integer
# Upstream default: 3
tabWidth: 3
# showHardwareCursor
# Show terminal cursor for IME support.
# Upstream default: true (computed by platform if unset)
showHardwareCursor: true
# clearOnShrink
# Clear empty rows when content shrinks; may cause flicker on some terminals.
# Upstream default: false
clearOnShrink: true
# hideThinkingBlock
# Hide thinking blocks in assistant responses.
# Upstream default: false
hideThinkingBlock: false
# repeatToolDescriptions
# Render full tool descriptions in the system prompt instead of a tool-name list.
# Upstream default: false
repeatToolDescriptions: false
# collapseChangelog
# Show condensed changelog after updates.
# Upstream default: false
collapseChangelog: true
# defaultThinkingLevel
# Reasoning depth for thinking-capable models.
# Upstream default: high
defaultThinkingLevel: "high"
# Sampling and provider knobs. `-1` keeps provider defaults.
temperature: -1
topP: -1
topK: -1
minP: -1
presencePenalty: -1
repetitionPenalty: -1
# serviceTier
# OpenAI processing priority. `none` omits the parameter entirely.
serviceTier: "none"
# =============================================================================
# THEME
# =============================================================================
theme:
# dark
# Theme used when the terminal has a dark background.
# Type: string (theme name)
# Upstream schema default: "titanium"
# This repo overrides it to "dark-dracula".
dark: "dark-dracula"
# light
# Theme used when the terminal has a light background.
# Type: string (theme name)
# Upstream schema default: "light"
light: "light"
# symbolPreset
# Icon/symbol style for the UI. Options: unicode | nerd | ascii.
# Upstream default: unicode
symbolPreset: "unicode"
# colorBlindMode
# Use blue instead of green for diff additions.
# Upstream default: false
colorBlindMode: false
# =============================================================================
# STATUS LINE
# =============================================================================
statusLine:
# preset
# Pre-built status line configuration.
# Type: string
# Options: default | minimal | compact | full | nerd | ascii | custom
# Use "custom" when defining leftSegments/rightSegments below.
preset: "full"
# separator
# Visual separator between status line segments.
# Type: string
# Options: powerline | powerline-thin | slash | pipe | block | none | ascii
separator: "pipe"
# showHookStatus
# Display hook status messages below the status line.
# Type: boolean
showHookStatus: true
# leftSegments
# Segments rendered on the left side of the status line.
# Supported IDs include: pi, model, plan_mode, path, git, pr, subagents,
# token_in, token_out, token_total, token_rate, cost, context_pct,
# context_total, time_spent, time, session, hostname, cache_read, cache_write.
leftSegments:
- "pi"
- "model"
- "path"
- "git"
# rightSegments
# Segments rendered on the right side of the status line.
rightSegments:
- "context_pct"
- "cost"
- "subagents"
- "time_spent"
# segmentOptions
# Per-segment overrides. Keep empty until a concrete override is needed.
segmentOptions: {}
# =============================================================================
# INTERACTION MODES
# =============================================================================
# Control how queued user input is processed while the agent is working.
#
# steeringMode
# How to process queued messages while agent work is in progress.
# Type: string
# Options:
# - "all" — drain the entire queued message set in one go
# - "one-at-a-time" — dequeue one queued message per turn
# Upstream default: "one-at-a-time"
steeringMode: "all"
# followUpMode
# How to drain follow-up messages after a turn completes.
# Type: string
# Options: all | one-at-a-time
# Upstream default: "one-at-a-time"
followUpMode: "all"
# interruptMode
# When steering messages interrupt tool execution.
# Type: string
# Options: immediate | wait
# Upstream default: "immediate"
interruptMode: "immediate"
# doubleEscapeAction
# Action when pressing Escape twice with an empty editor.
# Type: string
# Options: branch | tree | none
# Upstream default: "tree"
# This repo disables it explicitly.
doubleEscapeAction: "none"
# treeFilterMode
# Default filter mode when opening the session tree.
# Options: default | no-tools | user-only | labeled-only | all
treeFilterMode: "default"
# autocompleteMaxVisible
# Max visible items in the autocomplete dropdown (3-20 upstream).
autocompleteMaxVisible: 5
# =============================================================================
# STARTUP BEHAVIOUR
# =============================================================================
startup:
# quiet
# Skip welcome screen and startup status messages.
# Type: boolean
# Upstream default: false (show banner)
quiet: true
# checkUpdate
# If false, skip update checks.
# Upstream default: true
checkUpdate: true
completion:
# notify
# Notify when the agent completes. Options: on | off.
notify: "on"
ask:
# timeout
# Auto-select the recommended option after timeout; 0 disables timeout.
timeout: 30
# notify
# Notify when ask tool input is waiting. Options: on | off.
notify: "on"
stt:
# Speech-to-text input via microphone. Disabled by default in this repo.
enabled: false
# Language code for transcription (for example: en, es, fr).
language: "en"
# Whisper model size; larger models are slower but more accurate.
modelName: "base.en"
contextPromotion:
# Promote to a larger-context model on overflow instead of compacting.
enabled: true
# =============================================================================
# ADVANCED FIELDS (uncomment to use)
# =============================================================================
# The fields below are not set by default. Uncomment and configure as needed.
# --- Context ---------------------------------------------------------------
# Upstream no longer exposes a standalone `context.maxTokens` / `context.maxTurns`
# block. Current context behavior is controlled by:
# - contextPromotion.*
# - compaction.*
# - branchSummary.*
# - memories.*
# --- Provider Credentials --------------------------------------------------
# API keys for model providers. It is STRONGLY recommended to set these via
# environment variables instead of in this file, to avoid accidental commit.
# env:
# OPENAI_API_KEY: ""
# ANTHROPIC_API_KEY: ""
# GOOGLE_API_KEY: ""
# DEEPSEEK_API_KEY: ""
# --- Logging ---------------------------------------------------------------
# Upstream settings schema does not currently expose logging.* fields in the
# user-configurable config surface, so they are intentionally omitted here.
# --- Retry & Timeout ---------------------------------------------------------
retry:
# enabled
# Enable API retries on transient failures.
enabled: true
# maxRetries
# Maximum retry attempts on API errors. Upstream default: 3
maxRetries: 3
# baseDelayMs
# Base delay between retries in milliseconds. Upstream default: 2000
baseDelayMs: 2000
# modelFallback
# Let retry recovery switch to the chains below. Upstream default: true
modelFallback: true
# fallbackChains
# Ordered alternates per chain key. The `default` chain is expanded to every
# model role without its own chain, so role turns fall back too.
#
# Candidates are the entries AFTER the current model in its chain, so a role
# whose model sits last in the chain it inherits has no candidates at all.
# Roles pinned to free inherit `default` and still have `free` after
# them. Do not put a role on the last hop.
fallbackChains:
default:
- "cliproxyapi/__DEEPSEEK_FLASH__"
- "cliproxyapi/free"
# fallbackRevertPolicy
# Return to the primary once its cooldown expires. Upstream default: cooldown-expiry
fallbackRevertPolicy: "cooldown-expiry"
# --- Compaction --------------------------------------------------------------
compaction:
# enabled
# Automatically compact context when it gets too large.
enabled: true
# strategy
# In-place context maintenance, auto-handoff, or disabled maintenance.
strategy: "context-full"
# thresholdPercent / thresholdTokens
# `-1` keeps reserve-based behavior; explicit values enable threshold-based maintenance.
thresholdPercent: -1
thresholdTokens: -1
# handoffSaveToDisk
# Save generated handoff documents for the auto-handoff flow.
handoffSaveToDisk: true
# remoteEnabled
# Prefer remote compaction endpoints when available.
remoteEnabled: true
reserveTokens: 16384
keepRecentTokens: 20000
autoContinue: true
remoteEndpoint: null
branchSummary:
# Prompt to summarize when leaving a branch.
enabled: true
reserveTokens: 16384
# --- Memory & Context --------------------------------------------------------
memories:
# Enable autonomous memory extraction and consolidation.
enabled: true
maxRolloutsPerStartup: 64
maxRolloutAgeDays: 30
minRolloutIdleHours: 12
threadScanLimit: 300
maxRawMemoriesForGlobal: 200
stage1Concurrency: 8
stage1LeaseSeconds: 120
stage1RetryDelaySeconds: 120
phase2LeaseSeconds: 180
phase2RetryDelaySeconds: 180
phase2HeartbeatSeconds: 30
rolloutPayloadPercent: 0.7
fallbackTokenLimit: 16000
summaryInjectionTokenLimit: 5000
ttsr:
# Time Traveling Stream Rules: interrupt agent output when configured rules match.
enabled: true
# contextMode
# What to do with partial output when TTSR triggers. Options: discard | keep
contextMode: "discard"
# interruptMode
# When to interrupt mid-stream. Options: never | prose-only | tool-only | always
interruptMode: "always"
# repeatMode / repeatGap
# Allow one trigger per session or retrigger after a message gap.
repeatMode: "once"
repeatGap: 10
edit:
# Edit tool configuration: hashline mode with fuzzy matching enabled.
mode: "hashline"
fuzzyMatch: true
fuzzyThreshold: 0.95
streamingAbort: false
blockAutoGenerated: true
# Read tool rendering defaults.
readLineNumbers: false
readHashLines: true
read:
# Default number of lines returned when read is called without a limit.
defaultLimit: 300
grep:
# Grep tool defaults.
enabled: true
contextBefore: 0
contextAfter: 0
find:
# File search tool.
enabled: true
astGrep:
# Structural AST search tool.
enabled: true
astEdit:
# Structural AST rewrite tool.
enabled: true
notebook:
# Notebook editing tool.
enabled: true
renderMermaid:
# Mermaid-to-ASCII rendering helper.
enabled: true
calc:
# Basic calculator tool.
enabled: true
inspect_image:
# Vision delegation helper for image understanding.
enabled: true
checkpoint:
# Context checkpointing / rewind tools.
enabled: true
fetch:
# URL fetching tool.
enabled: true
web_search:
# Web search tool.
enabled: true
browser:
# Browser automation tool (Ulixee Hero).
enabled: true
headless: true
async:
# Background bash command execution.
enabled: false
maxJobs: 100
lsp:
# Language Server Protocol integration.
enabled: true
formatOnWrite: false
diagnosticsOnWrite: true
diagnosticsOnEdit: false
bashInterceptor:
# Block shell commands that have dedicated tools.
enabled: false
simpleLs: true
python:
# Python execution path: both bash and IPython are available.
toolMode: "both"
kernelMode: "session"
sharedGateway: true
tools:
# Artifact spill controls and tool-call intent tracing.
artifactSpillThreshold: 50
artifactTailBytes: 20
artifactTailLines: 500
intentTracing: true
maxTimeout: 0
terminal:
# Render images inline when terminal protocol support exists.
showImages: true
images:
# Resize large images for model compatibility and allow image input by default.
autoResize: true
blockImages: false
mcp:
# Model Context Protocol project config and notification behavior.
enableProjectConfig: true
discoveryMode: false
discoveryDefaultServers: []
notifications: false
notificationDebounceMs: 500
# --- Task Agent Overrides ---------------------------------------------------
# Override discovered agent model patterns by agent name. These names match the
# custom agents shown in the subagent dashboard.
task:
isolation:
# Isolation mode for subagents. `none` disables worktree/overlay isolation.
mode: "none"
# How isolated task changes are reintegrated.
merge: "patch"
# Commit message style for nested repo changes.
commits: "generic"
# Encourage delegation only when it is materially useful.
eager: false
maxConcurrency: 32
maxRecursionDepth: 2
disabledAgents: []
agentModelOverrides:
code-architect: "__DEEPSEEK_FLASH__"
code-explorer: "free"
code-reviewer: "__DEEPSEEK_FLASH__"
code-simplifier: "free"
comment-analyzer: "free"
pr-test-analyzer: "free"
silent-failure-hunter: "free"
type-design-analyzer: "free"
# --- Agent Definitions -------------------------------------------------------
# Inline agent definitions (alternative to skill/agent files).
# agents: {}
tasks:
# How long to wait before auto-clearing completed/abandoned todos.
todoClearDelay: 60
todo:
# Enable the todo_write task-tracking tool.
enabled: true
reminders:
max: 3
eager: false
skills:
# Skill loading toggles and custom directory filters.
enabled: true
enableSkillCommands: true
enableCodexUser: true
enableClaudeUser: true
enableClaudeProject: true
enablePiUser: true
enablePiProject: true
customDirectories: []
ignoredSkills: []
includeSkills: []
commands:
# Load Claude user/project command directories.
enableClaudeUser: true
enableClaudeProject: true
secrets:
# Obfuscate secrets before sending them to providers.
enabled: false
providers:
# Provider selection for search/image/fetch behavior.
webSearch: "auto"
codeSearch: "grep"
image: "auto"
kimiApiFormat: "anthropic"
openaiWebsockets: "auto"
parallelFetch: true
exa:
# Exa provider feature toggles.
enabled: true
enableSearch: true
enableResearcher: false
enableWebsets: false
commit:
# Map-reduce commit proposal settings.
mapReduceEnabled: true
mapReduceMinFiles: 4
mapReduceMaxFileTokens: 50000
mapReduceTimeoutMs: 120000
mapReduceMaxConcurrency: 5
changelogMaxDiffChars: 120000
thinkingBudgets:
# Token budgets for reasoning levels.
minimal: 1024
low: 2048
medium: 8192
high: 16384