oh-my-opencode-slim 1.0.6 → 1.1.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 +30 -17
- package/dist/cli/config-io.d.ts +1 -0
- package/dist/cli/divoom.d.ts +23 -0
- package/dist/cli/doctor.d.ts +38 -0
- package/dist/cli/index.js +469 -58
- package/dist/cli/providers.d.ts +3 -0
- package/dist/config/council-schema.d.ts +2 -2
- package/dist/config/index.d.ts +1 -1
- package/dist/config/loader.d.ts +46 -1
- package/dist/config/schema.d.ts +23 -0
- package/dist/divoom/council.gif +0 -0
- package/dist/divoom/designer.gif +0 -0
- package/dist/divoom/explorer.gif +0 -0
- package/dist/divoom/fixer.gif +0 -0
- package/dist/divoom/input.gif +0 -0
- package/dist/divoom/intro.gif +0 -0
- package/dist/divoom/librarian.gif +0 -0
- package/dist/divoom/manager.d.ts +57 -0
- package/dist/divoom/oracle.gif +0 -0
- package/dist/divoom/orchestrator.gif +0 -0
- package/dist/index.js +1304 -291
- package/dist/integrations/divoom/index.d.ts +3 -0
- package/dist/integrations/divoom/status-manager.d.ts +31 -0
- package/dist/integrations/divoom/swift-helper-source.d.ts +1 -0
- package/dist/integrations/divoom/swift-transport.d.ts +26 -0
- package/dist/integrations/divoom/types.d.ts +41 -0
- package/dist/multiplexer/tmux/index.d.ts +5 -0
- package/dist/tools/council.d.ts +2 -2
- package/dist/tools/fork/command.d.ts +28 -0
- package/dist/tools/fork/files.d.ts +33 -0
- package/dist/tools/fork/index.d.ts +10 -0
- package/dist/tools/fork/state.d.ts +7 -0
- package/dist/tools/fork/tools.d.ts +23 -0
- package/dist/tools/fork/vendor.d.ts +28 -0
- package/dist/tools/handoff/command.d.ts +29 -0
- package/dist/tools/handoff/files.d.ts +33 -0
- package/dist/tools/handoff/index.d.ts +10 -0
- package/dist/tools/handoff/state.d.ts +7 -0
- package/dist/tools/handoff/tools.d.ts +23 -0
- package/dist/tools/handoff/vendor.d.ts +28 -0
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/subtask/command.d.ts +30 -0
- package/dist/tools/subtask/files.d.ts +34 -0
- package/dist/tools/subtask/index.d.ts +11 -0
- package/dist/tools/subtask/state.d.ts +7 -0
- package/dist/tools/subtask/tools.d.ts +23 -0
- package/dist/tools/subtask/vendor.d.ts +27 -0
- package/dist/tui.d.ts +1 -0
- package/dist/tui.js +679 -11
- package/dist/utils/session.d.ts +11 -4
- package/oh-my-opencode-slim.schema.json +59 -0
- package/package.json +3 -2
- package/src/skills/clonedeps/README.md +23 -0
- package/src/skills/clonedeps/SKILL.md +237 -0
- package/src/skills/clonedeps/codemap.md +41 -0
- package/src/skills/codemap.md +8 -5
package/README.md
CHANGED
|
@@ -39,12 +39,14 @@ bunx oh-my-opencode-slim@latest install
|
|
|
39
39
|
|
|
40
40
|
The installer also registers the companion TUI plugin in OpenCode's
|
|
41
41
|
`tui.json`, which adds a small sidebar showing specialist-agent status plus
|
|
42
|
-
active/reusable task sessions.
|
|
43
|
-
|
|
42
|
+
active/reusable task sessions. It also warms OpenCode's plugin cache so bunx
|
|
43
|
+
installs keep loading even after temporary directories are cleaned up. For
|
|
44
|
+
manual setups, add `oh-my-opencode-slim` to the `plugin` array in both
|
|
45
|
+
`opencode.json` and `tui.json`.
|
|
44
46
|
|
|
45
47
|
### Getting Started
|
|
46
48
|
|
|
47
|
-
The installer generates both OpenAI and OpenCode Go presets, with OpenAI active by default. OpenAI uses `openai/gpt-5.5` for the higher-judgment agents and `openai/gpt-5.4-mini` for the faster scoped agents. To make OpenCode Go active during install, run `bunx oh-my-opencode-slim@latest install --preset=opencode-go
|
|
49
|
+
The installer generates both OpenAI and OpenCode Go presets, with OpenAI active by default. OpenAI uses `openai/gpt-5.5` for the higher-judgment agents and `openai/gpt-5.4-mini` for the faster scoped agents. To make OpenCode Go active during install, run `bunx oh-my-opencode-slim@latest install --preset=opencode-go` or change the default preset name in `~/.config/opencode/oh-my-opencode-slim.json` after installation.
|
|
48
50
|
|
|
49
51
|
Then:
|
|
50
52
|
|
|
@@ -63,9 +65,9 @@ Then:
|
|
|
63
65
|
4. **Update the models you want for each agent**
|
|
64
66
|
|
|
65
67
|
> [!TIP]
|
|
66
|
-
>
|
|
68
|
+
> It's **recommended** to understand how automatic delegation works. The **[Orchestrator prompt](https://github.com/alvinunreal/oh-my-opencode-slim/blob/master/src/agents/orchestrator.ts#L28)** contains the delegation rules, specialist routing logic, and the thresholds for when the main agent should hand work off to subagents. You can alway delegate manually by calling a subagent via: `@agentName <task>`
|
|
67
69
|
|
|
68
|
-
The default generated configuration includes both `openai` and `opencode-go` presets.
|
|
70
|
+
The default generated configuration includes both `openai` and `opencode-go` presets.
|
|
69
71
|
|
|
70
72
|
```jsonc
|
|
71
73
|
{
|
|
@@ -79,24 +81,29 @@ The default generated configuration includes both `openai` and `opencode-go` pre
|
|
|
79
81
|
"explorer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] },
|
|
80
82
|
"designer": { "model": "openai/gpt-5.4-mini", "variant": "medium", "skills": ["agent-browser"], "mcps": [] },
|
|
81
83
|
"fixer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] }
|
|
84
|
+
},
|
|
85
|
+
"opencode-go": {
|
|
86
|
+
"orchestrator": { "model": "opencode-go/glm-5.1", "skills": [ "*" ], "mcps": [ "*", "!context7" ] },
|
|
87
|
+
"oracle": { "model": "opencode-go/deepseek-v4-pro", "variant": "max", "skills": ["simplify"], "mcps": [] },
|
|
88
|
+
"council": { "model": "opencode-go/deepseek-v4-pro", "variant": "high", "skills": [], "mcps": [] },
|
|
89
|
+
"librarian": { "model": "opencode-go/minimax-m2.7", "skills": [], "mcps": [ "websearch", "context7", "grep_app" ] },
|
|
90
|
+
"explorer": { "model": "opencode-go/minimax-m2.7", "skills": [], "mcps": [] },
|
|
91
|
+
"designer": { "model": "opencode-go/kimi-k2.6", "variant": "medium", "skills": [ "agent-browser" ], "mcps": [] },
|
|
92
|
+
"fixer": { "model": "opencode-go/deepseek-v4-flash", "variant": "high", "skills": [], "mcps": [] }
|
|
82
93
|
}
|
|
83
94
|
}
|
|
84
95
|
}
|
|
85
96
|
```
|
|
86
97
|
|
|
87
|
-
Session management is enabled by default even though it is not shown in the
|
|
88
|
-
starter config. See **[Session Management](docs/session-management.md)** if you
|
|
89
|
-
want to customize how many resumable child-agent sessions are remembered.
|
|
90
|
-
|
|
91
98
|
### For Alternative Providers
|
|
92
99
|
|
|
93
|
-
To use
|
|
100
|
+
To use custom providers or a mixed-provider setup, use **[Configuration](docs/configuration.md)** for the full reference. If you want a ready-made starting point, check the **[Author's Preset](docs/authors-preset.md)** and **[$30 Preset](docs/thirty-dollars-preset.md)** - the `$30` preset is the best cheap setup.
|
|
94
101
|
|
|
95
102
|
The configuration guide also covers custom subagents via `agents.<name>`, where
|
|
96
103
|
you can define both a normal `prompt` and an `orchestratorPrompt` block for
|
|
97
104
|
delegation.
|
|
98
105
|
|
|
99
|
-
|
|
106
|
+
For model suggestions, see the **Recommended Models** listed under each agent below.
|
|
100
107
|
|
|
101
108
|
### ✅ Verify Your Setup
|
|
102
109
|
|
|
@@ -425,7 +432,7 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
425
432
|
### Observer: The Silent Witness
|
|
426
433
|
|
|
427
434
|
> [!NOTE]
|
|
428
|
-
> **Why a separate agent?** If your Orchestrator model is not multimodal, enable Observer to handle images, screenshots, PDFs, and other visual files. Observer is disabled by default and gives the Orchestrator a dedicated multimodal reader without forcing you to change your main reasoning model. Set `disabled_agents: []` and an `observer` model in your configuration.
|
|
435
|
+
> **Why a separate agent?** If your Orchestrator model is not multimodal, enable Observer to handle images, screenshots, PDFs, and other visual files. Observer is disabled by default and gives the Orchestrator a dedicated multimodal reader without forcing you to change your main reasoning model. Set `disabled_agents: []` and an `observer` model in your configuration. The bundled `opencode-go` install preset does this automatically because its GLM Orchestrator is not multimodal.
|
|
429
436
|
|
|
430
437
|
<table>
|
|
431
438
|
<tr>
|
|
@@ -439,7 +446,7 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
439
446
|
|
|
440
447
|
- Images, screenshots, diagrams → `read` tool (native image support)
|
|
441
448
|
- PDFs and binary documents → `read` tool (text + structure extraction)
|
|
442
|
-
- **Disabled by default** — enable with `"disabled_agents": []` and configure a vision-capable model
|
|
449
|
+
- **Disabled by default** — enable with `"disabled_agents": []` and configure a vision-capable model; installing with `--preset=opencode-go` enables it with `opencode-go/kimi-k2.6`
|
|
443
450
|
|
|
444
451
|
</td>
|
|
445
452
|
</tr>
|
|
@@ -479,12 +486,15 @@ Use this section as a map: start with installation, then jump to features, confi
|
|
|
479
486
|
| Doc | What it covers |
|
|
480
487
|
|-----|----------------|
|
|
481
488
|
| **[Council](docs/council.md)** | Run multiple models in parallel and synthesize a single answer with `@council` |
|
|
482
|
-
| **[Interview](docs/interview.md)** | Turn rough ideas into a structured markdown spec through a browser-based Q&A flow |
|
|
483
489
|
| **[Multiplexer Integration](docs/multiplexer-integration.md)** | Watch agents work live in Tmux or Zellij panes |
|
|
484
490
|
| **[Session Management](docs/session-management.md)** | Reuse recent child-agent sessions with short aliases instead of starting over |
|
|
485
491
|
| **[Todo Continuation](docs/todo-continuation.md)** | Auto-continue orchestrator sessions with cooldowns and safety checks |
|
|
486
492
|
| **[Preset Switching](docs/preset-switching.md)** | Switch agent model presets at runtime with `/preset` |
|
|
493
|
+
| **[Subtask](docs/subtask.md)** | Run a bounded child worker with `/subtask` and return a structured summary to the main session |
|
|
487
494
|
| **[Codemap](docs/codemap.md)** | Generate hierarchical codemaps to understand large codebases faster |
|
|
495
|
+
| **[Clonedeps](docs/clonedeps.md)** | Clone selected dependency source into an ignored local workspace for inspection |
|
|
496
|
+
| **[Interview](docs/interview.md)** | Turn rough ideas into a structured markdown spec through a browser-based Q&A flow |
|
|
497
|
+
| **[Divoom Display](docs/divoom.md)** | Mirror orchestrator and specialist-agent activity to a Divoom MiniToo Bluetooth display |
|
|
488
498
|
|
|
489
499
|
### ⚙️ Config & Reference
|
|
490
500
|
|
|
@@ -492,16 +502,17 @@ Use this section as a map: start with installation, then jump to features, confi
|
|
|
492
502
|
|-----|----------------|
|
|
493
503
|
| **[Configuration](docs/configuration.md)** | Config file locations, JSONC support, prompt overrides, and full option reference |
|
|
494
504
|
| **[Maintainer Guide](docs/maintainers.md)** | Issue triage rules, label meanings, support routing, and repo maintenance workflow |
|
|
495
|
-
| **[Skills](docs/skills.md)** | Built-in and recommended skills such as `simplify`, `agent-browser`, and `
|
|
505
|
+
| **[Skills](docs/skills.md)** | Built-in and recommended skills such as `simplify`, `agent-browser`, `codemap`, and `clonedeps` |
|
|
496
506
|
| **[MCPs](docs/mcps.md)** | `websearch`, `context7`, `grep_app`, and how MCP permissions work per agent |
|
|
497
507
|
| **[Tools](docs/tools.md)** | Built-in tool capabilities like `webfetch`, LSP tools, code search, and formatters |
|
|
498
508
|
|
|
499
|
-
### 💡
|
|
509
|
+
### 💡 Presets
|
|
500
510
|
|
|
501
511
|
| Doc | What it covers |
|
|
502
512
|
|-----|----------------|
|
|
503
513
|
| **[Author's Preset](docs/authors-preset.md)** | The author's daily mixed-provider setup |
|
|
504
514
|
| **[$30 Preset](docs/thirty-dollars-preset.md)** | A budget mixed-provider setup for around $30/month |
|
|
515
|
+
| **[OpenCode Go Preset](docs/opencode-go-preset.md)** | The bundled `opencode-go` preset generated by the installer |
|
|
505
516
|
|
|
506
517
|
---
|
|
507
518
|
|
|
@@ -512,7 +523,7 @@ Use this section as a map: start with installation, then jump to features, confi
|
|
|
512
523
|
<p><sub>Every merged contribution leaves a mark on the realm.</sub></p>
|
|
513
524
|
|
|
514
525
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
515
|
-
[](#contributors-)
|
|
516
527
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
517
528
|
</div>
|
|
518
529
|
|
|
@@ -582,6 +593,8 @@ Use this section as a map: start with installation, then jump to features, confi
|
|
|
582
593
|
<tr>
|
|
583
594
|
<td align="center" valign="top" width="16.66%"><a href="https://github.com/gustavocaiano"><img src="https://avatars.githubusercontent.com/u/104129313?v=4?s=100" width="100px;" alt="Gustavo Caiano"/><br /><sub><b>Gustavo Caiano</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=gustavocaiano" title="Code">💻</a></td>
|
|
584
595
|
<td align="center" valign="top" width="16.66%"><a href="https://github.com/ThomasMldr"><img src="https://avatars.githubusercontent.com/u/6631765?v=4?s=100" width="100px;" alt="Thomas Mulder"/><br /><sub><b>Thomas Mulder</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=ThomasMldr" title="Code">💻</a></td>
|
|
596
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/maou-shonen"><img src="https://avatars.githubusercontent.com/u/22576780?v=4?s=100" width="100px;" alt="魔王少年(maou shonen)"/><br /><sub><b>魔王少年(maou shonen)</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=maou-shonen" title="Code">💻</a></td>
|
|
597
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/jelasin"><img src="https://avatars.githubusercontent.com/u/97788570?v=4?s=100" width="100px;" alt=" Jelasin"/><br /><sub><b> Jelasin</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=jelasin" title="Code">💻</a></td>
|
|
585
598
|
</tr>
|
|
586
599
|
</tbody>
|
|
587
600
|
</table>
|
package/dist/cli/config-io.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ConfigMergeResult, DetectedConfig, InstallConfig, OpenCodeConfig } from './types';
|
|
2
|
+
export declare function warmOpenCodePluginCache(): Promise<ConfigMergeResult | null>;
|
|
2
3
|
/**
|
|
3
4
|
* Strip JSON comments (single-line // and multi-line) and trailing commas for JSONC support.
|
|
4
5
|
*/
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DivoomStatus } from '../integrations/divoom/types';
|
|
2
|
+
export type DivoomCliResult = {
|
|
3
|
+
exitCode: number;
|
|
4
|
+
message?: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
};
|
|
7
|
+
export type DivoomCliOptions = {
|
|
8
|
+
cwd?: string;
|
|
9
|
+
dryRun?: boolean;
|
|
10
|
+
detector?: () => Promise<string | null>;
|
|
11
|
+
transportFactory?: (config: {
|
|
12
|
+
status: DivoomStatus;
|
|
13
|
+
directory: string;
|
|
14
|
+
}) => {
|
|
15
|
+
sendStatus(update: {
|
|
16
|
+
status: DivoomStatus;
|
|
17
|
+
reason: string;
|
|
18
|
+
timestamp: number;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export declare function runDivoomCli(args: string[], options?: DivoomCliOptions): Promise<DivoomCliResult>;
|
|
23
|
+
export declare function detectDivoomAddress(): Promise<string | null>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type PluginConfig } from '../config/schema';
|
|
3
|
+
export type DoctorArgs = {
|
|
4
|
+
json?: boolean;
|
|
5
|
+
error?: string;
|
|
6
|
+
help?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare function parseDoctorArgs(args: string[]): DoctorArgs;
|
|
9
|
+
export type ConfigCheckResult = {
|
|
10
|
+
scope: 'user' | 'project';
|
|
11
|
+
path: string | null;
|
|
12
|
+
exists: boolean;
|
|
13
|
+
ok: boolean;
|
|
14
|
+
config?: PluginConfig;
|
|
15
|
+
error?: {
|
|
16
|
+
kind: 'invalid-json' | 'invalid-schema' | 'read-error';
|
|
17
|
+
message: string;
|
|
18
|
+
issues?: z.ZodIssue[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export type PresetCheckResult = {
|
|
22
|
+
preset: string;
|
|
23
|
+
ok: boolean;
|
|
24
|
+
error?: {
|
|
25
|
+
kind: 'missing-preset';
|
|
26
|
+
message: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export type DoctorResult = {
|
|
30
|
+
ok: boolean;
|
|
31
|
+
project: string;
|
|
32
|
+
configs: ConfigCheckResult[];
|
|
33
|
+
presetCheck?: PresetCheckResult;
|
|
34
|
+
};
|
|
35
|
+
export declare function runDoctorCheck(cwd: string): DoctorResult;
|
|
36
|
+
export declare function formatHumanDoctorResult(result: DoctorResult): string;
|
|
37
|
+
export declare function formatJsonDoctorResult(result: DoctorResult): string;
|
|
38
|
+
export declare function doctor(args: DoctorArgs): Promise<number>;
|