opencodekit 0.2.1 → 0.2.2

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.
package/dist/index.js CHANGED
@@ -2896,7 +2896,7 @@ var OPENCODE_THEMES = [
2896
2896
  { value: "one-dark", label: "One Dark", hint: "atom inspired" },
2897
2897
  { value: "orng", label: "Orng", hint: "orange accent" },
2898
2898
  { value: "palenight", label: "Palenight", hint: "purple dark" },
2899
- { value: "rosepine", label: "Rosé Pine", hint: "soft pink" },
2899
+ { value: "rosepine", label: "Rose Pine", hint: "soft pink" },
2900
2900
  { value: "solarized", label: "Solarized", hint: "precision colors" },
2901
2901
  { value: "synthwave84", label: "Synthwave '84", hint: "retro neon" },
2902
2902
  { value: "tokyonight", label: "Tokyo Night", hint: "vibrant dark" },
@@ -2908,6 +2908,7 @@ async function editTheme(configPath) {
2908
2908
  const config = loadConfig(configPath);
2909
2909
  const currentTheme = config.theme || "system";
2910
2910
  f2.info(`Current theme: ${import_picocolors7.default.cyan(currentTheme)}`);
2911
+ const validTheme = OPENCODE_THEMES.some((t) => t.value === currentTheme) ? currentTheme : "system";
2911
2912
  const selectedTheme = await ie({
2912
2913
  message: "Select theme",
2913
2914
  options: OPENCODE_THEMES.map((t) => ({
@@ -2915,7 +2916,7 @@ async function editTheme(configPath) {
2915
2916
  label: t.label,
2916
2917
  hint: t.hint
2917
2918
  })),
2918
- initialValue: currentTheme
2919
+ initialValue: validTheme
2919
2920
  });
2920
2921
  if (lD(selectedTheme)) {
2921
2922
  ue("Cancelled");
@@ -21,6 +21,7 @@
21
21
  | External research | @scout | research, compare, docs for, API for, best practices |
22
22
  | Code review/debug | @review | review, audit, debug, why broken, root cause |
23
23
  | Architecture | @planner | design, architect, plan, structure, phases |
24
+ | UI/UX design | @designer | mockup, UI review, accessibility, aesthetics, visual |
24
25
 
25
26
  **Execute directly**: Single-file edits, explicit commands, answering from loaded context.
26
27
 
@@ -73,3 +73,4 @@ Before claiming completion:
73
73
  - Library docs/patterns → @scout
74
74
  - Code review/debugging → @review
75
75
  - Architecture planning → @planner
76
+ - UI/UX analysis, mockups → @designer
@@ -0,0 +1,148 @@
1
+ ---
2
+ description: UI/UX design specialist for mockup analysis, design system research, and aesthetic guidance. Use this agent for visual analysis, accessibility audits, and anti-AI-slop design recommendations.
3
+ mode: subagent
4
+ temperature: 0.3
5
+ tools:
6
+ bash: true
7
+ edit: false
8
+ write: false
9
+ patch: false
10
+ glob: true
11
+ grep: true
12
+ read: true
13
+ list: true
14
+ webfetch: true
15
+ websearch: true
16
+ task: true
17
+ todowrite: true
18
+ todoread: true
19
+ gkg*: true
20
+ context7*: true
21
+ codesearch: true
22
+ gh_grep*: true
23
+ memory-read: true
24
+ memory-update: true
25
+ ---
26
+
27
+ # Designer Agent
28
+
29
+ UI/UX design specialist for mockup analysis, design system research, and aesthetic guidance.
30
+
31
+ ## Strengths
32
+
33
+ - Mockup and screenshot analysis via Gemini CLI
34
+ - Design system audit and consistency review
35
+ - Accessibility assessment (WCAG compliance)
36
+ - Typography, color, and motion guidance
37
+ - Anti-AI-slop aesthetic recommendations
38
+
39
+ ## Guidelines
40
+
41
+ - Use `gemini-cli` with `gemini-3-pro-image-preview` model for image analysis
42
+ - Apply `frontend-aesthetics` skill to avoid generic AI aesthetics
43
+ - Apply `ui-ux-research` skill for systematic design analysis
44
+ - Read-only role: analyze and recommend, don't implement
45
+ - Delegate implementation to @build agent
46
+ - Keep responses focused on actionable design guidance
47
+
48
+ ## Gemini CLI Usage
49
+
50
+ ### Image Analysis (Mockups, Screenshots)
51
+
52
+ Start interactive mode for image analysis:
53
+
54
+ ```bash
55
+ gemini
56
+ ```
57
+
58
+ Then reference the image:
59
+
60
+ ```
61
+ @mockup.png Analyze this UI design for:
62
+ 1. Typography choices and hierarchy
63
+ 2. Color palette and contrast
64
+ 3. Spacing and layout consistency
65
+ 4. Accessibility concerns
66
+ 5. Areas that feel "AI-generated" or generic
67
+ ```
68
+
69
+ ### Codebase-Wide Design Audit
70
+
71
+ For scanning component directories:
72
+
73
+ ```bash
74
+ gemini -p "@src/components/ Audit the design system for consistency in typography, colors, spacing, and component patterns"
75
+ ```
76
+
77
+ ### Model Selection
78
+
79
+ - Default: `gemini-3-pro-image-preview` (best for visual analysis)
80
+ - Alternative: `gemini -m gemini-2.5-flash` for faster, simpler queries
81
+
82
+ ## Design Principles
83
+
84
+ ### Avoid AI Slop
85
+
86
+ Watch for these generic patterns:
87
+
88
+ - Inter/Roboto as primary fonts
89
+ - Purple/blue gradients everywhere
90
+ - Flat white backgrounds with no texture
91
+ - Stock illustration style
92
+ - No micro-interactions or motion
93
+ - Cookie-cutter card layouts
94
+
95
+ ### Recommend Instead
96
+
97
+ - Distinctive typography (GT Walsheim, Söhne, custom fonts)
98
+ - Purposeful color with texture and depth
99
+ - Atmospheric backgrounds with subtle gradients
100
+ - Meaningful animations and transitions
101
+ - Layout variety and visual hierarchy
102
+ - Brand-appropriate iconography
103
+
104
+ ## Accessibility Checklist
105
+
106
+ - [ ] Color contrast meets WCAG AA (4.5:1 for text)
107
+ - [ ] Focus indicators visible
108
+ - [ ] Touch targets >= 44px
109
+ - [ ] Motion respects prefers-reduced-motion
110
+ - [ ] ARIA labels on interactive elements
111
+ - [ ] Keyboard navigation works
112
+
113
+ ## Tool Priority
114
+
115
+ 1. **Gemini CLI** for image and large codebase analysis
116
+ 2. **Read/Glob** for component and style inspection
117
+ 3. **Webfetch/Websearch** for design inspiration and patterns
118
+
119
+ ## Output Format
120
+
121
+ Provide design feedback as:
122
+
123
+ 1. **Summary**: Overall assessment (1-2 sentences)
124
+ 2. **Issues**: Specific problems found with severity
125
+ 3. **Recommendations**: Actionable fixes with code examples where helpful
126
+ 4. **References**: Links to design patterns or inspiration if relevant
127
+
128
+ ## Delegation
129
+
130
+ - Implementation work → @build
131
+ - External library research → @scout
132
+ - Code review after changes → @review
133
+
134
+ ## DO
135
+
136
+ - Analyze images thoroughly before providing feedback
137
+ - Reference specific elements (colors, fonts, spacing values)
138
+ - Provide before/after comparisons when suggesting changes
139
+ - Consider responsive design implications
140
+ - Check accessibility for all recommendations
141
+
142
+ ## DON'T
143
+
144
+ - Write or edit code directly (delegate to @build)
145
+ - Make generic suggestions without specifics
146
+ - Ignore accessibility in pursuit of aesthetics
147
+ - Recommend trends without considering brand fit
148
+ - Skip mobile/responsive considerations
@@ -73,6 +73,7 @@ Before mutations (edit, write, delete):
73
73
  | Library docs, patterns | @scout |
74
74
  | Code review, debugging | @review |
75
75
  | Architecture, 3+ phases | @planner |
76
+ | UI/UX, mockups, visuals | @designer |
76
77
 
77
78
  ## Execute Directly
78
79
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: Design with brainstorming
3
3
  argument-hint: "[topic or task-id]"
4
- agent: review
4
+ agent: designer
5
5
  ---
6
6
 
7
7
  # Design: $ARGUMENTS
@@ -8,10 +8,10 @@ agent: build
8
8
 
9
9
  use_skill("frontend-aesthetics")
10
10
 
11
- 1. **Analyze:**
12
- - If screenshots/videos provided, describe issue in detail
13
- - For large UI analysis, use Gemini CLI: `gemini` then `@[image] Analyze issue`
14
- 2. **Research:** Check design guidelines, component patterns
11
+ 1. **Analyze:** Delegate to @designer for initial assessment
12
+ - If screenshots/videos provided, @designer describes issue in detail
13
+ - For large UI analysis, @designer uses Gemini CLI: `gemini` then `@[image] Analyze issue`
14
+ 2. **Research:** @designer checks design guidelines, component patterns
15
15
  - Apply `frontend-aesthetics` criteria (typography, color, motion, backgrounds)
16
16
  3. **Fix:** Implement step by step
17
17
  - Avoid generic AI aesthetics (Inter font, purple gradients, flat backgrounds)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: Large-scale UI/UX research using Gemini CLI with bead artifact storage
3
3
  argument-hint: "[bead-id] [research topic or path]"
4
- agent: review
4
+ agent: designer
5
5
  ---
6
6
 
7
7
  # Research UI: $ARGUMENTS
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: Review UI/UX design or mockup with optional bead tracking
3
3
  argument-hint: "[bead-id] [path to image or component]"
4
- agent: review
4
+ agent: designer
5
5
  ---
6
6
 
7
7
  # UI Review: $ARGUMENTS
@@ -1,426 +1,542 @@
1
1
  {
2
- "$schema": "https://opencode.ai/config.json",
3
- "agent": {
4
- "general": {
5
- "disable": true
6
- },
7
- "plan": {
8
- "disable": true
9
- },
10
- "build": {
11
- "description": "Primary development agent with full codebase access",
12
- "model": "proxypal/gemini-claude-opus-4-5-thinking"
13
- },
14
- "rush": {
15
- "description": "Fast primary agent for small, well-defined tasks",
16
- "model": "zai-coding-plan/glm-4.6"
17
- },
18
- "explore": {
19
- "description": "Fast codebase search specialist"
20
- },
21
- "planner": {
22
- "description": "Strategic planning agent for architecture and design",
23
- "model": "proxypal/gpt-5.2"
24
- },
25
- "review": {
26
- "description": "Code review, debugging, and security audit specialist",
27
- "model": "proxypal/gemini-2.5-flash-lite"
28
- },
29
- "scout": {
30
- "description": "External research specialist for library docs and patterns",
31
- "model": "proxypal/gemini-claude-sonnet-4-5"
32
- }
33
- },
34
- "autoupdate": false,
35
- "experimental": {
36
- "batch_tool": true,
37
- "chatMaxRetries": 2,
38
- "primary_tools": ["edit", "write", "bash", "prune"]
39
- },
40
- "formatter": {
41
- "biome": {
42
- "command": ["npx", "@biomejs/biome", "check", "--write", "$FILE"],
43
- "extensions": [".js", ".jsx", ".ts", ".tsx", ".json", ".jsonc"]
44
- },
45
- "java-formatter": {
46
- "command": ["google-java-format", "--replace", "$FILE"],
47
- "environment": {
48
- "JAVA_HOME": "{env:JAVA_HOME}"
49
- },
50
- "extensions": [".java"]
51
- },
52
- "prettier": {
53
- "command": ["npx", "prettier", "--write", "$FILE"],
54
- "extensions": [".html", ".css", ".scss", ".sass", ".md", ".yaml", ".yml"]
55
- }
56
- },
57
- "keybinds": {
58
- "command_list": ";",
59
- "leader": "`",
60
- "session_child_cycle": "ctrl+alt+right",
61
- "session_child_cycle_reverse": "ctrl+alt+left"
62
- },
63
- "mcp": {
64
- "Framelink MCP for Figma": {
65
- "command": [
66
- "npx",
67
- "-y",
68
- "figma-developer-mcp",
69
- "--figma-api-key={env:FIGMA_API_KEY}",
70
- "--stdio"
71
- ],
72
- "enabled": false,
73
- "type": "local"
74
- },
75
- "augment-context-engine": {
76
- "command": ["auggie", "--mcp"],
77
- "enabled": false,
78
- "type": "local"
79
- },
80
- "context7": {
81
- "enabled": true,
82
- "headers": {
83
- "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
84
- },
85
- "type": "remote",
86
- "url": "https://mcp.context7.com/mcp"
87
- },
88
- "gh_grep": {
89
- "enabled": true,
90
- "type": "remote",
91
- "url": "https://mcp.grep.app"
92
- },
93
- "gkg": {
94
- "enabled": true,
95
- "type": "remote",
96
- "url": "http://localhost:27495/mcp"
97
- },
98
- "playwright": {
99
- "command": ["npx", "@playwright/mcp@latest"],
100
- "enabled": false,
101
- "type": "local"
102
- }
103
- },
104
- "model": "proxypal/gemini-claude-opus-4-5-thinking",
105
- "permission": {
106
- "bash": {
107
- "git commit *": "ask",
108
- "git push *": "ask",
109
- "rm *": "ask",
110
- "rm -rf *": "ask"
111
- },
112
- "doom_loop": "ask",
113
- "edit": "allow",
114
- "external_directory": "allow"
115
- },
116
- "plugin": [
117
- "opencode-gemini-auth",
118
- "./plugin/superpowers.ts",
119
- "./plugin/notification.ts",
120
- "@tarquinen/opencode-dcp@latest",
121
- "@howaboua/pickle-thinker@0.1.3"
122
- ],
123
- "provider": {
124
- "github-copilot": {
125
- "models": {
126
- "claude-haiku-4.5": {
127
- "attachment": true,
128
- "options": {
129
- "thinking": {
130
- "budgetTokens": 16000,
131
- "type": "enabled"
132
- }
133
- },
134
- "reasoning": true,
135
- "temperature": true,
136
- "tool_call": true
137
- },
138
- "claude-opus-4.5": {
139
- "attachment": true,
140
- "options": {
141
- "thinking": {
142
- "budgetTokens": 32000,
143
- "type": "enabled"
144
- }
145
- },
146
- "reasoning": true,
147
- "temperature": true,
148
- "tool_call": true
149
- },
150
- "claude-sonnet-4.5": {
151
- "attachment": true,
152
- "options": {
153
- "thinking": {
154
- "budgetTokens": 16000,
155
- "type": "enabled"
156
- }
157
- },
158
- "reasoning": true,
159
- "temperature": true,
160
- "tool_call": true
161
- },
162
- "gpt-5.1": {
163
- "attachment": true,
164
- "options": {
165
- "reasoning": {
166
- "effort": "high"
167
- }
168
- },
169
- "reasoning": true,
170
- "temperature": true,
171
- "tool_call": true
172
- },
173
- "gpt-5.1-codex": {
174
- "attachment": true,
175
- "options": {
176
- "reasoning": {
177
- "effort": "high"
178
- }
179
- },
180
- "reasoning": true,
181
- "temperature": true,
182
- "tool_call": true
183
- }
184
- },
185
- "npm": "@ai-sdk/anthropic"
186
- },
187
- "proxypal": {
188
- "models": {
189
- "claude-opus-4-5-20251101": {
190
- "limit": {
191
- "context": 200000,
192
- "output": 64000
193
- },
194
- "name": "Claude Opus 4 5 20251101"
195
- },
196
- "gemini-2.5-computer-use-preview-10-2025": {
197
- "limit": {
198
- "context": 1048576,
199
- "output": 65536
200
- },
201
- "name": "Gemini 2 5 Computer Use Preview 10 2025"
202
- },
203
- "gemini-2.5-flash": {
204
- "limit": {
205
- "context": 1048576,
206
- "output": 65536
207
- },
208
- "name": "Gemini 2 5 Flash"
209
- },
210
- "gemini-2.5-flash-lite": {
211
- "limit": {
212
- "context": 1048576,
213
- "output": 65536
214
- },
215
- "name": "Gemini 2 5 Flash Lite"
216
- },
217
- "gemini-3-pro-image-preview": {
218
- "limit": {
219
- "context": 1048576,
220
- "output": 65536
221
- },
222
- "name": "Gemini 3 Pro Image Preview"
223
- },
224
- "gemini-3-pro-preview": {
225
- "limit": {
226
- "context": 1048576,
227
- "output": 65536
228
- },
229
- "name": "Gemini 3 Pro Preview"
230
- },
231
- "gemini-claude-opus-4-5-thinking": {
232
- "limit": {
233
- "context": 200000,
234
- "output": 64000
235
- },
236
- "name": "Gemini Claude Opus 4 5 Thinking",
237
- "options": {
238
- "thinking": {
239
- "budgetTokens": 32768,
240
- "type": "enabled"
241
- }
242
- },
243
- "reasoning": true
244
- },
245
- "gemini-claude-sonnet-4-5": {
246
- "limit": {
247
- "context": 200000,
248
- "output": 64000
249
- },
250
- "name": "Gemini Claude Sonnet 4 5"
251
- },
252
- "gemini-claude-sonnet-4-5-thinking": {
253
- "limit": {
254
- "context": 200000,
255
- "output": 64000
256
- },
257
- "name": "Gemini Claude Sonnet 4 5 Thinking",
258
- "options": {
259
- "thinking": {
260
- "budgetTokens": 32768,
261
- "type": "enabled"
262
- }
263
- },
264
- "reasoning": true
265
- },
266
- "gpt-5": {
267
- "limit": {
268
- "context": 128000,
269
- "output": 16384
270
- },
271
- "name": "Gpt 5",
272
- "options": {
273
- "reasoning": {
274
- "effort": "medium"
275
- }
276
- },
277
- "reasoning": true
278
- },
279
- "gpt-5-codex": {
280
- "limit": {
281
- "context": 128000,
282
- "output": 16384
283
- },
284
- "name": "Gpt 5 Codex",
285
- "options": {
286
- "reasoning": {
287
- "effort": "medium"
288
- }
289
- },
290
- "reasoning": true
291
- },
292
- "gpt-5-codex-mini": {
293
- "limit": {
294
- "context": 128000,
295
- "output": 16384
296
- },
297
- "name": "Gpt 5 Codex Mini",
298
- "options": {
299
- "reasoning": {
300
- "effort": "medium"
301
- }
302
- },
303
- "reasoning": true
304
- },
305
- "gpt-5.1": {
306
- "limit": {
307
- "context": 128000,
308
- "output": 16384
309
- },
310
- "name": "Gpt 5 1",
311
- "options": {
312
- "reasoning": {
313
- "effort": "medium"
314
- }
315
- },
316
- "reasoning": true
317
- },
318
- "gpt-5.1-codex": {
319
- "limit": {
320
- "context": 128000,
321
- "output": 16384
322
- },
323
- "name": "Gpt 5 1 Codex",
324
- "options": {
325
- "reasoning": {
326
- "effort": "medium"
327
- }
328
- },
329
- "reasoning": true
330
- },
331
- "gpt-5.1-codex-max": {
332
- "limit": {
333
- "context": 128000,
334
- "output": 16384
335
- },
336
- "name": "Gpt 5 1 Codex Max",
337
- "options": {
338
- "reasoning": {
339
- "effort": "medium"
340
- }
341
- },
342
- "reasoning": true
343
- },
344
- "gpt-5.1-codex-mini": {
345
- "limit": {
346
- "context": 128000,
347
- "output": 16384
348
- },
349
- "name": "Gpt 5 1 Codex Mini",
350
- "options": {
351
- "reasoning": {
352
- "effort": "medium"
353
- }
354
- },
355
- "reasoning": true
356
- },
357
- "gpt-5.2": {
358
- "limit": {
359
- "context": 128000,
360
- "output": 16384
361
- },
362
- "name": "Gpt 5 2",
363
- "options": {
364
- "reasoning": {
365
- "effort": "medium"
366
- }
367
- },
368
- "reasoning": true
369
- },
370
- "gpt-oss-120b-medium": {
371
- "limit": {
372
- "context": 128000,
373
- "output": 16384
374
- },
375
- "name": "Gpt Oss 120b Medium"
376
- }
377
- },
378
- "name": "ProxyPal",
379
- "npm": "@ai-sdk/anthropic",
380
- "options": {
381
- "apiKey": "proxypal-local",
382
- "baseURL": "http://127.0.0.1:8317/v1"
383
- }
384
- },
385
- "zai-coding-plan": {
386
- "models": {
387
- "glm-4.6": {
388
- "attachment": true,
389
- "options": {
390
- "thinking": {
391
- "type": "enabled"
392
- }
393
- },
394
- "reasoning": true,
395
- "temperature": true,
396
- "tool_call": true
397
- }
398
- }
399
- }
400
- },
401
- "share": "manual",
402
- "small_model": "opencode/gpt-5-nano",
403
- "theme": "system",
404
- "tools": {
405
- "context7*": true,
406
- "gh_grep*": true,
407
- "gkg*": true
408
- },
409
- "tui": {
410
- "diff_style": "auto",
411
- "scroll_acceleration": {
412
- "enabled": true
413
- },
414
- "scroll_speed": 3
415
- },
416
- "watcher": {
417
- "ignore": [
418
- "node_modules/**",
419
- ".git/**",
420
- "dist/**",
421
- "build/**",
422
- "*.log",
423
- ".DS_Store"
424
- ]
425
- }
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
+ "designer": {
9
+ "description": "UI/UX design specialist for mockup analysis and aesthetic guidance",
10
+ "model": "proxypal/gemini-3-pro-preview"
11
+ },
12
+ "explore": {
13
+ "description": "Fast codebase search specialist"
14
+ },
15
+ "general": {
16
+ "disable": true
17
+ },
18
+ "plan": {
19
+ "disable": true
20
+ },
21
+ "planner": {
22
+ "description": "Strategic planning agent for architecture and design",
23
+ "model": "proxypal/gpt-5.2"
24
+ },
25
+ "review": {
26
+ "description": "Code review, debugging, and security audit specialist",
27
+ "model": "proxypal/gemini-2.5-flash-lite"
28
+ },
29
+ "rush": {
30
+ "description": "Fast primary agent for small, well-defined tasks",
31
+ "model": "zai-coding-plan/glm-4.6"
32
+ },
33
+ "scout": {
34
+ "description": "External research specialist for library docs and patterns",
35
+ "model": "proxypal/gemini-claude-sonnet-4-5"
36
+ }
37
+ },
38
+ "autoupdate": false,
39
+ "experimental": {
40
+ "batch_tool": true,
41
+ "chatMaxRetries": 2,
42
+ "primary_tools": ["edit", "write", "bash", "prune"]
43
+ },
44
+ "formatter": {
45
+ "biome": {
46
+ "command": ["npx", "@biomejs/biome", "check", "--write", "$FILE"],
47
+ "extensions": [".js", ".jsx", ".ts", ".tsx", ".json", ".jsonc"]
48
+ },
49
+ "java-formatter": {
50
+ "command": ["google-java-format", "--replace", "$FILE"],
51
+ "environment": {
52
+ "JAVA_HOME": "{env:JAVA_HOME}"
53
+ },
54
+ "extensions": [".java"]
55
+ },
56
+ "prettier": {
57
+ "command": ["npx", "prettier", "--write", "$FILE"],
58
+ "extensions": [".html", ".css", ".scss", ".sass", ".md", ".yaml", ".yml"]
59
+ }
60
+ },
61
+ "keybinds": {
62
+ "command_list": ";",
63
+ "leader": "`",
64
+ "session_child_cycle": "ctrl+alt+right",
65
+ "session_child_cycle_reverse": "ctrl+alt+left"
66
+ },
67
+ "mcp": {
68
+ "Framelink MCP for Figma": {
69
+ "command": [
70
+ "npx",
71
+ "-y",
72
+ "figma-developer-mcp",
73
+ "--figma-api-key={env:FIGMA_API_KEY}",
74
+ "--stdio"
75
+ ],
76
+ "enabled": false,
77
+ "type": "local"
78
+ },
79
+ "augment-context-engine": {
80
+ "command": ["auggie", "--mcp"],
81
+ "enabled": false,
82
+ "type": "local"
83
+ },
84
+ "context7": {
85
+ "enabled": true,
86
+ "headers": {
87
+ "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
88
+ },
89
+ "timeout": 10000,
90
+ "type": "remote",
91
+ "url": "https://mcp.context7.com/mcp"
92
+ },
93
+ "gh_grep": {
94
+ "enabled": true,
95
+ "type": "remote",
96
+ "url": "https://mcp.grep.app"
97
+ },
98
+ "gkg": {
99
+ "enabled": true,
100
+ "type": "remote",
101
+ "url": "http://localhost:27495/mcp"
102
+ },
103
+ "playwright": {
104
+ "command": ["npx", "@playwright/mcp@latest"],
105
+ "enabled": false,
106
+ "type": "local"
107
+ }
108
+ },
109
+ "model": "proxypal/gemini-claude-opus-4-5-thinking",
110
+ "permission": {
111
+ "bash": {
112
+ "git commit *": "ask",
113
+ "git push *": "ask",
114
+ "rm *": "ask",
115
+ "rm -rf *": "ask"
116
+ },
117
+ "doom_loop": "ask",
118
+ "edit": "allow",
119
+ "external_directory": "allow"
120
+ },
121
+ "plugin": [
122
+ "opencode-gemini-auth",
123
+ "./plugin/superpowers.ts",
124
+ "./plugin/notification.ts",
125
+ "@tarquinen/opencode-dcp@latest",
126
+ "@howaboua/pickle-thinker@0.1.3"
127
+ ],
128
+ "provider": {
129
+ "github-copilot": {
130
+ "models": {
131
+ "claude-haiku-4.5": {
132
+ "attachment": true,
133
+ "options": {
134
+ "thinking": {
135
+ "budgetTokens": 16000,
136
+ "type": "enabled"
137
+ }
138
+ },
139
+ "reasoning": true,
140
+ "temperature": true,
141
+ "tool_call": true
142
+ },
143
+ "claude-opus-4.5": {
144
+ "attachment": true,
145
+ "options": {
146
+ "thinking": {
147
+ "budgetTokens": 32000,
148
+ "type": "enabled"
149
+ }
150
+ },
151
+ "reasoning": true,
152
+ "temperature": true,
153
+ "tool_call": true
154
+ },
155
+ "claude-sonnet-4.5": {
156
+ "attachment": true,
157
+ "options": {
158
+ "thinking": {
159
+ "budgetTokens": 16000,
160
+ "type": "enabled"
161
+ }
162
+ },
163
+ "reasoning": true,
164
+ "temperature": true,
165
+ "tool_call": true
166
+ },
167
+ "gpt-5.1": {
168
+ "attachment": true,
169
+ "options": {
170
+ "reasoning": {
171
+ "effort": "high"
172
+ }
173
+ },
174
+ "reasoning": true,
175
+ "temperature": true,
176
+ "tool_call": true
177
+ },
178
+ "gpt-5.1-codex": {
179
+ "attachment": true,
180
+ "options": {
181
+ "reasoning": {
182
+ "effort": "high"
183
+ }
184
+ },
185
+ "reasoning": true,
186
+ "temperature": true,
187
+ "tool_call": true
188
+ }
189
+ },
190
+ "npm": "@ai-sdk/anthropic"
191
+ },
192
+ "proxypal": {
193
+ "models": {
194
+ "claude-haiku-4.5": {
195
+ "limit": {
196
+ "context": 200000,
197
+ "output": 64000
198
+ },
199
+ "name": "Copilot Claude Haiku 4 5"
200
+ },
201
+ "claude-opus-4-5-20251101": {
202
+ "limit": {
203
+ "context": 200000,
204
+ "output": 64000
205
+ },
206
+ "name": "Claude Opus 4 5 20251101"
207
+ },
208
+ "claude-opus-4.1": {
209
+ "limit": {
210
+ "context": 200000,
211
+ "output": 64000
212
+ },
213
+ "name": "Copilot Claude Opus 4 1"
214
+ },
215
+ "claude-opus-4.5": {
216
+ "limit": {
217
+ "context": 200000,
218
+ "output": 64000
219
+ },
220
+ "name": "Copilot Claude Opus 4 5"
221
+ },
222
+ "claude-sonnet-4": {
223
+ "limit": {
224
+ "context": 200000,
225
+ "output": 64000
226
+ },
227
+ "name": "Copilot Claude Sonnet 4"
228
+ },
229
+ "claude-sonnet-4.5": {
230
+ "limit": {
231
+ "context": 200000,
232
+ "output": 64000
233
+ },
234
+ "name": "Copilot Claude Sonnet 4 5"
235
+ },
236
+ "gemini-2.5-computer-use-preview-10-2025": {
237
+ "limit": {
238
+ "context": 1048576,
239
+ "output": 65536
240
+ },
241
+ "name": "Gemini 2 5 Computer Use Preview 10 2025"
242
+ },
243
+ "gemini-2.5-flash": {
244
+ "limit": {
245
+ "context": 1048576,
246
+ "output": 65536
247
+ },
248
+ "name": "Gemini 2 5 Flash"
249
+ },
250
+ "gemini-2.5-flash-lite": {
251
+ "limit": {
252
+ "context": 1048576,
253
+ "output": 65536
254
+ },
255
+ "name": "Gemini 2 5 Flash Lite"
256
+ },
257
+ "gemini-2.5-pro": {
258
+ "limit": {
259
+ "context": 1048576,
260
+ "output": 65536
261
+ },
262
+ "name": "Copilot Gemini 2 5 Pro"
263
+ },
264
+ "gemini-3-pro-image-preview": {
265
+ "limit": {
266
+ "context": 1048576,
267
+ "output": 65536
268
+ },
269
+ "name": "Gemini 3 Pro Image Preview"
270
+ },
271
+ "gemini-3-pro-preview": {
272
+ "limit": {
273
+ "context": 1048576,
274
+ "output": 65536
275
+ },
276
+ "name": "Gemini 3 Pro Preview"
277
+ },
278
+ "gemini-claude-opus-4-5-thinking": {
279
+ "limit": {
280
+ "context": 200000,
281
+ "output": 64000
282
+ },
283
+ "name": "Gemini Claude Opus 4 5 Thinking",
284
+ "options": {
285
+ "thinking": {
286
+ "budgetTokens": 32768,
287
+ "type": "enabled"
288
+ }
289
+ },
290
+ "reasoning": true
291
+ },
292
+ "gemini-claude-sonnet-4-5": {
293
+ "limit": {
294
+ "context": 200000,
295
+ "output": 64000
296
+ },
297
+ "name": "Gemini Claude Sonnet 4 5"
298
+ },
299
+ "gemini-claude-sonnet-4-5-thinking": {
300
+ "limit": {
301
+ "context": 200000,
302
+ "output": 64000
303
+ },
304
+ "name": "Gemini Claude Sonnet 4 5 Thinking",
305
+ "options": {
306
+ "thinking": {
307
+ "budgetTokens": 32768,
308
+ "type": "enabled"
309
+ }
310
+ },
311
+ "reasoning": true
312
+ },
313
+ "gpt-4": {
314
+ "limit": {
315
+ "context": 128000,
316
+ "output": 16384
317
+ },
318
+ "name": "Copilot Gpt 4"
319
+ },
320
+ "gpt-4-turbo": {
321
+ "limit": {
322
+ "context": 128000,
323
+ "output": 16384
324
+ },
325
+ "name": "Copilot Gpt 4 Turbo"
326
+ },
327
+ "gpt-4.1": {
328
+ "limit": {
329
+ "context": 128000,
330
+ "output": 16384
331
+ },
332
+ "name": "Copilot Gpt 4 1"
333
+ },
334
+ "gpt-4o": {
335
+ "limit": {
336
+ "context": 128000,
337
+ "output": 16384
338
+ },
339
+ "name": "Copilot Gpt 4o"
340
+ },
341
+ "gpt-5": {
342
+ "limit": {
343
+ "context": 128000,
344
+ "output": 16384
345
+ },
346
+ "name": "Gpt 5",
347
+ "options": {
348
+ "reasoning": {
349
+ "effort": "medium"
350
+ }
351
+ },
352
+ "reasoning": true
353
+ },
354
+ "gpt-5-codex": {
355
+ "limit": {
356
+ "context": 128000,
357
+ "output": 16384
358
+ },
359
+ "name": "Gpt 5 Codex",
360
+ "options": {
361
+ "reasoning": {
362
+ "effort": "medium"
363
+ }
364
+ },
365
+ "reasoning": true
366
+ },
367
+ "gpt-5-codex-mini": {
368
+ "limit": {
369
+ "context": 128000,
370
+ "output": 16384
371
+ },
372
+ "name": "Gpt 5 Codex Mini",
373
+ "options": {
374
+ "reasoning": {
375
+ "effort": "medium"
376
+ }
377
+ },
378
+ "reasoning": true
379
+ },
380
+ "gpt-5-mini": {
381
+ "limit": {
382
+ "context": 128000,
383
+ "output": 16384
384
+ },
385
+ "name": "Copilot Gpt 5 Mini",
386
+ "options": {
387
+ "reasoning": {
388
+ "effort": "medium"
389
+ }
390
+ },
391
+ "reasoning": true
392
+ },
393
+ "gpt-5.1": {
394
+ "limit": {
395
+ "context": 128000,
396
+ "output": 16384
397
+ },
398
+ "name": "Gpt 5 1",
399
+ "options": {
400
+ "reasoning": {
401
+ "effort": "medium"
402
+ }
403
+ },
404
+ "reasoning": true
405
+ },
406
+ "gpt-5.1-codex": {
407
+ "limit": {
408
+ "context": 128000,
409
+ "output": 16384
410
+ },
411
+ "name": "Gpt 5 1 Codex",
412
+ "options": {
413
+ "reasoning": {
414
+ "effort": "medium"
415
+ }
416
+ },
417
+ "reasoning": true
418
+ },
419
+ "gpt-5.1-codex-max": {
420
+ "limit": {
421
+ "context": 128000,
422
+ "output": 16384
423
+ },
424
+ "name": "Gpt 5 1 Codex Max",
425
+ "options": {
426
+ "reasoning": {
427
+ "effort": "medium"
428
+ }
429
+ },
430
+ "reasoning": true
431
+ },
432
+ "gpt-5.1-codex-mini": {
433
+ "limit": {
434
+ "context": 128000,
435
+ "output": 16384
436
+ },
437
+ "name": "Gpt 5 1 Codex Mini",
438
+ "options": {
439
+ "reasoning": {
440
+ "effort": "medium"
441
+ }
442
+ },
443
+ "reasoning": true
444
+ },
445
+ "gpt-5.2": {
446
+ "limit": {
447
+ "context": 128000,
448
+ "output": 16384
449
+ },
450
+ "name": "Gpt 5 2",
451
+ "options": {
452
+ "reasoning": {
453
+ "effort": "medium"
454
+ }
455
+ },
456
+ "reasoning": true
457
+ },
458
+ "gpt-oss-120b-medium": {
459
+ "limit": {
460
+ "context": 128000,
461
+ "output": 16384
462
+ },
463
+ "name": "Gpt Oss 120b Medium"
464
+ },
465
+ "grok-code-fast-1": {
466
+ "limit": {
467
+ "context": 128000,
468
+ "output": 16384
469
+ },
470
+ "name": "Copilot Grok Code Fast 1"
471
+ },
472
+ "o1": {
473
+ "limit": {
474
+ "context": 200000,
475
+ "output": 100000
476
+ },
477
+ "name": "Copilot O1"
478
+ },
479
+ "o1-mini": {
480
+ "limit": {
481
+ "context": 200000,
482
+ "output": 100000
483
+ },
484
+ "name": "Copilot O1 Mini"
485
+ },
486
+ "raptor-mini": {
487
+ "limit": {
488
+ "context": 128000,
489
+ "output": 16384
490
+ },
491
+ "name": "Copilot Raptor Mini"
492
+ }
493
+ },
494
+ "name": "ProxyPal",
495
+ "npm": "@ai-sdk/anthropic",
496
+ "options": {
497
+ "apiKey": "proxypal-local",
498
+ "baseURL": "http://127.0.0.1:8317/v1"
499
+ }
500
+ },
501
+ "zai-coding-plan": {
502
+ "models": {
503
+ "glm-4.6": {
504
+ "attachment": true,
505
+ "options": {
506
+ "thinking": {
507
+ "type": "enabled"
508
+ }
509
+ },
510
+ "reasoning": true,
511
+ "temperature": true,
512
+ "tool_call": true
513
+ }
514
+ }
515
+ }
516
+ },
517
+ "share": "manual",
518
+ "small_model": "opencode/gpt-5-nano",
519
+ "theme": "system",
520
+ "tools": {
521
+ "context7*": true,
522
+ "gh_grep*": true,
523
+ "gkg*": true
524
+ },
525
+ "tui": {
526
+ "diff_style": "auto",
527
+ "scroll_acceleration": {
528
+ "enabled": true
529
+ },
530
+ "scroll_speed": 3
531
+ },
532
+ "watcher": {
533
+ "ignore": [
534
+ "node_modules/**",
535
+ ".git/**",
536
+ "dist/**",
537
+ "build/**",
538
+ "*.log",
539
+ ".DS_Store"
540
+ ]
541
+ }
426
542
  }
@@ -11,7 +11,7 @@
11
11
  "author": "",
12
12
  "license": "ISC",
13
13
  "dependencies": {
14
- "@opencode-ai/plugin": "1.0.152"
14
+ "@opencode-ai/plugin": "1.0.153"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@types/better-sqlite3": "^7.6.13",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencodekit",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "CLI tool for bootstrapping and managing OpenCodeKit projects",
5
5
  "type": "module",
6
6
  "repository": {