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 +100 -55
- package/dist/index.js +3 -3
- package/dist/tools/skill/tools.d.ts +2 -2
- package/package.json +1 -1
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
|
-
- [
|
|
27
|
-
- [
|
|
28
|
-
- [
|
|
29
|
-
- [
|
|
30
|
-
- [
|
|
31
|
-
- [
|
|
32
|
-
- [
|
|
33
|
-
- [
|
|
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
|
|
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
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
-
###
|
|
201
|
+
### Orchestrator
|
|
193
202
|
|
|
194
|
-
<a href="src/agents/orchestrator.ts"><img src="img/orchestrator.png" alt="
|
|
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
|
|
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
|
-
###
|
|
217
|
+
### Explorer
|
|
207
218
|
|
|
208
|
-
<a href="src/agents/explore.ts"><img src="img/explorer.png" alt="
|
|
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
|
|
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
|
-
###
|
|
233
|
+
### Oracle
|
|
221
234
|
|
|
222
|
-
<a href="src/agents/oracle.ts"><img src="img/oracle.png" alt="
|
|
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
|
|
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
|
-
###
|
|
249
|
+
### Librarian
|
|
235
250
|
|
|
236
|
-
<a href="src/agents/librarian.ts"><img src="img/librarian.png" alt="
|
|
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
|
|
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
|
-
###
|
|
265
|
+
### Frontend Designer
|
|
249
266
|
|
|
250
|
-
<a href="src/agents/frontend.ts"><img src="img/designer.png" alt="
|
|
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
|
|
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
|
-
###
|
|
281
|
+
### Document Writer
|
|
263
282
|
|
|
264
|
-
<a href="src/agents/document-writer.ts"><img src="img/scribe.png" alt="
|
|
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
|
|
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
|
-
###
|
|
297
|
+
### Multimodal Viewer
|
|
277
298
|
|
|
278
|
-
<a href="src/agents/multimodal.ts"><img src="img/multimodal.png" alt="
|
|
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
|
|
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
|
-
###
|
|
313
|
+
### Code Simplifier
|
|
291
314
|
|
|
292
|
-
<a href="src/agents/simplicity-reviewer.ts"><img src="img/code-simplicity.png" alt="
|
|
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
|
|
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 "
|
|
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 \`
|
|
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
|
-
|
|
5
|
-
|
|
4
|
+
omo_skill: ToolDefinition;
|
|
5
|
+
omo_skill_mcp: ToolDefinition;
|
|
6
6
|
};
|
package/package.json
CHANGED