opencodekit 0.14.5 → 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 (94) 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 -533
  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 +34 -0
  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/planner.md +0 -281
  79. package/dist/template/.opencode/agent/rush.md +0 -223
  80. package/dist/template/.opencode/memory/handoffs/README.md +0 -83
  81. package/dist/template/.opencode/memory/observations/.gitkeep +0 -0
  82. package/dist/template/.opencode/memory/observations/2026-01-09-pattern-ampcode-mcp-json-includetools-pattern.md +0 -42
  83. package/dist/template/.opencode/memory/vector_db/memories.lance/_transactions/0-0d25ba80-ba3b-4209-9046-b45d6093b4da.txn +0 -0
  84. package/dist/template/.opencode/memory/vector_db/memories.lance/_versions/1.manifest +0 -0
  85. package/dist/template/.opencode/memory/vector_db/memories.lance/data/1111100101010101011010004a9ef34df6b29f36a9a53a2892.lance +0 -0
  86. package/dist/template/.opencode/tool/ast-grep.ts +0 -245
  87. package/dist/template/.opencode/tool/background.ts +0 -509
  88. package/dist/template/.opencode/tool/bd-inbox.ts +0 -110
  89. package/dist/template/.opencode/tool/bd-msg.ts +0 -62
  90. package/dist/template/.opencode/tool/bd-release.ts +0 -71
  91. package/dist/template/.opencode/tool/bd-reserve.ts +0 -121
  92. package/dist/template/.opencode/tool/memory-embed.ts +0 -183
  93. package/dist/template/.opencode/tool/memory-index.ts +0 -769
  94. package/dist/template/.opencode/tool/repo-map.ts +0 -451
