opencodekit 0.14.6 → 0.15.0

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 +100 -58
  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 +644 -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,646 @@
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
+ "plan": {
9
+ "description": "Primary planning agent for architecture and multi-phase execution",
10
+ "model": "opencode/minimax-m2.1-free"
11
+ },
12
+ "compaction": {
13
+ "description": "Session summarizer for context continuity across compactions"
14
+ },
15
+ "explore": {
16
+ "description": "Fast codebase search specialist",
17
+ "model": "opencode/grok-code"
18
+ },
19
+ "looker": {
20
+ "description": "Media extraction specialist for images, PDFs, diagrams",
21
+ "model": "opencode/gpt-5-nano"
22
+ },
23
+ "general": {
24
+ "description": "General-purpose subagent for fast, well-defined tasks; delegates complexity quickly",
25
+ "model": "opencode/glm-4.7-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": [
51
+ "edit",
52
+ "write",
53
+ "bash"
54
+ ]
55
+ },
56
+ "formatter": {
57
+ "biome": {
58
+ "command": [
59
+ "npx",
60
+ "@biomejs/biome",
61
+ "check",
62
+ "--write",
63
+ "$FILE"
64
+ ],
65
+ "extensions": [
66
+ ".js",
67
+ ".jsx",
68
+ ".ts",
69
+ ".tsx",
70
+ ".json",
71
+ ".jsonc"
72
+ ]
73
+ },
74
+ "cargo-fmt": {
75
+ "command": [
76
+ "cargo",
77
+ "fmt",
78
+ "--",
79
+ "$FILE"
80
+ ],
81
+ "extensions": [
82
+ ".rs"
83
+ ]
84
+ },
85
+ "java-formatter": {
86
+ "command": [
87
+ "google-java-format",
88
+ "--replace",
89
+ "$FILE"
90
+ ],
91
+ "environment": {
92
+ "JAVA_HOME": "{env:JAVA_HOME}"
93
+ },
94
+ "extensions": [
95
+ ".java"
96
+ ]
97
+ },
98
+ "oxfmt": {
99
+ "command": [
100
+ "npx",
101
+ "oxfmt",
102
+ "--write",
103
+ "$FILE"
104
+ ],
105
+ "extensions": [
106
+ ".js",
107
+ ".jsx",
108
+ ".ts",
109
+ ".tsx",
110
+ ".json",
111
+ ".jsonc",
112
+ ".html",
113
+ ".css",
114
+ ".scss",
115
+ ".sass",
116
+ ".md",
117
+ ".mdx",
118
+ ".yaml",
119
+ ".yml"
120
+ ]
121
+ }
122
+ },
123
+ "instructions": [
124
+ ".opencode/memory/user.md",
125
+ ".opencode/memory/project/*.md",
126
+ ".opencode/memory/observations/*.md"
127
+ ],
128
+ "keybinds": {
129
+ "command_list": ";",
130
+ "leader": "`",
131
+ "session_child_cycle": "ctrl+alt+right",
132
+ "session_child_cycle_reverse": "ctrl+alt+left",
133
+ "session_compact": "ctrl+k"
134
+ },
135
+ "mcp": {
136
+ "context7": {
137
+ "command": [
138
+ "npx",
139
+ "-y",
140
+ "@upstash/context7-mcp",
141
+ "--api-key",
142
+ "{env:CONTEXT7_API_KEY}"
143
+ ],
144
+ "enabled": true,
145
+ "type": "local"
146
+ },
147
+ "gh_grep": {
148
+ "enabled": true,
149
+ "type": "remote",
150
+ "url": "https://mcp.grep.app"
151
+ }
152
+ },
153
+ "model": "opencode/minimax-m2.1-free",
154
+ "permission": {
155
+ "bash": {
156
+ "*": "allow",
157
+ "cat *": "allow",
158
+ "git branch *": "allow",
159
+ "git commit *": "ask",
160
+ "git diff *": "allow",
161
+ "git log *": "allow",
162
+ "git push *": "ask",
163
+ "git rebase *": "ask",
164
+ "git reset *": "ask",
165
+ "git status *": "allow",
166
+ "ls *": "allow",
167
+ "npm *": "allow",
168
+ "npx *": "allow",
169
+ "rm *": "deny",
170
+ "rm -rf *": "deny",
171
+ "sudo *": "deny"
172
+ },
173
+ "doom_loop": "ask",
174
+ "edit": "allow",
175
+ "external_directory": "ask",
176
+ "question": "allow",
177
+ "read": {
178
+ "*": "allow",
179
+ "*.env": "deny",
180
+ "*.env.*": "deny",
181
+ "*.env.example": "allow"
182
+ }
183
+ },
184
+ "plugin": [
185
+ "@tarquinen/opencode-dcp@latest",
186
+ "@franlol/opencode-md-table-formatter@0.0.3"
187
+ ],
188
+ "provider": {
189
+ "openai": {
190
+ "models": {
191
+ "gpt-5": {
192
+ "variants": {
193
+ "high": {
194
+ "reasoningEffort": "high",
195
+ "textVerbosity": "low",
196
+ "reasoningSummary": "auto",
197
+ "include": [
198
+ "reasoning.encrypted_content"
199
+ ]
200
+ },
201
+ "medium": {
202
+ "reasoningEffort": "medium",
203
+ "textVerbosity": "low",
204
+ "reasoningSummary": "auto",
205
+ "include": [
206
+ "reasoning.encrypted_content"
207
+ ]
208
+ },
209
+ "fast": {
210
+ "disabled": true
211
+ }
212
+ }
213
+ },
214
+ "gpt-5-codex": {
215
+ "variants": {
216
+ "high": {
217
+ "reasoningEffort": "high",
218
+ "textVerbosity": "low",
219
+ "reasoningSummary": "auto",
220
+ "include": [
221
+ "reasoning.encrypted_content"
222
+ ]
223
+ },
224
+ "medium": {
225
+ "reasoningEffort": "medium",
226
+ "textVerbosity": "low",
227
+ "reasoningSummary": "auto",
228
+ "include": [
229
+ "reasoning.encrypted_content"
230
+ ]
231
+ },
232
+ "fast": {
233
+ "disabled": true
234
+ }
235
+ }
236
+ }
237
+ }
238
+ },
239
+ "github-copilot": {
240
+ "models": {
241
+ "claude-haiku-4.5": {
242
+ "attachment": true,
243
+ "options": {
244
+ "thinking": {
245
+ "budgetTokens": 16000,
246
+ "type": "enabled"
247
+ }
248
+ },
249
+ "reasoning": true,
250
+ "temperature": true,
251
+ "tool_call": true
252
+ },
253
+ "claude-opus-4.5": {
254
+ "attachment": true,
255
+ "options": {
256
+ "thinking": {
257
+ "budgetTokens": 32000,
258
+ "type": "enabled"
259
+ }
260
+ },
261
+ "reasoning": true,
262
+ "temperature": true,
263
+ "tool_call": true
264
+ },
265
+ "claude-sonnet-4.5": {
266
+ "attachment": true,
267
+ "options": {
268
+ "thinking": {
269
+ "budgetTokens": 16000,
270
+ "type": "enabled"
271
+ }
272
+ },
273
+ "reasoning": true,
274
+ "temperature": true,
275
+ "tool_call": true
276
+ },
277
+ "gpt-5.1": {
278
+ "attachment": true,
279
+ "options": {
280
+ "reasoning": {
281
+ "effort": "high"
282
+ }
283
+ },
284
+ "reasoning": true,
285
+ "temperature": true,
286
+ "tool_call": true
287
+ },
288
+ "gpt-5.1-codex": {
289
+ "attachment": true,
290
+ "options": {
291
+ "reasoning": {
292
+ "effort": "high"
293
+ }
294
+ },
295
+ "reasoning": true,
296
+ "temperature": true,
297
+ "tool_call": true
298
+ }
299
+ },
300
+ "npm": "@ai-sdk/anthropic"
301
+ },
302
+ "opencode": {
303
+ "models": {
304
+ "big-pickle": {
305
+ "options": {
306
+ "reasoningEffort": "high",
307
+ "temperature": 1,
308
+ "top_k": 40,
309
+ "top_p": 0.95
310
+ },
311
+ "reasoning": true
312
+ }
313
+ }
314
+ },
315
+ "proxypal": {
316
+ "models": {
317
+ "gemini-2.5-computer-use-preview-10-2025": {
318
+ "limit": {
319
+ "context": 880964,
320
+ "output": 65536
321
+ },
322
+ "name": "Gemini 2 5 Computer Use Preview 10 2025"
323
+ },
324
+ "gemini-2.5-flash": {
325
+ "limit": {
326
+ "context": 880964,
327
+ "output": 65536
328
+ },
329
+ "name": "Gemini 2 5 Flash"
330
+ },
331
+ "gemini-2.5-flash-lite": {
332
+ "limit": {
333
+ "context": 880964,
334
+ "output": 65536
335
+ },
336
+ "name": "Gemini 2 5 Flash Lite"
337
+ },
338
+ "gemini-2.5-pro": {
339
+ "limit": {
340
+ "context": 880964,
341
+ "output": 65536
342
+ },
343
+ "name": "Gemini 2 5 Pro"
344
+ },
345
+ "gemini-3-flash-preview": {
346
+ "limit": {
347
+ "context": 880964,
348
+ "output": 65536
349
+ },
350
+ "name": "Gemini 3 Flash Preview",
351
+ "options": {
352
+ "generationConfig": {
353
+ "thinkingConfig": {
354
+ "thinkingLevel": "HIGH",
355
+ "includeThoughts": true
356
+ }
357
+ }
358
+ }
359
+ },
360
+ "gemini-3-pro-image-preview": {
361
+ "limit": {
362
+ "context": 880964,
363
+ "output": 65536
364
+ },
365
+ "name": "Gemini 3 Pro Image Preview"
366
+ },
367
+ "gemini-3-pro-preview": {
368
+ "limit": {
369
+ "context": 880964,
370
+ "output": 65536
371
+ },
372
+ "name": "Gemini 3 Pro Preview",
373
+ "options": {
374
+ "generationConfig": {
375
+ "thinkingConfig": {
376
+ "thinkingLevel": "HIGH",
377
+ "includeThoughts": true
378
+ }
379
+ }
380
+ }
381
+ },
382
+ "gemini-claude-opus-4-5-thinking": {
383
+ "limit": {
384
+ "context": 168000,
385
+ "output": 64000
386
+ },
387
+ "name": "Gemini Claude Opus 4 5 Thinking",
388
+ "options": {
389
+ "thinking": {
390
+ "budgetTokens": 32768,
391
+ "type": "enabled"
392
+ }
393
+ },
394
+ "reasoning": true,
395
+ "modalities": {
396
+ "input": [
397
+ "text",
398
+ "image",
399
+ "pdf"
400
+ ],
401
+ "output": [
402
+ "text"
403
+ ]
404
+ }
405
+ },
406
+ "gemini-claude-sonnet-4-5": {
407
+ "limit": {
408
+ "context": 168000,
409
+ "output": 64000
410
+ },
411
+ "name": "Gemini Claude Sonnet 4 5",
412
+ "modalities": {
413
+ "input": [
414
+ "text",
415
+ "image",
416
+ "pdf"
417
+ ],
418
+ "output": [
419
+ "text"
420
+ ]
421
+ }
422
+ },
423
+ "gemini-claude-sonnet-4-5-thinking": {
424
+ "limit": {
425
+ "context": 168000,
426
+ "output": 64000
427
+ },
428
+ "name": "Gemini Claude Sonnet 4 5 Thinking",
429
+ "options": {
430
+ "thinking": {
431
+ "budgetTokens": 32768,
432
+ "type": "enabled"
433
+ }
434
+ },
435
+ "reasoning": true,
436
+ "modalities": {
437
+ "input": [
438
+ "text",
439
+ "image",
440
+ "pdf"
441
+ ],
442
+ "output": [
443
+ "text"
444
+ ]
445
+ }
446
+ },
447
+ "glm-4.5": {
448
+ "limit": {
449
+ "context": 107520,
450
+ "output": 16384
451
+ },
452
+ "name": "Glm 4 5"
453
+ },
454
+ "glm-4.5-air": {
455
+ "limit": {
456
+ "context": 107520,
457
+ "output": 16384
458
+ },
459
+ "name": "Glm 4 5 Air"
460
+ },
461
+ "glm-4.6": {
462
+ "limit": {
463
+ "context": 107520,
464
+ "output": 16384
465
+ },
466
+ "name": "Glm 4 6"
467
+ },
468
+ "glm-4.7": {
469
+ "limit": {
470
+ "context": 107520,
471
+ "output": 16384
472
+ },
473
+ "name": "Glm 4 7"
474
+ },
475
+ "gpt-5": {
476
+ "limit": {
477
+ "context": 336000,
478
+ "output": 32768
479
+ },
480
+ "name": "Gpt 5",
481
+ "options": {
482
+ "reasoningEffort": "medium"
483
+ },
484
+ "reasoning": true
485
+ },
486
+ "gpt-5-codex": {
487
+ "limit": {
488
+ "context": 336000,
489
+ "output": 32768
490
+ },
491
+ "name": "Gpt 5 Codex",
492
+ "options": {
493
+ "reasoningEffort": "medium"
494
+ },
495
+ "reasoning": true
496
+ },
497
+ "gpt-5-codex-mini": {
498
+ "limit": {
499
+ "context": 336000,
500
+ "output": 32768
501
+ },
502
+ "name": "Gpt 5 Codex Mini",
503
+ "options": {
504
+ "reasoningEffort": "medium"
505
+ },
506
+ "reasoning": true
507
+ },
508
+ "gpt-5.1": {
509
+ "limit": {
510
+ "context": 336000,
511
+ "output": 32768
512
+ },
513
+ "name": "Gpt 5 1",
514
+ "options": {
515
+ "reasoningEffort": "medium"
516
+ },
517
+ "reasoning": true
518
+ },
519
+ "gpt-5.1-codex": {
520
+ "limit": {
521
+ "context": 336000,
522
+ "output": 32768
523
+ },
524
+ "name": "Gpt 5 1 Codex",
525
+ "options": {
526
+ "reasoningEffort": "medium"
527
+ },
528
+ "reasoning": true
529
+ },
530
+ "gpt-5.1-codex-max": {
531
+ "limit": {
532
+ "context": 336000,
533
+ "output": 32768
534
+ },
535
+ "name": "Gpt 5 1 Codex Max",
536
+ "options": {
537
+ "reasoningEffort": "medium"
538
+ },
539
+ "reasoning": true
540
+ },
541
+ "gpt-5.1-codex-mini": {
542
+ "limit": {
543
+ "context": 336000,
544
+ "output": 32768
545
+ },
546
+ "name": "Gpt 5 1 Codex Mini",
547
+ "options": {
548
+ "reasoningEffort": "medium"
549
+ },
550
+ "reasoning": true
551
+ },
552
+ "gpt-5.2": {
553
+ "limit": {
554
+ "context": 336000,
555
+ "output": 32768
556
+ },
557
+ "name": "Gpt 5 2",
558
+ "options": {
559
+ "reasoningEffort": "medium"
560
+ },
561
+ "reasoning": true
562
+ },
563
+ "gpt-5.2-codex": {
564
+ "limit": {
565
+ "context": 336000,
566
+ "output": 32768
567
+ },
568
+ "name": "Gpt 5 2 Codex",
569
+ "options": {
570
+ "reasoningEffort": "medium"
571
+ },
572
+ "reasoning": true
573
+ },
574
+ "gpt-oss-120b-medium": {
575
+ "limit": {
576
+ "context": 107520,
577
+ "output": 16384
578
+ },
579
+ "name": "Gpt Oss 120b Medium"
580
+ }
581
+ },
582
+ "name": "ProxyPal",
583
+ "npm": "@ai-sdk/anthropic",
584
+ "options": {
585
+ "apiKey": "proxypal-local",
586
+ "baseURL": "http://127.0.0.1:8317/v1",
587
+ "includeUsage": true
588
+ }
589
+ },
590
+ "zai-coding-plan": {
591
+ "models": {
592
+ "glm-4.6": {
593
+ "limit": {
594
+ "context": 128000,
595
+ "output": 16384
596
+ },
597
+ "options": {
598
+ "temperature": 1,
599
+ "thinking": {
600
+ "type": "enabled"
601
+ }
602
+ },
603
+ "reasoning": true,
604
+ "temperature": true,
605
+ "tool_call": true
606
+ },
607
+ "glm-4.7": {
608
+ "id": "glm-4.7",
609
+ "interleaved": true,
610
+ "limit": {
611
+ "context": 200000,
612
+ "output": 128000
613
+ },
614
+ "name": "GLM-4.7",
615
+ "options": {
616
+ "temperature": 1,
617
+ "thinking": {
618
+ "type": "enabled"
619
+ }
620
+ },
621
+ "reasoning": true
622
+ }
623
+ },
624
+ "name": "Z.AI Coding Plan"
625
+ }
626
+ },
627
+ "share": "manual",
628
+ "small_model": "opencode/gpt-5-nano",
629
+ "tui": {
630
+ "diff_style": "auto",
631
+ "scroll_acceleration": {
632
+ "enabled": true
633
+ },
634
+ "scroll_speed": 3
635
+ },
636
+ "watcher": {
637
+ "ignore": [
638
+ "node_modules/**",
639
+ ".git/**",
640
+ "dist/**",
641
+ "build/**",
642
+ "*.log",
643
+ ".DS_Store"
644
+ ]
645
+ }
581
646
  }