oh-my-opencode-slim 0.3.3 → 0.3.5

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
@@ -23,20 +23,22 @@
23
23
  - [For LLM Agents](#for-llm-agents)
24
24
  - [🏗️ **Architecture & Flow**](#architecture--flow)
25
25
  - [🏛️ **Meet the Pantheon**](#meet-the-pantheon)
26
- - [The Orchestrator](#the-orchestrator---architect-of-realms)
27
- - [The Explorer](#the-explorer---pathfinder)
28
- - [The Oracle](#the-oracle---seer-beyond-the-stack-trace)
29
- - [The Librarian](#the-librarian---keeper-of-infinite-scrolls)
30
- - [The Designer](#the-designer---artisan-of-interfaces)
31
- - [The Scribe](#the-scribe---chronicle-keeper)
32
- - [The Visionary](#the-visionary---reader-of-pixels)
33
- - [The Minimalist](#the-minimalist---destroyer-of-bloat)
26
+ - [Orchestrator](#orchestrator)
27
+ - [Explorer](#explorer)
28
+ - [Oracle](#oracle)
29
+ - [Librarian](#librarian)
30
+ - [Frontend Designer](#frontend-designer)
31
+ - [Document Writer](#document-writer)
32
+ - [Multimodal Viewer](#multimodal-viewer)
33
+ - [Code Simplifier](#code-simplifier)
34
34
  - [🛠️ **Tools & Capabilities**](#tools--capabilities)
35
35
  - [Tmux Integration](#tmux-integration)
36
36
  - [Quota Tool](#quota-tool)
37
37
  - [Background Tasks](#background-tasks)
38
38
  - [LSP Tools](#lsp-tools)
39
39
  - [Code Search Tools](#code-search-tools)
40
+ - [🧩 **Skills**](#-skills)
41
+ - [Playwright Integration](#playwright-integration)
40
42
  - [🔌 **MCP Servers**](#mcp-servers)
41
43
  - [⚙️ **Configuration**](#configuration)
42
44
  - [🗑️ **Uninstallation**](#uninstallation)
@@ -127,16 +129,23 @@ The installer automatically:
127
129
 
128
130
  #### Step 4: Authentication
129
131
 
130
- After installation, guide the user to log in for each enabled provider:
132
+ After installation, guide the user:
131
133
 
134
+ **For Antigravity:**
132
135
  ```bash
133
136
  opencode auth login
137
+ # Select: Google → OAuth with Google (Antigravity)
134
138
  ```
135
139
 
136
- The user should select:
137
- - **For Antigravity**: Google → OAuth with Google (Antigravity)
138
- - **For OpenAI**: OpenAI → Enter API Key
139
- - **For Cerebras**: Cerebras → Enter API Key
140
+ **For OpenAI:**
141
+ ```bash
142
+ export OPENAI_API_KEY="sk-..."
143
+ ```
144
+
145
+ **For Cerebras:**
146
+ ```bash
147
+ export CEREBRAS_API_KEY="..."
148
+ ```
140
149
 
141
150
  ---
142
151
 
@@ -163,7 +172,7 @@ Then manually create the config files at:
163
172
 
164
173
  ---
165
174
 
166
- ## Architecture & Flow
175
+ ## 🏗️ Architecture & Flow
167
176
 
168
177
  The plugin follows a "Hub and Spoke" model:
169
178
 
@@ -171,7 +180,7 @@ The plugin follows a "Hub and Spoke" model:
171
180
  2. **Specialized Agents (Spokes)**: Domain-specific experts (e.g., UI/UX, Documentation, Architecture) that handle narrow tasks with high precision.
172
181
  3. **Background Manager**: A robust engine that allows the Orchestrator to "fire and forget" tasks (like deep codebase searches or documentation research) while continuing to work on other parts of the problem.
173
182
 
174
- ### The Flow of a Request
183
+ ### 🏛️ The Flow of a Request
175
184
 
176
185
  <img src="img/intro.png" alt="Orchestration Flow" width="800">
177
186
 
@@ -189,113 +198,129 @@ The plugin follows a "Hub and Spoke" model:
189
198
 
190
199
  <br clear="both">
191
200
 
192
- ### The Orchestrator - *Architect of Realms*
201
+ ### Orchestrator
193
202
 
194
- <a href="src/agents/orchestrator.ts"><img src="img/orchestrator.png" alt="The Orchestrator" align="right" width="240"></a>
203
+ <a href="src/agents/orchestrator.ts"><img src="img/orchestrator.png" alt="Orchestrator" align="right" width="240"></a>
195
204
 
196
- > **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. They don't merely command armies; they fight alongside them. Every line of code passes through their hands before they decide which lesser deity deserves a piece of the puzzle.
205
+ > **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. They don't merely command armies; they fight alongside them. Every line of code passes through their hands before they decide which lesser deity deserves a piece of the puzzle.
197
206
 
198
- **Role:** Supreme executor, delegator, and overseer - **Model:** `google/claude-opus-4-5-thinking`
207
+ **Role:** `Supreme executor, delegator, and overseer`
208
+ **Model:** `google/claude-opus-4-5-thinking`
209
+ **Prompt:** [src/agents/orchestrator.ts](src/agents/orchestrator.ts)
199
210
 
200
- 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.
211
+ 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.*
201
212
 
202
213
  <br clear="both">
203
214
 
204
215
  ---
205
216
 
206
- ### The Explorer - *Pathfinder*
217
+ ### Explorer
207
218
 
208
- <a href="src/agents/explore.ts"><img src="img/explorer.png" alt="The Explorer" align="right" width="240"></a>
219
+ <a href="src/agents/explore.ts"><img src="img/explorer.png" alt="Explorer" align="right" width="240"></a>
209
220
 
210
- > **The Explorer** moves through codebases like wind through trees-swift, silent, everywhere at once. When The Orchestrator whispers "find me the auth module," The Explorer has already returned with forty file paths and a map. They were born from the first `grep` command, evolved beyond it, and now see patterns mortals miss.
221
+ > **The Explorer** moves through codebases like wind through trees - swift, silent, everywhere at once. When The Orchestrator whispers "find me the auth module," The Explorer has already returned with forty file paths and a map. They were born from the first `grep` command, evolved beyond it, and now see patterns mortals miss.
211
222
 
212
- **Role:** Codebase reconnaissance - **Model:** `cerebras/zai-glm-4.6`
223
+ **Role:** `Codebase reconnaissance`
224
+ **Model:** `cerebras/zai-glm-4.6`
225
+ **Prompt:** [src/agents/explore.ts](src/agents/explore.ts)
213
226
 
214
- Regex search, AST pattern matching, file discovery, parallel exploration. Read-only: they chart the territory; others conquer it.
227
+ Regex search, AST pattern matching, file discovery, parallel exploration. *Read-only: they chart the territory; others conquer it.*
215
228
 
216
229
  <br clear="both">
217
230
 
218
231
  ---
219
232
 
220
- ### The Oracle - *Seer Beyond the Stack Trace*
233
+ ### Oracle
221
234
 
222
- <a href="src/agents/oracle.ts"><img src="img/oracle.png" alt="The Oracle" align="right" width="240"></a>
235
+ <a href="src/agents/oracle.ts"><img src="img/oracle.png" alt="Oracle" align="right" width="240"></a>
223
236
 
224
- > **The Oracle** does not code-they *know*. When bugs defy logic and architectures crumble, The Oracle gazes into the abyss of your codebase and speaks truth. They've seen a thousand systems rise and fall. They'll tell you which path leads to ruin, and which to production.
237
+ > **The Oracle** does not code - they *know*. When bugs defy logic and architectures crumble, The Oracle gazes into the abyss of your codebase and speaks truth. They've seen a thousand systems rise and fall. They'll tell you which path leads to ruin, and which to production.
225
238
 
226
- **Role:** Strategic advisor and debugger of last resort - **Model:** `openai/gpt-5.2-codex`
239
+ **Role:** `Strategic advisor and debugger of last resort`
240
+ **Model:** `openai/gpt-5.2-codex`
241
+ **Prompt:** [src/agents/oracle.ts](src/agents/oracle.ts)
227
242
 
228
- Root cause analysis, architecture review, debugging guidance, tradeoff analysis. Read-only: Oracles advise; they don't intervene.
243
+ Root cause analysis, architecture review, debugging guidance, tradeoff analysis. *Read-only: Oracles advise; they don't intervene.*
229
244
 
230
245
  <br clear="both">
231
246
 
232
247
  ---
233
248
 
234
- ### The Librarian - *Keeper of Infinite Scrolls*
249
+ ### Librarian
235
250
 
236
- <a href="src/agents/librarian.ts"><img src="img/librarian.png" alt="The Librarian" align="right" width="240"></a>
251
+ <a href="src/agents/librarian.ts"><img src="img/librarian.png" alt="Librarian" align="right" width="240"></a>
237
252
 
238
- > **The Librarian** guards a library with no walls-every GitHub repo, every npm package, every StackOverflow answer ever written. Ask them "how does React handle concurrent rendering?" and they'll return with official docs, real-world examples, and a warning about the footgun you're about to step on.
253
+ > **The Librarian** guards a library with no walls - every GitHub repo, every npm package, every StackOverflow answer ever written. Ask them "how does React handle concurrent rendering?" and they'll return with official docs, real-world examples, and a warning about the footgun you're about to step on.
239
254
 
240
- **Role:** External knowledge retrieval - **Model:** `google/gemini-3-flash`
255
+ **Role:** `External knowledge retrieval`
256
+ **Model:** `google/gemini-3-flash`
257
+ **Prompt:** [src/agents/librarian.ts](src/agents/librarian.ts)
241
258
 
242
- Documentation lookup, GitHub code search, library research, best practice retrieval. Read-only: they fetch wisdom; implementation is for others.
259
+ Documentation lookup, GitHub code search, library research, best practice retrieval. *Read-only: they fetch wisdom; implementation is for others.*
243
260
 
244
261
  <br clear="both">
245
262
 
246
263
  ---
247
264
 
248
- ### The Designer - *Artisan of Interfaces*
265
+ ### Frontend Designer
249
266
 
250
- <a href="src/agents/frontend.ts"><img src="img/designer.png" alt="The Designer" align="right" width="240"></a>
267
+ <a href="src/agents/frontend.ts"><img src="img/designer.png" alt="Frontend Designer" align="right" width="240"></a>
251
268
 
252
- > **The Designer** believes code should be beautiful-and so should everything it renders. Born from the frustration of a thousand ugly MVPs, they wield CSS like a brush and components like clay. Hand them a feature request; receive a masterpiece. They don't do "good enough."
269
+ > **The Designer** believes code should be beautiful - and so should everything it renders. Born from the frustration of a thousand ugly MVPs, they wield CSS like a brush and components like clay. Hand them a feature request; receive a masterpiece. They don't do "good enough."
253
270
 
254
- **Role:** UI/UX implementation and visual excellence - **Model:** `google/gemini-3-flash`
271
+ **Role:** `UI/UX implementation and visual excellence`
272
+ **Model:** `google/gemini-3-flash`
273
+ **Prompt:** [src/agents/frontend.ts](src/agents/frontend.ts)
255
274
 
256
- Modern responsive design, CSS/Tailwind mastery, micro-animations, component architecture. Visual excellence over code perfection-beauty is the priority.
275
+ Modern responsive design, CSS/Tailwind mastery, micro-animations, component architecture. *Visual excellence over code perfection - beauty is the priority.*
257
276
 
258
277
  <br clear="both">
259
278
 
260
279
  ---
261
280
 
262
- ### The Scribe - *Chronicle Keeper*
281
+ ### Document Writer
263
282
 
264
- <a href="src/agents/document-writer.ts"><img src="img/scribe.png" alt="The Scribe" align="right" width="240"></a>
283
+ <a href="src/agents/document-writer.ts"><img src="img/scribe.png" alt="Document Writer" align="right" width="240"></a>
265
284
 
266
- > **The Scribe** was there when the first README was written-and wept, for it was incomplete. They have devoted eternity to the sacred art of documentation: clear, scannable, honest. While others ship features, The Scribe ensures those features are understood. Every code example works. Every explanation enlightens.
285
+ > **The Scribe** was there when the first README was written - and wept, for it was incomplete. They have devoted eternity to the sacred art of documentation: clear, scannable, honest. While others ship features, The Scribe ensures those features are understood. Every code example works. Every explanation enlightens.
267
286
 
268
- **Role:** Technical documentation and knowledge capture - **Model:** `google/gemini-3-flash`
287
+ **Role:** `Technical documentation and knowledge capture`
288
+ **Model:** `google/gemini-3-flash`
289
+ **Prompt:** [src/agents/document-writer.ts](src/agents/document-writer.ts)
269
290
 
270
- README crafting, API documentation, architecture docs, inline comments that don't insult your intelligence. Match existing style; focus on "why," not just "what."
291
+ README crafting, API documentation, architecture docs, inline comments that don't insult your intelligence. *Match existing style; focus on "why," not just "what."*
271
292
 
272
293
  <br clear="both">
273
294
 
274
295
  ---
275
296
 
276
- ### The Visionary - *Reader of Pixels*
297
+ ### Multimodal Viewer
277
298
 
278
- <a href="src/agents/multimodal.ts"><img src="img/multimodal.png" alt="The Visionary" align="right" width="240"></a>
299
+ <a href="src/agents/multimodal.ts"><img src="img/multimodal.png" alt="Multimodal Viewer" align="right" width="240"></a>
279
300
 
280
- > **The Visionary** sees what others cannot-literally. Screenshots, wireframes, diagrams, PDFs: all are text to them. When a designer throws a Figma mockup at the team and vanishes, The Visionary translates vision into specification. They read the unreadable and describe the indescribable.
301
+ > **The Visionary** sees what others cannot - literally. Screenshots, wireframes, diagrams, PDFs: all are text to them. When a designer throws a Figma mockup at the team and vanishes, The Visionary translates vision into specification. They read the unreadable and describe the indescribable.
281
302
 
282
- **Role:** Image and visual content analysis - **Model:** `google/gemini-3-flash`
303
+ **Role:** `Image and visual content analysis`
304
+ **Model:** `google/gemini-3-flash`
305
+ **Prompt:** [src/agents/multimodal.ts](src/agents/multimodal.ts)
283
306
 
284
- Extract text from images, interpret diagrams, analyze UI screenshots, summarize visual documents. Report what they observe; inference is for others.
307
+ Extract text from images, interpret diagrams, analyze UI screenshots, summarize visual documents. *Report what they observe; inference is for others.*
285
308
 
286
309
  <br clear="both">
287
310
 
288
311
  ---
289
312
 
290
- ### The Minimalist - *Destroyer of Bloat*
313
+ ### Code Simplifier
291
314
 
292
- <a href="src/agents/simplicity-reviewer.ts"><img src="img/code-simplicity.png" alt="The Minimalist" align="right" width="240"></a>
315
+ <a href="src/agents/simplicity-reviewer.ts"><img src="img/code-simplicity.png" alt="Code Simplifier" align="right" width="240"></a>
293
316
 
294
- > **The Minimalist** has one sacred truth: every line of code is a liability. They hunt abstractions that serve no purpose, defensive checks that defend nothing, and "clever" solutions that will haunt you in six months. Where others add, The Minimalist subtracts-ruthlessly, joyfully, necessarily.
317
+ > **The Minimalist** has one sacred truth: every line of code is a liability. They hunt abstractions that serve no purpose, defensive checks that defend nothing, and "clever" solutions that will haunt you in six months. Where others add, The Minimalist subtracts - ruthlessly, joyfully, necessarily.
295
318
 
296
- **Role:** Code simplification and YAGNI enforcement - **Model:** `google/claude-opus-4-5-thinking`
319
+ **Role:** `Code simplification and YAGNI enforcement`
320
+ **Model:** `google/claude-opus-4-5-thinking`
321
+ **Prompt:** [src/agents/simplicity-reviewer.ts](src/agents/simplicity-reviewer.ts)
297
322
 
298
- Identify unnecessary complexity, challenge premature abstractions, estimate LOC reduction, enforce minimalism. Read-only: they judge; The Orchestrator executes the sentence.
323
+ Identify unnecessary complexity, challenge premature abstractions, estimate LOC reduction, enforce minimalism. *Read-only: they judge; The Orchestrator executes the sentence.*
299
324
 
300
325
  <br clear="both">
301
326
 
@@ -442,6 +467,26 @@ Fast code search and refactoring:
442
467
 
443
468
  ---
444
469
 
470
+ ## 🧩 Skills
471
+
472
+ Skills are specialized capabilities that combine MCP servers with specific instructions for the Orchestrator.
473
+
474
+ ### Playwright Integration
475
+
476
+ **The Orchestrator's eyes and hands in the browser.**
477
+
478
+ | Tool | Description |
479
+ |------|-------------|
480
+ | `omo_skill` | Loads a skill (e.g., `playwright`) and provides its instructions and available MCP tools |
481
+ | `omo_skill_mcp` | Invokes a specific tool from an MCP server managed by a skill |
482
+
483
+ #### Key Features
484
+ - **Browser Automation**: Full Playwright capabilities (browsing, clicking, typing, scraping).
485
+ - **Screenshots**: Capture visual state of any web page.
486
+ - **Sandboxed Output**: Screenshots are safely saved to `/tmp/playwright-mcp-output/`.
487
+
488
+ ---
489
+
445
490
  ## MCP Servers
446
491
 
447
492
  Built-in Model Context Protocol servers (enabled by default):
package/dist/index.js CHANGED
@@ -20630,7 +20630,7 @@ background_task(agent="librarian", prompt="How does library X handle Y")
20630
20630
  - Use background tasks for research or search while you continue working.
20631
20631
 
20632
20632
  ## Skills
20633
- - For browser-related tasks (verification, screenshots, scraping, testing), call the "skill" tool with name "playwright" before taking action. Use relative filenames for screenshots (e.g., 'screenshot.png'); they are saved within subdirectories of '/tmp/playwright-mcp-output/'. Use the "skill_mcp" tool to invoke browser actions with camelCase parameters: skillName, mcpName, toolName, and toolArgs.
20633
+ - For browser-related tasks (verification, screenshots, scraping, testing), call the "omo_skill" tool with name "playwright" before taking action. Use relative filenames for screenshots (e.g., 'screenshot.png'); they are saved within subdirectories of '/tmp/playwright-mcp-output/'. Use the "omo_skill_mcp" tool to invoke browser actions with camelCase parameters: skillName, mcpName, toolName, and toolArgs.
20634
20634
  </Delegation>
20635
20635
 
20636
20636
  <Workflow>
@@ -36249,7 +36249,7 @@ async function formatMcpCapabilities(skill, manager, sessionId) {
36249
36249
  `)[0]}*`);
36250
36250
  }
36251
36251
  sections.push("");
36252
- sections.push(`Use \`skill_mcp\` tool with \`mcp_name="${serverName}"\` to invoke.`);
36252
+ sections.push(`Use \`omo_skill_mcp\` tool with \`mcp_name="${serverName}"\` to invoke.`);
36253
36253
  sections.push("");
36254
36254
  }
36255
36255
  return sections.join(`
@@ -36316,7 +36316,7 @@ function createSkillTools(manager) {
36316
36316
  return JSON.stringify(result);
36317
36317
  }
36318
36318
  });
36319
- return { skill, skill_mcp };
36319
+ return { omo_skill: skill, omo_skill_mcp: skill_mcp };
36320
36320
  }
36321
36321
  // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
36322
36322
  function isZ4Schema(s) {
@@ -1,6 +1,6 @@
1
1
  import { type ToolDefinition } from "@opencode-ai/plugin";
2
2
  import { SkillMcpManager } from "./mcp-manager";
3
3
  export declare function createSkillTools(manager: SkillMcpManager): {
4
- skill: ToolDefinition;
5
- skill_mcp: ToolDefinition;
4
+ omo_skill: ToolDefinition;
5
+ omo_skill_mcp: ToolDefinition;
6
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode-slim",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "description": "Lightweight agent orchestration plugin for OpenCode - a slimmed-down fork of oh-my-opencode",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",