@@ -1,535 +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
- "compaction": {
9
- "description": "Session summarizer for context continuity across compactions",
10
- "model": "proxypal/gemini-2.5-flash"
11
- },
12
- "explore": {
13
- "description": "Fast codebase search specialist",
14
- "model": "proxypal/gemini-3-flash-preview"
15
- },
16
- "looker": {
17
- "description": "Media extraction specialist for images, PDFs, diagrams",
18
- "model": "proxypal/gemini-3-flash-preview"
19
- },
20
- "general": {
21
- "disable": true
22
- },
23
- "plan": {
24
- "disable": true
25
- },
26
- "planner": {
27
- "description": "Strategic planning agent for architecture and design",
28
- "model": "proxypal/gpt-5.1"
29
- },
30
- "review": {
31
- "description": "Code review, debugging, and security audit specialist",
32
- "model": "proxypal/gemini-3-pro-preview"
33
- },
34
- "rush": {
35
- "description": "Fast primary agent for small, well-defined tasks",
36
- "model": "zai-coding-plan/glm-4.7"
37
- },
38
- "scout": {
39
- "description": "External research specialist for library docs and patterns",
40
- "model": "proxypal/gemini-claude-sonnet-4-5"
41
- },
42
- "vision": {
43
- "description": "Visual content specialist for multimodal analysis and UI/UX guidance",
44
- "model": "proxypal/gemini-3-pro-preview"
45
- }
46
- },
47
- "autoupdate": false,
48
- "compaction": {
49
- "auto": true,
50
- "prune": true
51
- },
52
- "experimental": {
53
- "batch_tool": true,
54
- "chatMaxRetries": 2,
55
- "continue_loop_on_deny": false,
56
- "lsp": true,
57
- "primary_tools": ["edit", "write", "bash"]
58
- },
59
- "formatter": {
60
- "biome": {
61
- "command": ["npx", "@biomejs/biome", "check", "--write", "$FILE"],
62
- "extensions": [".js", ".jsx", ".ts", ".tsx", ".json", ".jsonc"]
63
- },
64
- "cargo-fmt": {
65
- "command": ["cargo", "fmt", "--", "$FILE"],
66
- "extensions": [".rs"]
67
- },
68
- "java-formatter": {
69
- "command": ["google-java-format", "--replace", "$FILE"],
70
- "environment": {
71
- "JAVA_HOME": "{env:JAVA_HOME}"
72
- },
73
- "extensions": [".java"]
74
- },
75
- "prettier": {
76
- "command": ["npx", "prettier", "--write", "$FILE"],
77
- "extensions": [".html", ".css", ".scss", ".sass", ".md", ".yaml", ".yml"]
78
- }
79
- },
80
- "instructions": [
81
- ".opencode/memory/user.md",
82
- ".opencode/memory/project/*.md",
83
- ".opencode/memory/observations/*.md"
84
- ],
85
- "keybinds": {
86
- "command_list": ";",
87
- "leader": "`",
88
- "session_child_cycle": "ctrl+alt+right",
89
- "session_child_cycle_reverse": "ctrl+alt+left",
90
- "session_compact": "ctrl+k"
91
- },
92
- "mcp": {
93
- "context7": {
94
- "command": [
95
- "npx",
96
- "-y",
97
- "@upstash/context7-mcp",
98
- "--api-key",
99
- "{env:CONTEXT7_API_KEY}"
100
- ],
101
- "enabled": true,
102
- "type": "local"
103
- },
104
- "gh_grep": {
105
- "enabled": true,
106
- "type": "remote",
107
- "url": "https://mcp.grep.app"
108
- }
109
- },
110
- "model": "opencode/glm-4.7-free",
111
- "permission": {
112
- "bash": {
113
- "*": "allow",
114
- "cat *": "allow",
115
- "git branch *": "allow",
116
- "git commit *": "ask",
117
- "git diff *": "allow",
118
- "git log *": "allow",
119
- "git push *": "ask",
120
- "git rebase *": "ask",
121
- "git reset *": "ask",
122
- "git status *": "allow",
123
- "ls *": "allow",
124
- "npm *": "allow",
125
- "npx *": "allow",
126
- "rm *": "deny",
127
- "rm -rf *": "deny",
128
- "sudo *": "deny"
129
- },
130
- "doom_loop": "ask",
131
- "edit": "allow",
132
- "external_directory": "ask",
133
- "question": "allow",
134
- "read": {
135
- "*": "allow",
136
- "*.env": "deny",
137
- "*.env.*": "deny",
138
- "*.env.example": "allow"
139
- }
140
- },
141
- "plugin": [
142
- "@tarquinen/opencode-dcp@latest",
143
- "@franlol/opencode-md-table-formatter@0.0.3"
144
- ],
145
- "provider": {
146
- "github-copilot": {
147
- "models": {
148
- "claude-haiku-4.5": {
149
- "attachment": true,
150
- "options": {
151
- "thinking": {
152
- "budgetTokens": 16000,
153
- "type": "enabled"
154
- }
155
- },
156
- "reasoning": true,
157
- "temperature": true,
158
- "tool_call": true
159
- },
160
- "claude-opus-4.5": {
161
- "attachment": true,
162
- "options": {
163
- "thinking": {
164
- "budgetTokens": 32000,
165
- "type": "enabled"
166
- }
167
- },
168
- "reasoning": true,
169
- "temperature": true,
170
- "tool_call": true
171
- },
172
- "claude-sonnet-4.5": {
173
- "attachment": true,
174
- "options": {
175
- "thinking": {
176
- "budgetTokens": 16000,
177
- "type": "enabled"
178
- }
179
- },
180
- "reasoning": true,
181
- "temperature": true,
182
- "tool_call": true
183
- },
184
- "gpt-5.1": {
185
- "attachment": true,
186
- "options": {
187
- "reasoning": {
188
- "effort": "high"
189
- }
190
- },
191
- "reasoning": true,
192
- "temperature": true,
193
- "tool_call": true
194
- },
195
- "gpt-5.1-codex": {
196
- "attachment": true,
197
- "options": {
198
- "reasoning": {
199
- "effort": "high"
200
- }
201
- },
202
- "reasoning": true,
203
- "temperature": true,
204
- "tool_call": true
205
- }
206
- },
207
- "npm": "@ai-sdk/anthropic"
208
- },
209
- "opencode": {
210
- "models": {
211
- "big-pickle": {
212
- "options": {
213
- "reasoningEffort": "high",
214
- "temperature": 1,
215
- "top_k": 40,
216
- "top_p": 0.95
217
- },
218
- "reasoning": true
219
- }
220
- }
221
- },
222
- "proxypal": {
223
- "models": {
224
- "gemini-2.5-computer-use-preview-10-2025": {
225
- "limit": {
226
- "context": 880964,
227
- "output": 65536
228
- },
229
- "name": "Gemini 2 5 Computer Use Preview 10 2025"
230
- },
231
- "gemini-2.5-flash": {
232
- "limit": {
233
- "context": 880964,
234
- "output": 65536
235
- },
236
- "name": "Gemini 2 5 Flash"
237
- },
238
- "gemini-2.5-flash-lite": {
239
- "limit": {
240
- "context": 880964,
241
- "output": 65536
242
- },
243
- "name": "Gemini 2 5 Flash Lite"
244
- },
245
- "gemini-2.5-pro": {
246
- "limit": {
247
- "context": 880964,
248
- "output": 65536
249
- },
250
- "name": "Gemini 2 5 Pro"
251
- },
252
- "gemini-3-flash-preview": {
253
- "limit": {
254
- "context": 880964,
255
- "output": 65536
256
- },
257
- "name": "Gemini 3 Flash Preview",
258
- "options": {
259
- "generationConfig": {
260
- "thinkingConfig": {
261
- "thinkingLevel": "HIGH",
262
- "includeThoughts": true
263
- }
264
- }
265
- }
266
- },
267
- "gemini-3-pro-image-preview": {
268
- "limit": {
269
- "context": 880964,
270
- "output": 65536
271
- },
272
- "name": "Gemini 3 Pro Image Preview"
273
- },
274
- "gemini-3-pro-preview": {
275
- "limit": {
276
- "context": 880964,
277
- "output": 65536
278
- },
279
- "name": "Gemini 3 Pro Preview",
280
- "options": {
281
- "generationConfig": {
282
- "thinkingConfig": {
283
- "thinkingLevel": "HIGH",
284
- "includeThoughts": true
285
- }
286
- }
287
- }
288
- },
289
- "gemini-claude-opus-4-5-thinking": {
290
- "limit": {
291
- "context": 168000,
292
- "output": 64000
293
- },
294
- "name": "Gemini Claude Opus 4 5 Thinking",
295
- "options": {
296
- "thinking": {
297
- "budgetTokens": 32768,
298
- "type": "enabled"
299
- }
300
- },
301
- "reasoning": true,
302
- "modalities": {
303
- "input": ["text", "image", "pdf"],
304
- "output": ["text"]
305
- }
306
- },
307
- "gemini-claude-sonnet-4-5": {
308
- "limit": {
309
- "context": 168000,
310
- "output": 64000
311
- },
312
- "name": "Gemini Claude Sonnet 4 5",
313
- "modalities": {
314
- "input": ["text", "image", "pdf"],
315
- "output": ["text"]
316
- }
317
- },
318
- "gemini-claude-sonnet-4-5-thinking": {
319
- "limit": {
320
- "context": 168000,
321
- "output": 64000
322
- },
323
- "name": "Gemini Claude Sonnet 4 5 Thinking",
324
- "options": {
325
- "thinking": {
326
- "budgetTokens": 32768,
327
- "type": "enabled"
328
- }
329
- },
330
- "reasoning": true,
331
- "modalities": {
332
- "input": ["text", "image", "pdf"],
333
- "output": ["text"]
334
- }
335
- },
336
- "glm-4.5": {
337
- "limit": {
338
- "context": 107520,
339
- "output": 16384
340
- },
341
- "name": "Glm 4 5"
342
- },
343
- "glm-4.5-air": {
344
- "limit": {
345
- "context": 107520,
346
- "output": 16384
347
- },
348
- "name": "Glm 4 5 Air"
349
- },
350
- "glm-4.6": {
351
- "limit": {
352
- "context": 107520,
353
- "output": 16384
354
- },
355
- "name": "Glm 4 6"
356
- },
357
- "glm-4.7": {
358
- "limit": {
359
- "context": 107520,
360
- "output": 16384
361
- },
362
- "name": "Glm 4 7"
363
- },
364
- "gpt-5": {
365
- "limit": {
366
- "context": 336000,
367
- "output": 32768
368
- },
369
- "name": "Gpt 5",
370
- "options": {
371
- "reasoningEffort": "medium"
372
- },
373
- "reasoning": true
374
- },
375
- "gpt-5-codex": {
376
- "limit": {
377
- "context": 336000,
378
- "output": 32768
379
- },
380
- "name": "Gpt 5 Codex",
381
- "options": {
382
- "reasoningEffort": "medium"
383
- },
384
- "reasoning": true
385
- },
386
- "gpt-5-codex-mini": {
387
- "limit": {
388
- "context": 336000,
389
- "output": 32768
390
- },
391
- "name": "Gpt 5 Codex Mini",
392
- "options": {
393
- "reasoningEffort": "medium"
394
- },
395
- "reasoning": true
396
- },
397
- "gpt-5.1": {
398
- "limit": {
399
- "context": 336000,
400
- "output": 32768
401
- },
402
- "name": "Gpt 5 1",
403
- "options": {
404
- "reasoningEffort": "medium"
405
- },
406
- "reasoning": true
407
- },
408
- "gpt-5.1-codex": {
409
- "limit": {
410
- "context": 336000,
411
- "output": 32768
412
- },
413
- "name": "Gpt 5 1 Codex",
414
- "options": {
415
- "reasoningEffort": "medium"
416
- },
417
- "reasoning": true
418
- },
419
- "gpt-5.1-codex-max": {
420
- "limit": {
421
- "context": 336000,
422
- "output": 32768
423
- },
424
- "name": "Gpt 5 1 Codex Max",
425
- "options": {
426
- "reasoningEffort": "medium"
427
- },
428
- "reasoning": true
429
- },
430
- "gpt-5.1-codex-mini": {
431
- "limit": {
432
- "context": 336000,
433
- "output": 32768
434
- },
435
- "name": "Gpt 5 1 Codex Mini",
436
- "options": {
437
- "reasoningEffort": "medium"
438
- },
439
- "reasoning": true
440
- },
441
- "gpt-5.2": {
442
- "limit": {
443
- "context": 336000,
444
- "output": 32768
445
- },
446
- "name": "Gpt 5 2",
447
- "options": {
448
- "reasoningEffort": "medium"
449
- },
450
- "reasoning": true
451
- },
452
- "gpt-5.2-codex": {
453
- "limit": {
454
- "context": 336000,
455
- "output": 32768
456
- },
457
- "name": "Gpt 5 2 Codex",
458
- "options": {
459
- "reasoningEffort": "medium"
460
- },
461
- "reasoning": true
462
- },
463
- "gpt-oss-120b-medium": {
464
- "limit": {
465
- "context": 107520,
466
- "output": 16384
467
- },
468
- "name": "Gpt Oss 120b Medium"
469
- }
470
- },
471
- "name": "ProxyPal",
472
- "npm": "@ai-sdk/anthropic",
473
- "options": {
474
- "apiKey": "proxypal-local",
475
- "baseURL": "http://127.0.0.1:8317/v1",
476
- "includeUsage": true
477
- }
478
- },
479
- "zai-coding-plan": {
480
- "models": {
481
- "glm-4.6": {
482
- "limit": {
483
- "context": 128000,
484
- "output": 16384
485
- },
486
- "options": {
487
- "temperature": 1,
488
- "thinking": {
489
- "type": "enabled"
490
- }
491
- },
492
- "reasoning": true,
493
- "temperature": true,
494
- "tool_call": true
495
- },
496
- "glm-4.7": {
497
- "id": "glm-4.7",
498
- "interleaved": true,
499
- "limit": {
500
- "context": 200000,
501
- "output": 128000
502
- },
503
- "name": "GLM-4.7",
504
- "options": {
505
- "temperature": 1,
506
- "thinking": {
507
- "type": "enabled"
508
- }
509
- },
510
- "reasoning": true
511
- }
512
- },
513
- "name": "Z.AI Coding Plan"
514
- }
515
- },
516
- "share": "manual",
517
- "small_model": "proxypal/gemini-2.5-flash-lite",
518
- "tui": {
519
- "diff_style": "auto",
520
- "scroll_acceleration": {
521
- "enabled": true
522
- },
523
- "scroll_speed": 3
524
- },
525
- "watcher": {
526
- "ignore": [
527
- "node_modules/**",
528
- ".git/**",
529
- "dist/**",
530
- "build/**",
531
- "*.log",
532
- ".DS_Store"
533
- ]
534
- }
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
+ }
535
646
  }