opencodekit 0.14.6 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +435 -57
  3. package/dist/template/.opencode/.env.example +1 -0
  4. package/dist/template/.opencode/AGENTS.md +13 -24
  5. package/dist/template/.opencode/README.md +8 -119
  6. package/dist/template/.opencode/agent/explore.md +2 -3
  7. package/dist/template/.opencode/agent/general.md +56 -0
  8. package/dist/template/.opencode/agent/plan.md +54 -0
  9. package/dist/template/.opencode/agent/scout.md +15 -5
  10. package/dist/template/.opencode/command/analyze-project.md +2 -2
  11. package/dist/template/.opencode/command/brainstorm.md +1 -1
  12. package/dist/template/.opencode/command/design-audit.md +4 -5
  13. package/dist/template/.opencode/command/design.md +4 -13
  14. package/dist/template/.opencode/command/generate-pattern.md +2 -9
  15. package/dist/template/.opencode/command/implement.md +4 -4
  16. package/dist/template/.opencode/command/init.md +1 -1
  17. package/dist/template/.opencode/command/new-feature.md +2 -3
  18. package/dist/template/.opencode/command/plan.md +1 -1
  19. package/dist/template/.opencode/command/pr.md +0 -1
  20. package/dist/template/.opencode/command/research.md +20 -6
  21. package/dist/template/.opencode/command/restore-image.md +1 -9
  22. package/dist/template/.opencode/command/revert-feature.md +1 -1
  23. package/dist/template/.opencode/command/review-codebase.md +4 -4
  24. package/dist/template/.opencode/command/status.md +1 -2
  25. package/dist/template/.opencode/command/summarize.md +1 -2
  26. package/dist/template/.opencode/command/triage.md +4 -32
  27. package/dist/template/.opencode/dcp.jsonc +68 -68
  28. package/dist/template/.opencode/memory/_templates/README.md +35 -0
  29. package/dist/template/.opencode/memory/_templates/project/architecture.md +60 -0
  30. package/dist/template/.opencode/memory/_templates/project/commands.md +72 -0
  31. package/dist/template/.opencode/memory/_templates/project/conventions.md +68 -0
  32. package/dist/template/.opencode/memory/_templates/project/gotchas.md +41 -0
  33. package/dist/template/.opencode/memory/beads-workflow.md +30 -29
  34. package/dist/template/.opencode/memory/project/architecture.md +31 -50
  35. package/dist/template/.opencode/memory/project/commands.md +41 -22
  36. package/dist/template/.opencode/memory/project/conventions.md +39 -177
  37. package/dist/template/.opencode/memory/project/gotchas.md +21 -177
  38. package/dist/template/.opencode/memory/user.example.md +5 -0
  39. package/dist/template/.opencode/opencode.json +628 -579
  40. package/dist/template/.opencode/package.json +18 -21
  41. package/dist/template/.opencode/plugin/compaction.ts +79 -85
  42. package/dist/template/.opencode/plugin/env-ctx.ts +19 -19
  43. package/dist/template/.opencode/plugin/lib/notify.ts +41 -45
  44. package/dist/template/.opencode/plugin/lsp.ts +197 -200
  45. package/dist/template/.opencode/plugin/memory.ts +14 -112
  46. package/dist/template/.opencode/plugin/package.json +5 -5
  47. package/dist/template/.opencode/plugin/sessions.ts +1 -1
  48. package/dist/template/.opencode/plugin/skill-mcp.ts +486 -521
  49. package/dist/template/.opencode/plugin/truncator.ts +47 -50
  50. package/dist/template/.opencode/plugin/tsconfig.json +14 -14
  51. package/dist/template/.opencode/skill/chrome-devtools/mcp.json +17 -17
  52. package/dist/template/.opencode/skill/condition-based-waiting/SKILL.md +17 -12
  53. package/dist/template/.opencode/skill/condition-based-waiting/example.ts +63 -69
  54. package/dist/template/.opencode/skill/defense-in-depth/SKILL.md +14 -8
  55. package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +14 -3
  56. package/dist/template/.opencode/skill/playwright/mcp.json +14 -14
  57. package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +21 -8
  58. package/dist/template/.opencode/skill/requesting-code-review/review.md +14 -0
  59. package/dist/template/.opencode/skill/root-cause-tracing/SKILL.md +18 -4
  60. package/dist/template/.opencode/skill/source-code-research/SKILL.md +9 -7
  61. package/dist/template/.opencode/skill/test-driven-development/SKILL.md +49 -32
  62. package/dist/template/.opencode/skill/testing-anti-patterns/SKILL.md +40 -22
  63. package/dist/template/.opencode/skill/testing-skills-with-subagents/SKILL.md +46 -26
  64. package/dist/template/.opencode/skill/tool-priority/SKILL.md +117 -44
  65. package/dist/template/.opencode/skill/v0/SKILL.md +1 -7
  66. package/dist/template/.opencode/skill/verification-before-completion/SKILL.md +27 -19
  67. package/dist/template/.opencode/skill/writing-skills/anthropic-best-practices.md +171 -148
  68. package/dist/template/.opencode/skill/writing-skills/persuasion-principles.md +39 -6
  69. package/dist/template/.opencode/tool/memory-read.ts +44 -56
  70. package/dist/template/.opencode/tool/memory-search.ts +8 -291
  71. package/dist/template/.opencode/tool/memory-update.ts +47 -51
  72. package/dist/template/.opencode/tool/observation.ts +6 -180
  73. package/dist/template/.opencode/tsconfig.json +19 -19
  74. package/package.json +19 -15
  75. package/dist/template/.opencode/.background-tasks.json +0 -114
  76. package/dist/template/.opencode/.ralph-state.json +0 -12
  77. package/dist/template/.opencode/agent/build.md +0 -327
  78. package/dist/template/.opencode/agent/ninja.md +0 -351
  79. package/dist/template/.opencode/agent/planner.md +0 -281
  80. package/dist/template/.opencode/agent/rush.md +0 -223
  81. package/dist/template/.opencode/memory/handoffs/README.md +0 -83
  82. package/dist/template/.opencode/memory/observations/.gitkeep +0 -0
  83. package/dist/template/.opencode/memory/observations/2026-01-09-pattern-ampcode-mcp-json-includetools-pattern.md +0 -42
  84. package/dist/template/.opencode/memory/vector_db/memories.lance/_transactions/0-0d25ba80-ba3b-4209-9046-b45d6093b4da.txn +0 -0
  85. package/dist/template/.opencode/memory/vector_db/memories.lance/_versions/1.manifest +0 -0
  86. package/dist/template/.opencode/memory/vector_db/memories.lance/data/1111100101010101011010004a9ef34df6b29f36a9a53a2892.lance +0 -0
  87. package/dist/template/.opencode/tool/ast-grep.ts +0 -245
  88. package/dist/template/.opencode/tool/background.ts +0 -509
  89. package/dist/template/.opencode/tool/bd-inbox.ts +0 -110
  90. package/dist/template/.opencode/tool/bd-msg.ts +0 -62
  91. package/dist/template/.opencode/tool/bd-release.ts +0 -71
  92. package/dist/template/.opencode/tool/bd-reserve.ts +0 -121
  93. package/dist/template/.opencode/tool/memory-embed.ts +0 -183
  94. package/dist/template/.opencode/tool/memory-index.ts +0 -769
  95. package/dist/template/.opencode/tool/repo-map.ts +0 -451
