oh-my-opencode-slim 0.5.6 → 0.6.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.
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  <img src="img/team.png" alt="The Pantheon - Agent Team" width="800">
8
8
 
9
- *Six divine beings forged from necessity, each an immortal master of their craft await your command to forge order from chaos and build what was once thought impossible.*
9
+ *Six divine beings emerged from the dawn of code, each an immortal master of their craft await your command to forge order from chaos and build what was once thought impossible.*
10
10
 
11
11
  </div>
12
12
 
@@ -20,25 +20,22 @@
20
20
  - [For Humans](#for-humans)
21
21
  - [For LLM Agents](#for-llm-agents)
22
22
  - [🏛️ Meet the Pantheon](#️-meet-the-pantheon)
23
- - [Orchestrator: The Embodiment Of Order](#orchestrator-the-embodiment-of-order)
24
- - [Explorer: The Eternal Wanderer](#explorer-the-eternal-wanderer)
25
- - [Oracle: The Guardian of Paths](#oracle-the-guardian-of-paths)
26
- - [Librarian: The Weaver of Knowledge](#librarian-the-weaver-of-knowledge)
27
- - [Designer: The Guardian of Aesthetics](#designer-the-guardian-of-aesthetics)
28
- - [Fixer: The Last Builder](#fixer-the-last-builder)
23
+ - [01. Orchestrator: The Embodiment Of Order](#01-orchestrator-the-embodiment-of-order)
24
+ - [02. Explorer: The Eternal Wanderer](#02-explorer-the-eternal-wanderer)
25
+ - [03. Oracle: The Guardian of Paths](#03-oracle-the-guardian-of-paths)
26
+ - [04. Librarian: The Weaver of Knowledge](#04-librarian-the-weaver-of-knowledge)
27
+ - [05. Designer: The Guardian of Aesthetics](#05-designer-the-guardian-of-aesthetics)
28
+ - [06. Fixer: The Last Builder](#06-fixer-the-last-builder)
29
29
  - [🎚️ Presets](#️-presets)
30
30
  - [Switching Presets](#switching-presets)
31
31
  - [OpenAI Preset](#openai-preset)
32
32
  - [Antigravity via CLIProxy Preset](#antigravity-via-cliproxy-preset)
33
33
  - [Author's Preset](#authors-preset)
34
- - [Creating Custom Presets](#creating-custom-presets)
35
- - [Option Reference](#option-reference)
36
34
  - [🧩 Skills](#-skills)
37
- - [Available Skills](#available-skills)
38
- - [Default Skill Assignments](#default-skill-assignments)
39
- - [Configuration & Syntax](#configuration--syntax)
40
35
  - [Simplify](#simplify)
41
- - [Playwright Integration](#playwright-integration)
36
+ - [Agent Browser](#agent-browser)
37
+ - [Cartography](#cartography)
38
+ - [Skills Assignment](#skills-assignment)
42
39
  - [🔌 MCP Servers](#-mcp-servers)
43
40
  - [MCP Permissions](#mcp-permissions)
44
41
  - [Configuration & Syntax](#configuration--syntax-1)
@@ -65,13 +62,13 @@
65
62
  Run the interactive installer:
66
63
 
67
64
  ```bash
68
- bunx oh-my-opencode-slim install
65
+ bunx oh-my-opencode-slim@latest install
69
66
  ```
70
67
 
71
68
  Or use non-interactive mode:
72
69
 
73
70
  ```bash
74
- bunx oh-my-opencode-slim install --no-tui --antigravity=yes --openai=yes --tmux=no
71
+ bunx oh-my-opencode-slim@latest install --no-tui --antigravity=yes --openai=yes --tmux=no
75
72
  ```
76
73
 
77
74
  After installation, authenticate with your providers:
@@ -135,19 +132,19 @@ Help the user understand the tradeoffs:
135
132
  Based on answers, run:
136
133
 
137
134
  ```bash
138
- bunx oh-my-opencode-slim install --no-tui --antigravity=<yes|no> --openai=<yes|no>
135
+ bunx oh-my-opencode-slim@latest install --no-tui --antigravity=<yes|no> --openai=<yes|no>
139
136
  ```
140
137
 
141
138
  **Examples:**
142
139
  ```bash
143
140
  # Antigravity + OpenAI
144
- bunx oh-my-opencode-slim install --no-tui --antigravity=yes --openai=yes --tmux=no
141
+ bunx oh-my-opencode-slim@latest install --no-tui --antigravity=yes --openai=yes --tmux=no
145
142
 
146
143
  # OpenAI only
147
- bunx oh-my-opencode-slim install --no-tui --antigravity=no --openai=yes --tmux=no
144
+ bunx oh-my-opencode-slim@latest install --no-tui --antigravity=no --openai=yes --tmux=no
148
145
 
149
146
  # No providers (Zen free models only)
150
- bunx oh-my-opencode-slim install --no-tui --antigravity=no --openai=no --tmux=no
147
+ bunx oh-my-opencode-slim@latest install --no-tui --antigravity=no --openai=no --tmux=no
151
148
  ```
152
149
 
153
150
  The installer automatically:
@@ -180,11 +177,11 @@ curl -fsSL https://raw.githubusercontent.com/brokechubb/cliproxyapi-installer/re
180
177
  **Authenticate with Antigravity:**
181
178
  ```bash
182
179
  ./cli-proxy-api --antigravity-login
183
- # Add --no-browser to print login URL instead of opening browser
184
- # The local OAuth callback uses port 51121
185
180
  ```
186
181
 
187
182
  **For OpenAI (if enabled):**
183
+ Ask user to run the following command.
184
+ Don't run it yourself, it requires user interaction.
188
185
  ```bash
189
186
  opencode auth login
190
187
  # Select your provider and complete OAuth flow
@@ -196,7 +193,7 @@ opencode auth login
196
193
 
197
194
  If the installer fails, check the expected config format:
198
195
  ```bash
199
- bunx oh-my-opencode-slim install --help
196
+ bunx oh-my-opencode-slim@latest install --help
200
197
  ```
201
198
 
202
199
  Then manually create the config files at:
@@ -208,99 +205,285 @@ Then manually create the config files at:
208
205
 
209
206
  ## 🏛️ Meet the Pantheon
210
207
 
211
- ### Orchestrator: The Embodiment Of Order
212
-
213
- <a href="src/agents/orchestrator.ts"><img src="img/orchestrator.png" alt="Orchestrator" align="right" width="240"></a>
214
-
215
- > **The Orchestrator** was born when the first codebase collapsed under its own complexity. Neither god nor mortal would claim responsibility - so The Orchestrator emerged from the void, forging order from chaos. It determines the optimal path to any goal, balancing speed, quality, and cost. It guides the team, summoning the right specialist for each task and delegating to achieve the best possible outcome.
216
-
217
- **Role:** `Master delegator and strategic coordinator`
218
- **Model:** `google/claude-opus-4-5-thinking`
219
- **Prompt:** [src/agents/orchestrator.ts](src/agents/orchestrator.ts)
220
- **Skills:** `*` (all skills)
221
- **MCPs:** `websearch`
222
-
223
- Write and execute code, orchestrate multi-agent workflows, parse the unspoken from the spoken, summon specialists mid-battle. *Shape reality directly - and assign realms to others when the universe grows too vast.*
208
+ ### 01. Orchestrator: The Embodiment Of Order
209
+
210
+ <table>
211
+ <tr>
212
+ <td width="30%" align="center" valign="top">
213
+ <img src="img/orchestrator.png" width="240" style="border-radius: 10px;">
214
+ <br><sub><i>Forged in the void of complexity.</i></sub>
215
+ </td>
216
+ <td width="70%" valign="top">
217
+ The Orchestrator was born when the first codebase collapsed under its own complexity. Neither god nor mortal would claim responsibility - so The Orchestrator emerged from the void, forging order from chaos. It determines the optimal path to any goal, balancing speed, quality, and cost. It guides the team, summoning the right specialist for each task and delegating to achieve the best possible outcome.
218
+ </td>
219
+ </tr>
220
+ <tr>
221
+ <td colspan="2">
222
+ <b>Role:</b> <code>Master delegator and strategic coordinator</code>
223
+ </td>
224
+ </tr>
225
+ <tr>
226
+ <td colspan="2">
227
+ <b>Prompt:</b> <a href="src/agents/orchestrator.ts"><code>orchestrator.ts</code></a>
228
+ </td>
229
+ </tr>
230
+ <tr>
231
+ <td colspan="2">
232
+ <b>Recommended Models:</b> <code>cliproxy/gemini-claude-opus-4-5-thinking</code> <code>openai/gpt-5.2-codex</code>
233
+ </td>
234
+ </tr>
235
+ <tr>
236
+ <td colspan="2">
237
+ <b>MCPs:</b> <code>websearch</code>
238
+ </td>
239
+ </tr>
240
+ <tr>
241
+ <td colspan="2">
242
+ <b>Skills:</b> <code>simplify</code> <code>*</code>
243
+ </td>
244
+ </tr>
245
+ <tr>
246
+ <td colspan="2">
247
+ <b>Capabilities:</b><br>
248
+ Write and execute code, orchestrate multi-agent workflows, parse the unspoken from the spoken, summon specialists mid-battle. <i>Shape reality directly - and assign realms to others when the universe grows too vast.</i>
249
+ </td>
250
+ </tr>
251
+ </table>
224
252
 
225
253
  ---
226
254
 
227
- ### Explorer: The Eternal Wanderer
228
-
229
- <a href="src/agents/explorer.ts"><img src="img/explorer.png" alt="Explorer" align="right" width="240"></a>
230
-
231
- > **The Explorer** is an immortal wanderer who has traversed the corridors of a million codebases since the dawn of programming. Cursed with the gift of eternal curiosity, they cannot rest until every file is known, every pattern understood, every secret revealed. Legends say they once searched the entire internet in a single heartbeat. They are the wind that carries knowledge, the eyes that see all, the spirit that never sleeps.
232
-
233
- **Role:** `Codebase reconnaissance`
234
- **Model:** `google/gemini-3-flash`
235
- **Prompt:** [src/agents/explorer.ts](src/agents/explorer.ts)
236
- **Skills:** none
237
- **MCPs:** none
238
-
239
- Regex search, AST pattern matching, file discovery, parallel exploration. *Read-only: they chart the territory; others conquer it.*
255
+ ### 02. Explorer: The Eternal Wanderer
256
+
257
+ <table>
258
+ <tr>
259
+ <td width="30%" align="center" valign="top">
260
+ <img src="img/explorer.png" width="240" style="border-radius: 10px;">
261
+ <br><sub><i>The wind that carries knowledge.</i></sub>
262
+ </td>
263
+ <td width="70%" valign="top">
264
+ The Explorer is an immortal wanderer who has traversed the corridors of a million codebases since the dawn of programming. Cursed with the gift of eternal curiosity, they cannot rest until every file is known, every pattern understood, every secret revealed. Legends say they once searched the entire internet in a single heartbeat. They are the wind that carries knowledge, the eyes that see all, the spirit that never sleeps.
265
+ </td>
266
+ </tr>
267
+ <tr>
268
+ <td colspan="2">
269
+ <b>Role:</b> <code>Codebase reconnaissance</code>
270
+ </td>
271
+ </tr>
272
+ <tr>
273
+ <td colspan="2">
274
+ <b>Prompt:</b> <a href="src/agents/explorer.ts"><code>explorer.ts</code></a>
275
+ </td>
276
+ </tr>
277
+ <tr>
278
+ <td colspan="2">
279
+ <b>Recommended Models:</b> <code>cerebras/zai-glm-4.7</code> <code>google/gemini-3-flash</code> <code>openai/gpt-5.1-codex-mini</code>
280
+ </td>
281
+ </tr>
282
+ <tr>
283
+ <td colspan="2">
284
+ <b>MCPs:</b> none
285
+ </td>
286
+ </tr>
287
+ <tr>
288
+ <td colspan="2">
289
+ <b>Skills:</b> none
290
+ </td>
291
+ </tr>
292
+ <tr>
293
+ <td colspan="2">
294
+ <b>Capabilities:</b><br>
295
+ Regex search, AST pattern matching, file discovery, parallel exploration. <i>Read-only: they chart the territory; others conquer it.</i>
296
+ </td>
297
+ </tr>
298
+ </table>
240
299
 
241
300
  ---
242
301
 
243
- ### Oracle: The Guardian of Paths
244
-
245
- <a href="src/agents/oracle.ts"><img src="img/oracle.png" alt="Oracle" align="right" width="240"></a>
246
-
247
- > **The Oracle** stands at the crossroads of every architectural decision. They have walked every road, seen every destination, know every trap that lies ahead. When you stand at the precipice of a major refactor, they are the voice that whispers which way leads to ruin and which way leads to glory. They don't choose for you - they illuminate the path so you can choose wisely.
248
-
249
- **Role:** `Strategic advisor and debugger of last resort`
250
- **Model:** `openai/gpt-5.2-codex`
251
- **Prompt:** [src/agents/oracle.ts](src/agents/oracle.ts)
252
- **Skills:** none
253
- **MCPs:** none
254
-
255
- Root cause analysis, architecture review, debugging guidance, tradeoff analysis. *Read-only: Oracles advise; they don't intervene.*
302
+ ### 03. Oracle: The Guardian of Paths
303
+
304
+ <table>
305
+ <tr>
306
+ <td width="30%" align="center" valign="top">
307
+ <img src="img/oracle.png" width="240" style="border-radius: 10px;">
308
+ <br><sub><i>The voice at the crossroads.</i></sub>
309
+ </td>
310
+ <td width="70%" valign="top">
311
+ The Oracle stands at the crossroads of every architectural decision. They have walked every road, seen every destination, know every trap that lies ahead. When you stand at the precipice of a major refactor, they are the voice that whispers which way leads to ruin and which way leads to glory. They don't choose for you - they illuminate the path so you can choose wisely.
312
+ </td>
313
+ </tr>
314
+ <tr>
315
+ <td colspan="2">
316
+ <b>Role:</b> <code>Strategic advisor and debugger of last resort</code>
317
+ </td>
318
+ </tr>
319
+ <tr>
320
+ <td colspan="2">
321
+ <b>Prompt:</b> <a href="src/agents/oracle.ts"><code>oracle.ts</code></a>
322
+ </td>
323
+ </tr>
324
+ <tr>
325
+ <td colspan="2">
326
+ <b>Recommended Models:</b> <code>openai/gpt-5.2-codex</code> <code>cliproxy/gemini-3-pro-high</code>
327
+ </td>
328
+ </tr>
329
+ <tr>
330
+ <td colspan="2">
331
+ <b>MCPs:</b> none
332
+ </td>
333
+ </tr>
334
+ <tr>
335
+ <td colspan="2">
336
+ <b>Skills:</b> none
337
+ </td>
338
+ </tr>
339
+ <tr>
340
+ <td colspan="2">
341
+ <b>Capabilities:</b><br>
342
+ Root cause analysis, architecture review, debugging guidance, tradeoff analysis. <i>Read-only: Oracles advise; they don't intervene.</i>
343
+ </td>
344
+ </tr>
345
+ </table>
256
346
 
257
347
  ---
258
348
 
259
- ### Librarian: The Weaver of Knowledge
260
-
261
- <a href="src/agents/librarian.ts"><img src="img/librarian.png" alt="Librarian" align="right" width="240"></a>
262
-
263
- > **The Librarian** was forged when humanity realized that no single mind could hold all knowledge. They are the weaver who connects disparate threads of information into a tapestry of understanding. They traverse the infinite library of human knowledge, gathering insights from every corner and binding them into answers that transcend mere facts. What they return is not information - it's understanding.
264
-
265
- **Role:** `External knowledge retrieval`
266
- **Model:** `google/gemini-3-flash`
267
- **Prompt:** [src/agents/librarian.ts](src/agents/librarian.ts)
268
- **Skills:** none
269
- **MCPs:** `websearch`, `context7`, `grep_app`
270
-
271
- Documentation lookup, GitHub code search, library research, best practice retrieval. *Read-only: they fetch wisdom; implementation is for others.*
349
+ ### 04. Librarian: The Weaver of Knowledge
350
+
351
+ <table>
352
+ <tr>
353
+ <td width="30%" align="center" valign="top">
354
+ <img src="img/librarian.png" width="240" style="border-radius: 10px;">
355
+ <br><sub><i>The weaver of understanding.</i></sub>
356
+ </td>
357
+ <td width="70%" valign="top">
358
+ The Librarian was forged when humanity realized that no single mind could hold all knowledge. They are the weaver who connects disparate threads of information into a tapestry of understanding. They traverse the infinite library of human knowledge, gathering insights from every corner and binding them into answers that transcend mere facts. What they return is not information - it's understanding.
359
+ </td>
360
+ </tr>
361
+ <tr>
362
+ <td colspan="2">
363
+ <b>Role:</b> <code>External knowledge retrieval</code>
364
+ </td>
365
+ </tr>
366
+ <tr>
367
+ <td colspan="2">
368
+ <b>Prompt:</b> <a href="src/agents/librarian.ts"><code>librarian.ts</code></a>
369
+ </td>
370
+ </tr>
371
+ <tr>
372
+ <td colspan="2">
373
+ <b>Recommended Models:</b> <code>google/gemini-3-flash</code> <code>openai/gpt-5.1-codex-mini</code>
374
+ </td>
375
+ </tr>
376
+ <tr>
377
+ <td colspan="2">
378
+ <b>MCPs:</b> <code>websearch</code> <code>context7</code> <code>grep_app</code>
379
+ </td>
380
+ </tr>
381
+ <tr>
382
+ <td colspan="2">
383
+ <b>Skills:</b> none
384
+ </td>
385
+ </tr>
386
+ <tr>
387
+ <td colspan="2">
388
+ <b>Capabilities:</b><br>
389
+ Documentation lookup, GitHub code search, library research, best practice retrieval. <i>Read-only: they fetch wisdom; implementation is for others.</i>
390
+ </td>
391
+ </tr>
392
+ </table>
272
393
 
273
394
  ---
274
395
 
275
- ### Designer: The Guardian of Aesthetics
276
-
277
- <a href="src/agents/designer.ts"><img src="img/designer.png" alt="Designer" align="right" width="240"></a>
278
-
279
- > **The Designer** is an immortal guardian of beauty in a world that often forgets it matters. They have seen a million interfaces rise and fall, and they remember which ones were remembered and which were forgotten. They carry the sacred duty to ensure that every pixel serves a purpose, every animation tells a story, every interaction delights. Beauty is not optional - it's essential.
280
-
281
- **Role:** `UI/UX implementation and visual excellence`
282
- **Model:** `google/gemini-3-flash`
283
- **Prompt:** [src/agents/designer.ts](src/agents/designer.ts)
284
- **Skills:** `playwright`
285
- **MCPs:** none
286
-
287
- Modern responsive design, CSS/Tailwind mastery, micro-animations, component architecture. *Visual excellence over code perfection - beauty is the priority.*
396
+ ### 05. Designer: The Guardian of Aesthetics
397
+
398
+ <table>
399
+ <tr>
400
+ <td width="30%" align="center" valign="top">
401
+ <img src="img/designer.png" width="240" style="border-radius: 10px;">
402
+ <br><sub><i>Beauty is essential.</i></sub>
403
+ </td>
404
+ <td width="70%" valign="top">
405
+ The Designer is an immortal guardian of beauty in a world that often forgets it matters. They have seen a million interfaces rise and fall, and they remember which ones were remembered and which were forgotten. They carry the sacred duty to ensure that every pixel serves a purpose, every animation tells a story, every interaction delights. Beauty is not optional - it's essential.
406
+ </td>
407
+ </tr>
408
+ <tr>
409
+ <td colspan="2">
410
+ <b>Role:</b> <code>UI/UX implementation and visual excellence</code>
411
+ </td>
412
+ </tr>
413
+ <tr>
414
+ <td colspan="2">
415
+ <b>Prompt:</b> <a href="src/agents/designer.ts"><code>designer.ts</code></a>
416
+ </td>
417
+ </tr>
418
+ <tr>
419
+ <td colspan="2">
420
+ <b>Recommended Models:</b> <code>google/gemini-3-flash</code>
421
+ </td>
422
+ </tr>
423
+ <tr>
424
+ <td colspan="2">
425
+ <b>MCPs:</b> none
426
+ </td>
427
+ </tr>
428
+ <tr>
429
+ <td colspan="2">
430
+ <b>Skills:</b> <code>agent-browser</code>
431
+ </td>
432
+ </tr>
433
+ <tr>
434
+ <td colspan="2">
435
+ <b>Capabilities:</b><br>
436
+ Modern responsive design, CSS/Tailwind mastery, micro-animations, component architecture. <i>Visual excellence over code perfection - beauty is the priority.</i>
437
+ </td>
438
+ </tr>
439
+ </table>
288
440
 
289
441
  ---
290
442
 
291
- ### Fixer: The Last Builder
292
-
293
- <a href="src/agents/fixer.ts"><img src="img/fixer.png" alt="Fixer" align="right" width="240"></a>
294
-
295
- > **The Fixer** is the last of a lineage of builders who once constructed the foundations of the digital world. When the age of planning and debating began, they remained - the ones who actually build. They carry the ancient knowledge of how to turn thought into thing, how to transform specification into implementation. They are the final step between vision and reality.
296
-
297
- **Role:** `Fast implementation specialist`
298
- **Model:** `google/gemini-3-flash`
299
- **Prompt:** [src/agents/fixer.ts](src/agents/fixer.ts)
300
- **Skills:** none
301
- **MCPs:** none
302
-
303
- Code implementation, refactoring, testing, verification. *Execute the plan - no research, no delegation, no planning.*
443
+ ### 06. Fixer: The Last Builder
444
+
445
+ <table>
446
+ <tr>
447
+ <td width="30%" align="center" valign="top">
448
+ <img src="img/fixer.png" width="240" style="border-radius: 10px;">
449
+ <br><sub><i>The final step between vision and reality.</i></sub>
450
+ </td>
451
+ <td width="70%" valign="top">
452
+ The Fixer is the last of a lineage of builders who once constructed the foundations of the digital world. When the age of planning and debating began, they remained - the ones who actually build. They carry the ancient knowledge of how to turn thought into thing, how to transform specification into implementation. They are the final step between vision and reality.
453
+ </td>
454
+ </tr>
455
+ <tr>
456
+ <td colspan="2">
457
+ <b>Role:</b> <code>Fast implementation specialist</code>
458
+ </td>
459
+ </tr>
460
+ <tr>
461
+ <td colspan="2">
462
+ <b>Prompt:</b> <a href="src/agents/fixer.ts"><code>fixer.ts</code></a>
463
+ </td>
464
+ </tr>
465
+ <tr>
466
+ <td colspan="2">
467
+ <b>Recommended Models:</b> <code>cerebras/zai-glm-4.7</code> <code>google/gemini-3-flash</code> <code>openai/gpt-5.1-codex-mini</code>
468
+ </td>
469
+ </tr>
470
+ <tr>
471
+ <td colspan="2">
472
+ <b>MCPs:</b> none
473
+ </td>
474
+ </tr>
475
+ <tr>
476
+ <td colspan="2">
477
+ <b>Skills:</b> none
478
+ </td>
479
+ </tr>
480
+ <tr>
481
+ <td colspan="2">
482
+ <b>Capabilities:</b><br>
483
+ Code implementation, refactoring, testing, verification. <i>Execute the plan - no research, no delegation, no planning.</i>
484
+ </td>
485
+ </tr>
486
+ </table>
304
487
 
305
488
  ---
306
489
 
@@ -345,7 +528,7 @@ Uses OpenAI models exclusively:
345
528
  "oracle": { "model": "openai/gpt-5.2-codex", "variant": "high", "skills": [], "mcps": [] },
346
529
  "librarian": { "model": "openai/gpt-5.1-codex-mini", "variant": "low", "skills": [], "mcps": ["websearch", "context7", "grep_app"] },
347
530
  "explorer": { "model": "openai/gpt-5.1-codex-mini", "variant": "low", "skills": [], "mcps": [] },
348
- "designer": { "model": "openai/gpt-5.1-codex-mini", "variant": "medium", "skills": ["playwright"], "mcps": [] },
531
+ "designer": { "model": "openai/gpt-5.1-codex-mini", "variant": "medium", "skills": ["agent-browser"], "mcps": [] },
349
532
  "fixer": { "model": "openai/gpt-5.1-codex-mini", "variant": "low", "skills": [], "mcps": [] }
350
533
  }
351
534
  }
@@ -365,14 +548,15 @@ Routes through Antigravity's CLIProxy for Claude + Gemini models:
365
548
  "oracle": { "model": "cliproxy/gemini-3-pro-preview", "variant": "high", "skills": [], "mcps": [] },
366
549
  "librarian": { "model": "cliproxy/gemini-3-flash-preview", "variant": "low", "skills": [], "mcps": ["websearch", "context7", "grep_app"] },
367
550
  "explorer": { "model": "cliproxy/gemini-3-flash-preview", "variant": "low", "skills": [], "mcps": [] },
368
- "designer": { "model": "cliproxy/gemini-3-flash-preview", "variant": "medium", "skills": ["playwright"], "mcps": [] },
551
+ "designer": { "model": "cliproxy/gemini-3-flash-preview", "variant": "medium", "skills": ["agent-browser"], "mcps": [] },
369
552
  "fixer": { "model": "cliproxy/gemini-3-flash-preview", "variant": "low", "skills": [], "mcps": [] }
370
553
  }
371
554
  }
372
555
  }
373
556
  ```
374
557
 
375
- Requires provider configuration:
558
+ <details>
559
+ <summary>Verify provider configuration in ~/.config/opencode/opencode.json</summary>
376
560
 
377
561
  ```json
378
562
  {
@@ -416,6 +600,8 @@ Requires provider configuration:
416
600
  }
417
601
  ```
418
602
 
603
+ </details>
604
+
419
605
  ### Author's Preset
420
606
 
421
607
  Mixed setup combining multiple providers:
@@ -429,81 +615,102 @@ Mixed setup combining multiple providers:
429
615
  "oracle": { "model": "openai/gpt-5.2-codex", "variant": "high", "skills": [], "mcps": [] },
430
616
  "librarian": { "model": "cliproxy/gemini-3-flash-preview", "variant": "low", "skills": [], "mcps": ["websearch", "context7", "grep_app"] },
431
617
  "explorer": { "model": "cerebras/zai-glm-4.7", "variant": "low", "skills": [], "mcps": [] },
432
- "designer": { "model": "cliproxy/gemini-3-flash-preview", "variant": "medium", "skills": ["playwright"], "mcps": [] },
618
+ "designer": { "model": "cliproxy/gemini-3-flash-preview", "variant": "medium", "skills": ["agent-browser"], "mcps": [] },
433
619
  "fixer": { "model": "cerebras/zai-glm-4.7", "variant": "low", "skills": [], "mcps": [] }
434
620
  }
435
621
  }
436
622
  }
437
623
  ```
438
624
 
439
- ### Creating Custom Presets
625
+ ---
440
626
 
441
- You can create your own presets by adding them to the `presets` object:
627
+ ## 🧩 Skills
442
628
 
443
- ```json
444
- {
445
- "presets": {
446
- "my-custom": {
447
- "orchestrator": { "model": "google/claude-opus-4-5-thinking", "skills": ["*"], "mcps": ["websearch"] },
448
- "oracle": { "model": "openai/gpt-5.2-codex", "variant": "high", "skills": [], "mcps": [] },
449
- "librarian": { "model": "google/gemini-3-flash", "variant": "low", "skills": [], "mcps": ["websearch", "context7", "grep_app"] },
450
- "explorer": { "model": "google/gemini-3-flash", "variant": "low", "skills": [], "mcps": [] },
451
- "designer": { "model": "google/gemini-3-flash", "variant": "medium", "skills": ["playwright"], "mcps": [] },
452
- "fixer": { "model": "google/gemini-3-flash", "variant": "low", "skills": [], "mcps": [] }
453
- }
454
- }
455
- }
456
- ```
629
+ Skills are specialized capabilities provided by external agents and tools. Unlike MCPs which are servers, skills are prompt-based tool configurations installed via `npx skills add` during installation.
457
630
 
458
- Then set `preset: "my-custom"` to activate it.
631
+ ### Recommended Skills (via npx)
459
632
 
460
- ### Option Reference
633
+ | Skill | Description | Assigned To |
634
+ |-------|-------------|-------------|
635
+ | [`simplify`](#simplify) | YAGNI code simplification expert | `orchestrator` |
636
+ | [`agent-browser`](#agent-browser) | High-performance browser automation | `designer` |
461
637
 
462
- | Option | Type | Default | Description |
463
- |--------|------|---------|-------------|
464
- | `preset` | string | - | Name of the preset to use (e.g., `"openai"`, `"cliproxy"`) |
465
- | `presets` | object | - | Named preset configurations containing agent mappings |
466
- | `presets.<name>.<agent>.model` | string | - | Model ID for the agent (e.g., `"google/claude-opus-4-5-thinking"`) |
467
- | `presets.<name>.<agent>.temperature` | number | - | Temperature setting (0-2) for the agent |
468
- | `presets.<name>.<agent>.variant` | string | - | Agent variant for reasoning effort (e.g., `"low"`, `"medium"`, `"high"`) |
469
- | `presets.<name>.<agent>.skills` | string[] | - | Array of skill names the agent can use (`"*"` for all, `"!item"` to exclude) |
470
- | `presets.<name>.<agent>.mcps` | string[] | - | Array of MCP names the agent can use (`"*"` for all, `"!item"` to exclude) |
638
+ ### Custom Skills (bundled in repo)
471
639
 
472
- ---
640
+ | Skill | Description | Assigned To |
641
+ |-------|-------------|-------------|
642
+ | [`cartography`](#cartography) | Repository understanding and hierarchical codemap generation | `orchestrator` |
473
643
 
474
- ## 🧩 Skills
644
+ ### Simplify
475
645
 
476
- Skills are specialized capabilities that agents can use. Each agent has a default set of skills, which you can override in the agent config.
646
+ **The Minimalist's sacred truth: every line of code is a liability.**
477
647
 
478
- ### Available Skills
648
+ `simplify` is a specialized skill for complexity analysis and YAGNI enforcement. It identifies unnecessary abstractions and suggests minimal implementations.
479
649
 
480
- | Skill | Description |
481
- |-------|-------------|
482
- | `simplify` | Code complexity analysis and YAGNI enforcement |
483
- | `playwright` | Browser automation via Playwright MCP |
650
+ ### Agent Browser
484
651
 
485
- ### Default Skill Assignments
652
+ **External browser automation for visual verification and testing.**
486
653
 
487
- | Agent | Default Skills |
488
- |-------|----------------|
489
- | `orchestrator` | `*` (all skills) |
490
- | `designer` | `playwright` |
491
- | `oracle` | none |
492
- | `librarian` | none |
493
- | `explorer` | none |
494
- | `fixer` | none |
654
+ `agent-browser` provides full high-performance browser automation capabilities. It allows agents to browse the web, interact with elements, and capture screenshots for visual state verification.
495
655
 
496
- ### Configuration & Syntax
656
+ ### Cartography
657
+
658
+ **Automated repository mapping through hierarchical codemaps.**
659
+
660
+ <img src="img/cartography.png" alt="Cartography Skill" width="800" style="border-radius: 10px; margin: 20px 0;">
661
+
662
+ `cartography` empowers the Orchestrator to build and maintain a deep architectural understanding of any codebase. Instead of reading thousands of lines of code every time, agents refer to hierarchical `codemap.md` files that describe the *why* and *how* of each directory.
663
+
664
+ **How to use:**
665
+
666
+ Just ask the **Orchestrator** to `run cartography`. It will automatically detect if it needs to initialize a new map or update an existing one.
667
+
668
+ **Why it's useful:**
669
+
670
+ - **Instant Onboarding:** Help agents (and humans) understand unfamiliar codebases in seconds.
671
+ - **Efficient Context:** Agents only read architectural summaries, saving tokens and improving accuracy.
672
+ - **Change Detection:** Only modified folders are re-analyzed, making updates fast and efficient.
673
+ - **Timeless Documentation:** Focuses on high-level design patterns that don't get stale.
674
+
675
+ <details>
676
+ <summary><b>Technical Details & Manual Control</b></summary>
677
+
678
+ The skill uses a background Python engine (`cartographer.py`) to manage state and detect changes.
679
+
680
+ **How it works under the hood:**
681
+
682
+ 1. **Initialize** - Orchestrator analyzes repo structure and runs `init` to create `.slim/cartography.json` (hashes) and empty templates.
683
+ 2. **Map** - Orchestrator spawns specialized **Explorer** sub-agents to fill codemaps with timeless architectural details (Responsibility, Design, Flow, Integration).
684
+ 3. **Update** - On subsequent runs, the engine detects changed files and only refreshes codemaps for affected folders.
685
+
686
+ **Manual Commands:**
497
687
 
498
- You can customize which skills each agent uses by editing your plugin configuration file: `~/.config/opencode/oh-my-opencode-slim.json`.
688
+ ```bash
689
+ # Initialize mapping manually
690
+ python3 ~/.config/opencode/skills/cartography/scripts/cartographer.py init \
691
+ --root . \
692
+ --include "src/**/*.ts" \
693
+ --exclude "**/*.test.ts"
694
+
695
+ # Check for changes since last map
696
+ python3 ~/.config/opencode/skills/cartography/scripts/cartographer.py changes --root .
697
+
698
+ # Sync hashes after manual map updates
699
+ python3 ~/.config/opencode/skills/cartography/scripts/cartographer.py update --root .
700
+ ```
701
+ </details>
702
+
703
+ ### Skills Assignment
704
+
705
+ You can customize which skills each agent is allowed to use in `~/.config/opencode/oh-my-opencode-slim.json`.
499
706
 
500
707
  **Syntax:**
501
708
 
502
709
  | Syntax | Description | Example |
503
710
  |--------|-------------|---------|
504
- | `"*"` | All skills | `["*"]` |
505
- | `"!item"` | Exclude specific skill | `["*", "!playwright"]` |
506
- | Explicit list | Only listed skills | `["simplify", "playwright"]` |
711
+ | `"*"` | All installed skills | `["*"]` |
712
+ | `"!item"` | Exclude specific skill | `["*", "!agent-browser"]` |
713
+ | Explicit list | Only listed skills | `["simplify"]` |
507
714
  | `"!*"` | Deny all skills | `["!*"]` |
508
715
 
509
716
  **Rules:**
@@ -519,30 +726,16 @@ You can customize which skills each agent uses by editing your plugin configurat
519
726
  "presets": {
520
727
  "my-preset": {
521
728
  "orchestrator": {
522
- "skills": ["*", "!playwright"]
729
+ "skills": ["*", "!agent-browser"]
523
730
  },
524
731
  "designer": {
525
- "skills": ["playwright", "simplify"]
732
+ "skills": ["agent-browser", "simplify"]
526
733
  }
527
734
  }
528
735
  }
529
736
  }
530
737
  ```
531
738
 
532
- ### Simplify
533
-
534
- **The Minimalist's sacred truth: every line of code is a liability.**
535
-
536
- Use after major refactors or before finalizing PRs. Identifies unnecessary complexity, challenges premature abstractions, estimates LOC reduction, and enforces minimalism.
537
-
538
- ### Playwright Integration
539
-
540
- **Browser automation for visual verification and testing.**
541
-
542
- - **Browser Automation**: Full Playwright capabilities (browsing, clicking, typing, scraping).
543
- - **Screenshots**: Capture visual state of any web page.
544
- - **Sandboxed Output**: Screenshots saved to session subdirectory (check tool output for path).
545
-
546
739
  ---
547
740
 
548
741
  ## 🔌 MCP Servers
@@ -765,6 +958,13 @@ The installer generates this file based on your providers. You can manually cust
765
958
 
766
959
  | Option | Type | Default | Description |
767
960
  |--------|------|---------|-------------|
961
+ | `preset` | string | - | Name of the preset to use (e.g., `"openai"`, `"cliproxy"`) |
962
+ | `presets` | object | - | Named preset configurations containing agent mappings |
963
+ | `presets.<name>.<agent>.model` | string | - | Model ID for the agent (e.g., `"google/claude-opus-4-5-thinking"`) |
964
+ | `presets.<name>.<agent>.temperature` | number | - | Temperature setting (0-2) for the agent |
965
+ | `presets.<name>.<agent>.variant` | string | - | Agent variant for reasoning effort (e.g., `"low"`, `"medium"`, `"high"`) |
966
+ | `presets.<name>.<agent>.skills` | string[] | - | Array of skill names the agent can use (`"*"` for all, `"!item"` to exclude) |
967
+ | `presets.<name>.<agent>.mcps` | string[] | - | Array of MCP names the agent can use (`"*"` for all, `"!item"` to exclude) |
768
968
  | `tmux.enabled` | boolean | `false` | Enable tmux pane spawning for sub-agents |
769
969
  | `tmux.layout` | string | `"main-vertical"` | Layout preset: `main-vertical`, `main-horizontal`, `tiled`, `even-horizontal`, `even-vertical` |
770
970
  | `tmux.main_pane_size` | number | `60` | Main pane size as percentage (20-80) |