@@ -1,581 +1,630 @@
1
1
  {
2
- "$schema": "https://opencode.ai/config.json",
3
- "agent": {
4
- "build": {
5
- "description": "Primary development agent with full codebase access",
6
- "model": "proxypal/gemini-claude-opus-4-5-thinking"
7
- },
8
- "ninja": {
9
- "description": "Cost-effective primary agent powered by GPT-5.1 Codex Max",
10
- "model": "openai/gpt-5.1-codex-max"
11
- },
12
- "compaction": {
13
- "description": "Session summarizer for context continuity across compactions",
14
- "model": "proxypal/gemini-2.5-flash"
15
- },
16
- "explore": {
17
- "description": "Fast codebase search specialist",
18
- "model": "proxypal/gemini-3-flash-preview"
19
- },
20
- "looker": {
21
- "description": "Media extraction specialist for images, PDFs, diagrams",
22
- "model": "proxypal/gemini-3-flash-preview"
23
- },
24
- "general": {
25
- "disable": true
26
- },
27
- "plan": {
28
- "disable": true
29
- },
30
- "planner": {
31
- "description": "Strategic planning agent for architecture and design",
32
- "model": "openai/gpt-5.2"
33
- },
34
- "review": {
35
- "description": "Code review, debugging, and security audit specialist",
36
- "model": "proxypal/gemini-3-pro-preview"
37
- },
38
- "rush": {
39
- "description": "Fast primary agent for small, well-defined tasks",
40
- "model": "zai-coding-plan/glm-4.7"
41
- },
42
- "scout": {
43
- "description": "External research specialist for library docs and patterns",
44
- "model": "proxypal/gemini-claude-sonnet-4-5"
45
- },
46
- "vision": {
47
- "description": "Visual content specialist for multimodal analysis and UI/UX guidance",
48
- "model": "proxypal/gemini-3-pro-preview"
49
- }
50
- },
51
- "autoupdate": false,
52
- "compaction": {
53
- "auto": true,
54
- "prune": true
55
- },
56
- "experimental": {
57
- "batch_tool": true,
58
- "chatMaxRetries": 2,
59
- "continue_loop_on_deny": false,
60
- "lsp": true,
61
- "primary_tools": ["edit", "write", "bash"]
62
- },
63
- "formatter": {
64
- "biome": {
65
- "command": ["npx", "@biomejs/biome", "check", "--write", "$FILE"],
66
- "extensions": [".js", ".jsx", ".ts", ".tsx", ".json", ".jsonc"]
67
- },
68
- "cargo-fmt": {
69
- "command": ["cargo", "fmt", "--", "$FILE"],
70
- "extensions": [".rs"]
71
- },
72
- "java-formatter": {
73
- "command": ["google-java-format", "--replace", "$FILE"],
74
- "environment": {
75
- "JAVA_HOME": "{env:JAVA_HOME}"
76
- },
77
- "extensions": [".java"]
78
- },
79
- "prettier": {
80
- "command": ["npx", "prettier", "--write", "$FILE"],
81
- "extensions": [".html", ".css", ".scss", ".sass", ".md", ".yaml", ".yml"]
82
- }
83
- },
84
- "instructions": [
85
- ".opencode/memory/user.md",
86
- ".opencode/memory/project/*.md",
87
- ".opencode/memory/observations/*.md"
88
- ],
89
- "keybinds": {
90
- "command_list": ";",
91
- "leader": "`",
92
- "session_child_cycle": "ctrl+alt+right",
93
- "session_child_cycle_reverse": "ctrl+alt+left",
94
- "session_compact": "ctrl+k"
95
- },
96
- "mcp": {
97
- "context7": {
98
- "command": [
99
- "npx",
100
- "-y",
101
- "@upstash/context7-mcp",
102
- "--api-key",
103
- "{env:CONTEXT7_API_KEY}"
104
- ],
105
- "enabled": true,
106
- "type": "local"
107
- },
108
- "gh_grep": {
109
- "enabled": true,
110
- "type": "remote",
111
- "url": "https://mcp.grep.app"
112
- }
113
- },
114
- "model": "opencode/glm-4.7-free",
115
- "permission": {
116
- "bash": {
117
- "*": "allow",
118
- "cat *": "allow",
119
- "git branch *": "allow",
120
- "git commit *": "ask",
121
- "git diff *": "allow",
122
- "git log *": "allow",
123
- "git push *": "ask",
124
- "git rebase *": "ask",
125
- "git reset *": "ask",
126
- "git status *": "allow",
127
- "ls *": "allow",
128
- "npm *": "allow",
129
- "npx *": "allow",
130
- "rm *": "deny",
131
- "rm -rf *": "deny",
132
- "sudo *": "deny"
133
- },
134
- "doom_loop": "ask",
135
- "edit": "allow",
136
- "external_directory": "ask",
137
- "question": "allow",
138
- "read": {
139
- "*": "allow",
140
- "*.env": "deny",
141
- "*.env.*": "deny",
142
- "*.env.example": "allow"
143
- }
144
- },
145
- "plugin": [
146
- "@tarquinen/opencode-dcp@latest",
147
- "@franlol/opencode-md-table-formatter@0.0.3"
148
- ],
149
- "provider": {
150
- "openai": {
151
- "models": {
152
- "gpt-5": {
153
- "variants": {
154
- "high": {
155
- "reasoningEffort": "high",
156
- "textVerbosity": "low",
157
- "reasoningSummary": "auto",
158
- "include": ["reasoning.encrypted_content"]
159
- },
160
- "medium": {
161
- "reasoningEffort": "medium",
162
- "textVerbosity": "low",
163
- "reasoningSummary": "auto",
164
- "include": ["reasoning.encrypted_content"]
165
- },
166
- "fast": {
167
- "disabled": true
168
- }
169
- }
170
- },
171
- "gpt-5-codex": {
172
- "variants": {
173
- "high": {
174
- "reasoningEffort": "high",
175
- "textVerbosity": "low",
176
- "reasoningSummary": "auto",
177
- "include": ["reasoning.encrypted_content"]
178
- },
179
- "medium": {
180
- "reasoningEffort": "medium",
181
- "textVerbosity": "low",
182
- "reasoningSummary": "auto",
183
- "include": ["reasoning.encrypted_content"]
184
- },
185
- "fast": {
186
- "disabled": true
187
- }
188
- }
189
- }
190
- }
191
- },
192
- "github-copilot": {
193
- "models": {
194
- "claude-haiku-4.5": {
195
- "attachment": true,
196
- "options": {
197
- "thinking": {
198
- "budgetTokens": 16000,
199
- "type": "enabled"
200
- }
201
- },
202
- "reasoning": true,
203
- "temperature": true,
204
- "tool_call": true
205
- },
206
- "claude-opus-4.5": {
207
- "attachment": true,
208
- "options": {
209
- "thinking": {
210
- "budgetTokens": 32000,
211
- "type": "enabled"
212
- }
213
- },
214
- "reasoning": true,
215
- "temperature": true,
216
- "tool_call": true
217
- },
218
- "claude-sonnet-4.5": {
219
- "attachment": true,
220
- "options": {
221
- "thinking": {
222
- "budgetTokens": 16000,
223
- "type": "enabled"
224
- }
225
- },
226
- "reasoning": true,
227
- "temperature": true,
228
- "tool_call": true
229
- },
230
- "gpt-5.1": {
231
- "attachment": true,
232
- "options": {
233
- "reasoning": {
234
- "effort": "high"
235
- }
236
- },
237
- "reasoning": true,
238
- "temperature": true,
239
- "tool_call": true
240
- },
241
- "gpt-5.1-codex": {
242
- "attachment": true,
243
- "options": {
244
- "reasoning": {
245
- "effort": "high"
246
- }
247
- },
248
- "reasoning": true,
249
- "temperature": true,
250
- "tool_call": true
251
- }
252
- },
253
- "npm": "@ai-sdk/anthropic"
254
- },
255
- "opencode": {
256
- "models": {
257
- "big-pickle": {
258
- "options": {
259
- "reasoningEffort": "high",
260
- "temperature": 1,
261
- "top_k": 40,
262
- "top_p": 0.95
263
- },
264
- "reasoning": true
265
- }
266
- }
267
- },
268
- "proxypal": {
269
- "models": {
270
- "gemini-2.5-computer-use-preview-10-2025": {
271
- "limit": {
272
- "context": 880964,
273
- "output": 65536
274
- },
275
- "name": "Gemini 2 5 Computer Use Preview 10 2025"
276
- },
277
- "gemini-2.5-flash": {
278
- "limit": {
279
- "context": 880964,
280
- "output": 65536
281
- },
282
- "name": "Gemini 2 5 Flash"
283
- },
284
- "gemini-2.5-flash-lite": {
285
- "limit": {
286
- "context": 880964,
287
- "output": 65536
288
- },
289
- "name": "Gemini 2 5 Flash Lite"
290
- },
291
- "gemini-2.5-pro": {
292
- "limit": {
293
- "context": 880964,
294
- "output": 65536
295
- },
296
- "name": "Gemini 2 5 Pro"
297
- },
298
- "gemini-3-flash-preview": {
299
- "limit": {
300
- "context": 880964,
301
- "output": 65536
302
- },
303
- "name": "Gemini 3 Flash Preview",
304
- "options": {
305
- "generationConfig": {
306
- "thinkingConfig": {
307
- "thinkingLevel": "HIGH",
308
- "includeThoughts": true
309
- }
310
- }
311
- }
312
- },
313
- "gemini-3-pro-image-preview": {
314
- "limit": {
315
- "context": 880964,
316
- "output": 65536
317
- },
318
- "name": "Gemini 3 Pro Image Preview"
319
- },
320
- "gemini-3-pro-preview": {
321
- "limit": {
322
- "context": 880964,
323
- "output": 65536
324
- },
325
- "name": "Gemini 3 Pro Preview",
326
- "options": {
327
- "generationConfig": {
328
- "thinkingConfig": {
329
- "thinkingLevel": "HIGH",
330
- "includeThoughts": true
331
- }
332
- }
333
- }
334
- },
335
- "gemini-claude-opus-4-5-thinking": {
336
- "limit": {
337
- "context": 168000,
338
- "output": 64000
339
- },
340
- "name": "Gemini Claude Opus 4 5 Thinking",
341
- "options": {
342
- "thinking": {
343
- "budgetTokens": 32768,
344
- "type": "enabled"
345
- }
346
- },
347
- "reasoning": true,
348
- "modalities": {
349
- "input": ["text", "image", "pdf"],
350
- "output": ["text"]
351
- }
352
- },
353
- "gemini-claude-sonnet-4-5": {
354
- "limit": {
355
- "context": 168000,
356
- "output": 64000
357
- },
358
- "name": "Gemini Claude Sonnet 4 5",
359
- "modalities": {
360
- "input": ["text", "image", "pdf"],
361
- "output": ["text"]
362
- }
363
- },
364
- "gemini-claude-sonnet-4-5-thinking": {
365
- "limit": {
366
- "context": 168000,
367
- "output": 64000
368
- },
369
- "name": "Gemini Claude Sonnet 4 5 Thinking",
370
- "options": {
371
- "thinking": {
372
- "budgetTokens": 32768,
373
- "type": "enabled"
374
- }
375
- },
376
- "reasoning": true,
377
- "modalities": {
378
- "input": ["text", "image", "pdf"],
379
- "output": ["text"]
380
- }
381
- },
382
- "glm-4.5": {
383
- "limit": {
384
- "context": 107520,
385
- "output": 16384
386
- },
387
- "name": "Glm 4 5"
388
- },
389
- "glm-4.5-air": {
390
- "limit": {
391
- "context": 107520,
392
- "output": 16384
393
- },
394
- "name": "Glm 4 5 Air"
395
- },
396
- "glm-4.6": {
397
- "limit": {
398
- "context": 107520,
399
- "output": 16384
400
- },
401
- "name": "Glm 4 6"
402
- },
403
- "glm-4.7": {
404
- "limit": {
405
- "context": 107520,
406
- "output": 16384
407
- },
408
- "name": "Glm 4 7"
409
- },
410
- "gpt-5": {
411
- "limit": {
412
- "context": 336000,
413
- "output": 32768
414
- },
415
- "name": "Gpt 5",
416
- "options": {
417
- "reasoningEffort": "medium"
418
- },
419
- "reasoning": true
420
- },
421
- "gpt-5-codex": {
422
- "limit": {
423
- "context": 336000,
424
- "output": 32768
425
- },
426
- "name": "Gpt 5 Codex",
427
- "options": {
428
- "reasoningEffort": "medium"
429
- },
430
- "reasoning": true
431
- },
432
- "gpt-5-codex-mini": {
433
- "limit": {
434
- "context": 336000,
435
- "output": 32768
436
- },
437
- "name": "Gpt 5 Codex Mini",
438
- "options": {
439
- "reasoningEffort": "medium"
440
- },
441
- "reasoning": true
442
- },
443
- "gpt-5.1": {
444
- "limit": {
445
- "context": 336000,
446
- "output": 32768
447
- },
448
- "name": "Gpt 5 1",
449
- "options": {
450
- "reasoningEffort": "medium"
451
- },
452
- "reasoning": true
453
- },
454
- "gpt-5.1-codex": {
455
- "limit": {
456
- "context": 336000,
457
- "output": 32768
458
- },
459
- "name": "Gpt 5 1 Codex",
460
- "options": {
461
- "reasoningEffort": "medium"
462
- },
463
- "reasoning": true
464
- },
465
- "gpt-5.1-codex-max": {
466
- "limit": {
467
- "context": 336000,
468
- "output": 32768
469
- },
470
- "name": "Gpt 5 1 Codex Max",
471
- "options": {
472
- "reasoningEffort": "medium"
473
- },
474
- "reasoning": true
475
- },
476
- "gpt-5.1-codex-mini": {
477
- "limit": {
478
- "context": 336000,
479
- "output": 32768
480
- },
481
- "name": "Gpt 5 1 Codex Mini",
482
- "options": {
483
- "reasoningEffort": "medium"
484
- },
485
- "reasoning": true
486
- },
487
- "gpt-5.2": {
488
- "limit": {
489
- "context": 336000,
490
- "output": 32768
491
- },
492
- "name": "Gpt 5 2",
493
- "options": {
494
- "reasoningEffort": "medium"
495
- },
496
- "reasoning": true
497
- },
498
- "gpt-5.2-codex": {
499
- "limit": {
500
- "context": 336000,
501
- "output": 32768
502
- },
503
- "name": "Gpt 5 2 Codex",
504
- "options": {
505
- "reasoningEffort": "medium"
506
- },
507
- "reasoning": true
508
- },
509
- "gpt-oss-120b-medium": {
510
- "limit": {
511
- "context": 107520,
512
- "output": 16384
513
- },
514
- "name": "Gpt Oss 120b Medium"
515
- }
516
- },
517
- "name": "ProxyPal",
518
- "npm": "@ai-sdk/anthropic",
519
- "options": {
520
- "apiKey": "proxypal-local",
521
- "baseURL": "http://127.0.0.1:8317/v1",
522
- "includeUsage": true
523
- }
524
- },
525
- "zai-coding-plan": {
526
- "models": {
527
- "glm-4.6": {
528
- "limit": {
529
- "context": 128000,
530
- "output": 16384
531
- },
532
- "options": {
533
- "temperature": 1,
534
- "thinking": {
535
- "type": "enabled"
536
- }
537
- },
538
- "reasoning": true,
539
- "temperature": true,
540
- "tool_call": true
541
- },
542
- "glm-4.7": {
543
- "id": "glm-4.7",
544
- "interleaved": true,
545
- "limit": {
546
- "context": 200000,
547
- "output": 128000
548
- },
549
- "name": "GLM-4.7",
550
- "options": {
551
- "temperature": 1,
552
- "thinking": {
553
- "type": "enabled"
554
- }
555
- },
556
- "reasoning": true
557
- }
558
- },
559
- "name": "Z.AI Coding Plan"
560
- }
561
- },
562
- "share": "manual",
563
- "small_model": "proxypal/gemini-2.5-flash-lite",
564
- "tui": {
565
- "diff_style": "auto",
566
- "scroll_acceleration": {
567
- "enabled": true
568
- },
569
- "scroll_speed": 3
570
- },
571
- "watcher": {
572
- "ignore": [
573
- "node_modules/**",
574
- ".git/**",
575
- "dist/**",
576
- "build/**",
577
- "*.log",
578
- ".DS_Store"
579
- ]
580
- }
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "agent": {
4
+ "build": {
5
+ "description": "Primary development agent with full codebase access",
6
+ "model": "opencode/minimax-m2.1-free"
7
+ },
8
+ "compaction": {
9
+ "description": "Session summarizer for context continuity across compactions"
10
+ },
11
+ "explore": {
12
+ "description": "Fast codebase search specialist",
13
+ "model": "opencode/grok-code"
14
+ },
15
+ "general": {
16
+ "description": "General-purpose subagent for fast, well-defined tasks; delegates complexity quickly",
17
+ "model": "opencode/glm-4.7-free"
18
+ },
19
+ "looker": {
20
+ "description": "Media extraction specialist for images, PDFs, diagrams",
21
+ "model": "opencode/gpt-5-nano"
22
+ },
23
+ "plan": {
24
+ "description": "Primary planning agent for architecture and multi-phase execution",
25
+ "model": "opencode/minimax-m2.1-free"
26
+ },
27
+ "review": {
28
+ "description": "Code review, debugging, and security audit specialist",
29
+ "model": "opencode/minimax-m2.1-free"
30
+ },
31
+ "scout": {
32
+ "description": "External research specialist for library docs and patterns",
33
+ "model": "opencode/big-pickle"
34
+ },
35
+ "vision": {
36
+ "description": "Visual content specialist for multimodal analysis and UI/UX guidance",
37
+ "model": "opencode/gpt-5-nano"
38
+ }
39
+ },
40
+ "autoupdate": false,
41
+ "compaction": {
42
+ "auto": true,
43
+ "prune": true
44
+ },
45
+ "experimental": {
46
+ "batch_tool": true,
47
+ "chatMaxRetries": 2,
48
+ "continue_loop_on_deny": false,
49
+ "lsp": true,
50
+ "primary_tools": ["edit", "write", "bash"]
51
+ },
52
+ "formatter": {
53
+ "biome": {
54
+ "command": ["npx", "@biomejs/biome", "check", "--write", "$FILE"],
55
+ "extensions": [".js", ".jsx", ".ts", ".tsx", ".json", ".jsonc"]
56
+ },
57
+ "cargo-fmt": {
58
+ "command": ["cargo", "fmt", "--", "$FILE"],
59
+ "extensions": [".rs"]
60
+ },
61
+ "java-formatter": {
62
+ "command": ["google-java-format", "--replace", "$FILE"],
63
+ "environment": {
64
+ "JAVA_HOME": "{env:JAVA_HOME}"
65
+ },
66
+ "extensions": [".java"]
67
+ },
68
+ "oxfmt": {
69
+ "command": ["npx", "oxfmt", "--write", "$FILE"],
70
+ "extensions": [
71
+ ".js",
72
+ ".jsx",
73
+ ".ts",
74
+ ".tsx",
75
+ ".json",
76
+ ".jsonc",
77
+ ".html",
78
+ ".css",
79
+ ".scss",
80
+ ".sass",
81
+ ".md",
82
+ ".mdx",
83
+ ".yaml",
84
+ ".yml"
85
+ ]
86
+ }
87
+ },
88
+ "instructions": [
89
+ ".opencode/memory/user.md",
90
+ ".opencode/memory/project/*.md",
91
+ ".opencode/memory/observations/*.md"
92
+ ],
93
+ "keybinds": {
94
+ "command_list": ";",
95
+ "leader": "`",
96
+ "session_child_cycle": "ctrl+alt+right",
97
+ "session_child_cycle_reverse": "ctrl+alt+left",
98
+ "session_compact": "ctrl+k"
99
+ },
100
+ "mcp": {
101
+ "context7": {
102
+ "command": [
103
+ "npx",
104
+ "-y",
105
+ "@upstash/context7-mcp",
106
+ "--api-key",
107
+ "{env:CONTEXT7_API_KEY}"
108
+ ],
109
+ "enabled": true,
110
+ "type": "local"
111
+ },
112
+ "gh_grep": {
113
+ "enabled": true,
114
+ "type": "remote",
115
+ "url": "https://mcp.grep.app"
116
+ }
117
+ },
118
+ "model": "opencode/minimax-m2.1-free",
119
+ "permission": {
120
+ "bash": {
121
+ "*": "allow",
122
+ "cat *": "allow",
123
+ "git branch *": "allow",
124
+ "git commit *": "ask",
125
+ "git diff *": "allow",
126
+ "git log *": "allow",
127
+ "git push *": "ask",
128
+ "git rebase *": "ask",
129
+ "git reset *": "ask",
130
+ "git status *": "allow",
131
+ "ls *": "allow",
132
+ "npm *": "allow",
133
+ "npx *": "allow",
134
+ "rm *": "deny",
135
+ "rm -rf *": "deny",
136
+ "sudo *": "deny"
137
+ },
138
+ "doom_loop": "ask",
139
+ "edit": "allow",
140
+ "external_directory": "ask",
141
+ "question": "allow",
142
+ "read": {
143
+ "*": "allow",
144
+ "*.env": "deny",
145
+ "*.env.*": "deny",
146
+ "*.env.example": "allow"
147
+ }
148
+ },
149
+ "plugin": [
150
+ "@tarquinen/opencode-dcp@latest",
151
+ "@franlol/opencode-md-table-formatter@0.0.3"
152
+ ],
153
+ "provider": {
154
+ "github-copilot": {
155
+ "models": {
156
+ "claude-haiku-4.5": {
157
+ "attachment": true,
158
+ "options": {
159
+ "thinking": {
160
+ "budgetTokens": 16000,
161
+ "type": "enabled"
162
+ }
163
+ },
164
+ "reasoning": true,
165
+ "temperature": true,
166
+ "tool_call": true
167
+ },
168
+ "claude-opus-4.5": {
169
+ "attachment": true,
170
+ "options": {
171
+ "thinking": {
172
+ "budgetTokens": 32000,
173
+ "type": "enabled"
174
+ }
175
+ },
176
+ "reasoning": true,
177
+ "temperature": true,
178
+ "tool_call": true
179
+ },
180
+ "claude-sonnet-4.5": {
181
+ "attachment": true,
182
+ "options": {
183
+ "thinking": {
184
+ "budgetTokens": 16000,
185
+ "type": "enabled"
186
+ }
187
+ },
188
+ "reasoning": true,
189
+ "temperature": true,
190
+ "tool_call": true
191
+ },
192
+ "gpt-5.1": {
193
+ "attachment": true,
194
+ "options": {
195
+ "reasoning": {
196
+ "effort": "high"
197
+ }
198
+ },
199
+ "reasoning": true,
200
+ "temperature": true,
201
+ "tool_call": true
202
+ },
203
+ "gpt-5.1-codex": {
204
+ "attachment": true,
205
+ "options": {
206
+ "reasoning": {
207
+ "effort": "high"
208
+ }
209
+ },
210
+ "reasoning": true,
211
+ "temperature": true,
212
+ "tool_call": true
213
+ }
214
+ },
215
+ "npm": "@ai-sdk/anthropic"
216
+ },
217
+ "openai": {
218
+ "models": {
219
+ "gpt-5": {
220
+ "variants": {
221
+ "fast": {
222
+ "disabled": true
223
+ },
224
+ "high": {
225
+ "include": ["reasoning.encrypted_content"],
226
+ "reasoningEffort": "high",
227
+ "reasoningSummary": "auto",
228
+ "textVerbosity": "low"
229
+ },
230
+ "medium": {
231
+ "include": ["reasoning.encrypted_content"],
232
+ "reasoningEffort": "medium",
233
+ "reasoningSummary": "auto",
234
+ "textVerbosity": "low"
235
+ }
236
+ }
237
+ },
238
+ "gpt-5-codex": {
239
+ "variants": {
240
+ "fast": {
241
+ "disabled": true
242
+ },
243
+ "high": {
244
+ "include": ["reasoning.encrypted_content"],
245
+ "reasoningEffort": "high",
246
+ "reasoningSummary": "auto",
247
+ "textVerbosity": "low"
248
+ },
249
+ "medium": {
250
+ "include": ["reasoning.encrypted_content"],
251
+ "reasoningEffort": "medium",
252
+ "reasoningSummary": "auto",
253
+ "textVerbosity": "low"
254
+ }
255
+ }
256
+ }
257
+ }
258
+ },
259
+ "opencode": {
260
+ "models": {
261
+ "big-pickle": {
262
+ "options": {
263
+ "reasoningEffort": "high",
264
+ "temperature": 1,
265
+ "top_k": 40,
266
+ "top_p": 0.95
267
+ },
268
+ "reasoning": true
269
+ }
270
+ }
271
+ },
272
+ "proxypal": {
273
+ "models": {
274
+ "gemini-2.5-computer-use-preview-10-2025": {
275
+ "limit": {
276
+ "context": 880964,
277
+ "output": 65536
278
+ },
279
+ "name": "Gemini 2 5 Computer Use Preview 10 2025",
280
+ "modalities": {
281
+ "input": ["text", "image", "pdf"],
282
+ "output": ["text"]
283
+ }
284
+ },
285
+ "gemini-2.5-flash": {
286
+ "limit": {
287
+ "context": 880964,
288
+ "output": 65536
289
+ },
290
+ "name": "Gemini 2 5 Flash",
291
+ "modalities": {
292
+ "input": ["text", "image", "pdf"],
293
+ "output": ["text"]
294
+ }
295
+ },
296
+ "gemini-2.5-flash-lite": {
297
+ "limit": {
298
+ "context": 880964,
299
+ "output": 65536
300
+ },
301
+ "name": "Gemini 2 5 Flash Lite",
302
+ "modalities": {
303
+ "input": ["text", "image", "pdf"],
304
+ "output": ["text"]
305
+ }
306
+ },
307
+ "gemini-2.5-pro": {
308
+ "limit": {
309
+ "context": 880964,
310
+ "output": 65536
311
+ },
312
+ "name": "Gemini 2 5 Pro",
313
+ "modalities": {
314
+ "input": ["text", "image", "pdf"],
315
+ "output": ["text"]
316
+ }
317
+ },
318
+ "gemini-3-flash-preview": {
319
+ "limit": {
320
+ "context": 880964,
321
+ "output": 65536
322
+ },
323
+ "name": "Gemini 3 Flash Preview",
324
+ "modalities": {
325
+ "input": ["text", "image", "pdf"],
326
+ "output": ["text"]
327
+ },
328
+ "variants": {
329
+ "low": {
330
+ "thinkingLevel": "low"
331
+ },
332
+ "medium": {
333
+ "thinkingLevel": "medium"
334
+ },
335
+ "high": {
336
+ "thinkingLevel": "high"
337
+ }
338
+ },
339
+ "reasoning": true
340
+ },
341
+ "gemini-3-pro-image-preview": {
342
+ "limit": {
343
+ "context": 880964,
344
+ "output": 65536
345
+ },
346
+ "name": "Gemini 3 Pro Image Preview",
347
+ "modalities": {
348
+ "input": ["text", "image", "pdf"],
349
+ "output": ["text"]
350
+ }
351
+ },
352
+ "gemini-3-pro-preview": {
353
+ "limit": {
354
+ "context": 880964,
355
+ "output": 65536
356
+ },
357
+ "name": "Gemini 3 Pro Preview",
358
+ "modalities": {
359
+ "input": ["text", "image", "pdf"],
360
+ "output": ["text"]
361
+ },
362
+ "variants": {
363
+ "low": {
364
+ "thinkingLevel": "low"
365
+ },
366
+ "high": {
367
+ "thinkingLevel": "high"
368
+ }
369
+ },
370
+ "reasoning": true
371
+ },
372
+ "gemini-claude-opus-4-5-thinking": {
373
+ "limit": {
374
+ "context": 168000,
375
+ "output": 64000
376
+ },
377
+ "modalities": {
378
+ "input": ["text", "image", "pdf"],
379
+ "output": ["text"]
380
+ },
381
+ "name": "Gemini Claude Opus 4 5 Thinking",
382
+ "variants": {
383
+ "low": {
384
+ "thinkingConfig": {
385
+ "thinkingBudget": 8192
386
+ }
387
+ },
388
+ "max": {
389
+ "thinkingConfig": {
390
+ "thinkingBudget": 32768
391
+ }
392
+ }
393
+ },
394
+ "reasoning": true
395
+ },
396
+ "gemini-claude-sonnet-4-5": {
397
+ "limit": {
398
+ "context": 168000,
399
+ "output": 64000
400
+ },
401
+ "modalities": {
402
+ "input": ["text", "image", "pdf"],
403
+ "output": ["text"]
404
+ },
405
+ "name": "Gemini Claude Sonnet 4 5"
406
+ },
407
+ "gemini-claude-sonnet-4-5-thinking": {
408
+ "limit": {
409
+ "context": 168000,
410
+ "output": 64000
411
+ },
412
+ "modalities": {
413
+ "input": ["text", "image", "pdf"],
414
+ "output": ["text"]
415
+ },
416
+ "name": "Gemini Claude Sonnet 4 5 Thinking",
417
+ "variants": {
418
+ "low": {
419
+ "thinkingConfig": {
420
+ "thinkingBudget": 8192
421
+ }
422
+ },
423
+ "max": {
424
+ "thinkingConfig": {
425
+ "thinkingBudget": 32768
426
+ }
427
+ }
428
+ },
429
+ "reasoning": true
430
+ },
431
+ "glm-4.5": {
432
+ "limit": {
433
+ "context": 107520,
434
+ "output": 16384
435
+ },
436
+ "name": "Glm 4 5"
437
+ },
438
+ "glm-4.5-air": {
439
+ "limit": {
440
+ "context": 107520,
441
+ "output": 16384
442
+ },
443
+ "name": "Glm 4 5 Air"
444
+ },
445
+ "glm-4.6": {
446
+ "limit": {
447
+ "context": 107520,
448
+ "output": 16384
449
+ },
450
+ "name": "Glm 4 6"
451
+ },
452
+ "glm-4.7": {
453
+ "limit": {
454
+ "context": 107520,
455
+ "output": 16384
456
+ },
457
+ "name": "Glm 4 7"
458
+ },
459
+ "gpt-5": {
460
+ "limit": {
461
+ "context": 336000,
462
+ "output": 32768
463
+ },
464
+ "name": "Gpt 5",
465
+ "options": {
466
+ "reasoningEffort": "medium"
467
+ },
468
+ "reasoning": true
469
+ },
470
+ "gpt-5-codex": {
471
+ "limit": {
472
+ "context": 336000,
473
+ "output": 32768
474
+ },
475
+ "name": "Gpt 5 Codex",
476
+ "options": {
477
+ "reasoningEffort": "medium"
478
+ },
479
+ "reasoning": true
480
+ },
481
+ "gpt-5-codex-mini": {
482
+ "limit": {
483
+ "context": 336000,
484
+ "output": 32768
485
+ },
486
+ "name": "Gpt 5 Codex Mini",
487
+ "options": {
488
+ "reasoningEffort": "medium"
489
+ },
490
+ "reasoning": true
491
+ },
492
+ "gpt-5.1": {
493
+ "limit": {
494
+ "context": 336000,
495
+ "output": 32768
496
+ },
497
+ "name": "Gpt 5 1",
498
+ "options": {
499
+ "reasoningEffort": "medium"
500
+ },
501
+ "reasoning": true
502
+ },
503
+ "gpt-5.1-codex": {
504
+ "limit": {
505
+ "context": 336000,
506
+ "output": 32768
507
+ },
508
+ "name": "Gpt 5 1 Codex",
509
+ "options": {
510
+ "reasoningEffort": "medium"
511
+ },
512
+ "reasoning": true
513
+ },
514
+ "gpt-5.1-codex-max": {
515
+ "limit": {
516
+ "context": 336000,
517
+ "output": 32768
518
+ },
519
+ "name": "Gpt 5 1 Codex Max",
520
+ "options": {
521
+ "reasoningEffort": "medium"
522
+ },
523
+ "reasoning": true
524
+ },
525
+ "gpt-5.1-codex-mini": {
526
+ "limit": {
527
+ "context": 336000,
528
+ "output": 32768
529
+ },
530
+ "name": "Gpt 5 1 Codex Mini",
531
+ "options": {
532
+ "reasoningEffort": "medium"
533
+ },
534
+ "reasoning": true
535
+ },
536
+ "gpt-5.2": {
537
+ "limit": {
538
+ "context": 336000,
539
+ "output": 32768
540
+ },
541
+ "name": "Gpt 5 2",
542
+ "options": {
543
+ "reasoningEffort": "medium"
544
+ },
545
+ "reasoning": true
546
+ },
547
+ "gpt-5.2-codex": {
548
+ "limit": {
549
+ "context": 336000,
550
+ "output": 32768
551
+ },
552
+ "name": "Gpt 5 2 Codex",
553
+ "options": {
554
+ "reasoningEffort": "medium"
555
+ },
556
+ "reasoning": true
557
+ },
558
+ "gpt-oss-120b-medium": {
559
+ "limit": {
560
+ "context": 107520,
561
+ "output": 16384
562
+ },
563
+ "name": "Gpt Oss 120b Medium"
564
+ }
565
+ },
566
+ "name": "ProxyPal",
567
+ "npm": "@ai-sdk/anthropic",
568
+ "options": {
569
+ "apiKey": "proxypal-local",
570
+ "baseURL": "http://127.0.0.1:8317/v1",
571
+ "includeUsage": true
572
+ }
573
+ },
574
+ "zai-coding-plan": {
575
+ "models": {
576
+ "glm-4.6": {
577
+ "limit": {
578
+ "context": 128000,
579
+ "output": 16384
580
+ },
581
+ "options": {
582
+ "temperature": 1,
583
+ "thinking": {
584
+ "type": "enabled"
585
+ }
586
+ },
587
+ "reasoning": true,
588
+ "temperature": true,
589
+ "tool_call": true
590
+ },
591
+ "glm-4.7": {
592
+ "id": "glm-4.7",
593
+ "interleaved": true,
594
+ "limit": {
595
+ "context": 200000,
596
+ "output": 128000
597
+ },
598
+ "name": "GLM-4.7",
599
+ "options": {
600
+ "temperature": 1,
601
+ "thinking": {
602
+ "type": "enabled"
603
+ }
604
+ },
605
+ "reasoning": true
606
+ }
607
+ },
608
+ "name": "Z.AI Coding Plan"
609
+ }
610
+ },
611
+ "share": "manual",
612
+ "small_model": "opencode/gpt-5-nano",
613
+ "tui": {
614
+ "diff_style": "auto",
615
+ "scroll_acceleration": {
616
+ "enabled": true
617
+ },
618
+ "scroll_speed": 3
619
+ },
620
+ "watcher": {
621
+ "ignore": [
622
+ "node_modules/**",
623
+ ".git/**",
624
+ "dist/**",
625
+ "build/**",
626
+ "*.log",
627
+ ".DS_Store"
628
+ ]
629
+ }
581
630
  }