oh-my-opencode-slim 2.2.0 → 2.2.1
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.ja-JP.md +108 -114
- package/README.ko-KR.md +135 -118
- package/README.md +89 -145
- package/README.zh-CN.md +107 -114
- package/dist/cli/index.js +8 -14
- package/dist/cli/providers.d.ts +11 -4
- package/dist/config/constants.d.ts +1 -1
- package/dist/index.js +107 -115
- package/dist/multiplexer/zellij/index.d.ts +1 -1
- package/dist/tui.js +1 -7
- package/package.json +1 -1
- package/src/skills/codemap.md +0 -2
- package/src/skills/verification-planning/SKILL.md +2 -3
- package/src/skills/release-smoke-test/SKILL.md +0 -159
package/README.zh-CN.md
CHANGED
|
@@ -22,20 +22,28 @@
|
|
|
22
22
|
|
|
23
23
|
</div>
|
|
24
24
|
|
|
25
|
-
---
|
|
26
|
-
|
|
27
25
|
## 什么是该插件?
|
|
28
26
|
|
|
29
27
|
oh-my-opencode-slim 是一个用于 OpenCode 的智能体编排插件。它内置了一支专业的智能体团队,可以在同一个编排者(Orchestrator)下,完成侦察代码库、查询最新文档、审查架构、处理 UI 工作以及执行范围明确的实现任务。
|
|
30
28
|
|
|
31
|
-
其核心理念非常简单:与其强迫单个模型做所有事情,本插件会将工作的每个部分路由到最适合它的智能体,从而平衡**质量、速度和成本**。
|
|
29
|
+
其核心理念非常简单:与其强迫单个模型做所有事情,本插件会将工作的每个部分路由到最适合它的智能体,从而平衡**质量、速度和成本**。Orchestrator 负责规划工作图,将专家作为后台任务派发,并在继续前整合它们的结果。
|
|
30
|
+
|
|
31
|
+
### ✨ 亮点
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
- **[七位专业智能体](#meet-the-pantheon)** —— Orchestrator、Explorer、Oracle、Council、Librarian、Designer 和 Fixer。每部分工作都会交给最适合的智能体;可跨任意提供商混用任意模型。
|
|
34
|
+
- **[后台编排](docs/background-orchestration.md)** —— Orchestrator 将专家作为后台任务派发、跟踪并整合结果后再继续;默认并行工作。
|
|
35
|
+
- **[内置 Skills](#skills)** —— 如 `deepwork`、`codemap`、`verification-planning` 和 `reflect` 等基于提示词的工作流,按智能体分配。
|
|
36
|
+
- **[Council](docs/council.md)** —— 使用 `@council` 针对同一问题并行运行多个模型,并综合为一个答案。
|
|
37
|
+
- **[Companion](docs/companion.md)** —— 可选的浮动桌面窗口,显示哪些智能体正在运行,包括并行后台专家。
|
|
38
|
+
- **[多路复用器集成](docs/multiplexer-integration.md)** —— 在 Tmux、Zellij、Herdr 或 cmux 窗格中实时观察智能体工作。
|
|
39
|
+
- **[预设切换](docs/preset-switching.md)** —— 使用 `/preset` 在运行时更换整支团队的模型。
|
|
40
|
+
- **[代码智能工具](docs/tools.md)** —— LSP 工具、支持 25 种语言的 AST 感知搜索,以及用于 Web 搜索、文档和 GitHub 代码搜索的内置 MCP。
|
|
41
|
+
- **[完全可定制](docs/configuration.md)** —— 自定义智能体、提示词覆盖、按智能体控制的 Skill/MCP 权限,以及[项目本地定制](docs/project-local-customization.md)。
|
|
34
42
|
|
|
35
43
|
### OpenAI GPT-5.6
|
|
36
44
|
|
|
37
45
|
<p align="center">
|
|
38
|
-
<img src="img/openai-gpt-5-6-pantheon.jpeg" alt="OpenAI GPT-5.6 众神殿:Terra、Sol 和 Luna" width="
|
|
46
|
+
<img src="img/openai-gpt-5-6-pantheon.jpeg" alt="OpenAI GPT-5.6 众神殿:Terra、Sol 和 Luna" width="100%">
|
|
39
47
|
</p>
|
|
40
48
|
|
|
41
49
|
默认的 [OpenAI 预设](docs/openai-preset.md) 将 Terra 映射为 Orchestrator、Sol 映射为 Oracle、Luna 映射为快速专家通道。
|
|
@@ -146,20 +154,29 @@ bun run build
|
|
|
146
154
|
"fixer": { "model": "openai/gpt-5.6-luna", "variant": "medium", "skills": [], "mcps": [] }
|
|
147
155
|
},
|
|
148
156
|
"opencode-go": {
|
|
149
|
-
"orchestrator": { "model": "opencode-go/
|
|
157
|
+
"orchestrator": { "model": "opencode-go/minimax-m3", "variant": "max", "skills": [ "*" ], "mcps": [ "*", "!context7" ] },
|
|
150
158
|
"oracle": { "model": "opencode-go/qwen3.7-max", "variant": "max", "skills": ["simplify"], "mcps": [] },
|
|
151
|
-
"librarian": { "model": "opencode-go/deepseek-v4-flash", "skills": [], "mcps": [ "websearch", "context7", "gh_grep" ] },
|
|
152
|
-
"explorer": { "model": "opencode-go/deepseek-v4-flash", "skills": [], "mcps": [] },
|
|
159
|
+
"librarian": { "model": "opencode-go/deepseek-v4-flash", "variant": "high", "skills": [], "mcps": [ "websearch", "context7", "gh_grep" ] },
|
|
160
|
+
"explorer": { "model": "opencode-go/deepseek-v4-flash", "variant": "max", "skills": [], "mcps": [] },
|
|
153
161
|
"designer": { "model": "opencode-go/kimi-k2.7-code", "variant": "medium", "skills": [], "mcps": [] },
|
|
154
|
-
"fixer": { "model": "opencode-go/deepseek-v4-flash", "variant": "high", "skills": [], "mcps": [] }
|
|
162
|
+
"fixer": { "model": "opencode-go/deepseek-v4-flash", "variant": "high", "skills": [], "mcps": [] },
|
|
163
|
+
"observer": { "model": "opencode-go/mimo-v2.5", "variant": "max", "skills": [], "mcps": [] }
|
|
155
164
|
}
|
|
156
165
|
}
|
|
157
166
|
}
|
|
158
167
|
```
|
|
159
168
|
|
|
169
|
+
### 预设文档
|
|
170
|
+
|
|
171
|
+
- **[OpenAI 预设](docs/openai-preset.md)** —— 默认生成的预设;所有智能体均使用 OpenAI 模型。
|
|
172
|
+
- **[OpenCode Go 预设](docs/opencode-go-preset.md)** —— 智能体使用 OpenCode Go 模型;由于其 Orchestrator 模型不支持多模态,因此启用 Observer 进行视觉分析。
|
|
173
|
+
- **[作者的预设](docs/authors-preset.md)** —— 作者日常使用的精确配置,包含第三方 Skills。
|
|
174
|
+
- **[$30 预设](docs/thirty-dollars-preset.md)** —— 围绕 Codex Plus 和 GitHub Copilot Pro 构建的混合服务商方案,每月约 30 美元。
|
|
175
|
+
- **[OpenCode Zen 免费预设](docs/opencode-zen-free-preset.md)** —— 所有智能体均使用 opencode 免费模型;无需使用费用。
|
|
176
|
+
|
|
160
177
|
### 针对其他服务商
|
|
161
178
|
|
|
162
|
-
|
|
179
|
+
要使用自定义模型提供商或混合服务商配置,请参阅完整参考 **[配置](docs/configuration.md)**。
|
|
163
180
|
|
|
164
181
|
### ✅ 验证您的安装
|
|
165
182
|
|
|
@@ -184,98 +201,6 @@ ping all agents
|
|
|
184
201
|
|
|
185
202
|
---
|
|
186
203
|
|
|
187
|
-
### V2 新功能
|
|
188
|
-
|
|
189
|
-
V2 将 oh-my-opencode-slim 变成了以调度器为核心的多智能体工作流系统。Orchestrator 专注于规划、委派、结果整合与验证,而专家智能体在各自的工作通道中完成任务。
|
|
190
|
-
|
|
191
|
-
- **[后台智能体](#后台智能体)** - Orchestrator 现在会把专家作为后台任务派发,跟踪任务/会话 ID,等待完成事件,并在继续之前整合结果。
|
|
192
|
-
- **[Companion](#companion)** - 可选的浮动桌面窗口会显示当前活跃的智能体,包括并行运行的后台专家。
|
|
193
|
-
- **[Deepwork](#deepwork)** - 面向大型、多文件、高风险或分阶段编码工作的结构化工作流,使用持久化计划文件和 Oracle 评审关卡。
|
|
194
|
-
- **[验证规划](#验证规划)** - 在非平凡实现前规划项目特定的证据路径;当系统需要更易被智能体理解时,可加入验证能力。
|
|
195
|
-
- **[Reflect](#reflect)** - 回顾重复出现的工作模式,并建议可复用的 skill、智能体、命令、配置规则、提示词规则或项目 playbook。
|
|
196
|
-
- **[Worktrees](#worktrees)** - 将 Git worktree 作为隔离编码通道管理,并为复杂、高风险或并行任务提供安全协议。
|
|
197
|
-
- **[oh-my-opencode-slim Skill](#oh-my-opencode-slim-skill)** - 随包提供的配置技能,可安全调优模型、提示词、自定义智能体、MCP 访问、预设和插件行为。
|
|
198
|
-
|
|
199
|
-
#### 后台智能体
|
|
200
|
-
|
|
201
|
-
V2 将后台专家作为默认心智模型:Orchestrator 规划工作图,启动合适的智能体,避免重叠的写入所有权,并在处理终端任务结果后再继续行动。
|
|
202
|
-
|
|
203
|
-
完整调度模型见 **[后台编排](docs/v2-background-orchestration.md)**。
|
|
204
|
-
|
|
205
|
-
#### Companion
|
|
206
|
-
|
|
207
|
-
可选 Companion 是一个用于展示实时智能体活动的浮动桌面状态窗口。它显示当前会话状态和活跃智能体,让后台工作一目了然。
|
|
208
|
-
|
|
209
|
-
<div align="center">
|
|
210
|
-
<img src="img/companion.gif" alt="Companion showing active agents" width="600">
|
|
211
|
-
<p><i>左下角视觉伴侣。</i></p>
|
|
212
|
-
</div>
|
|
213
|
-
|
|
214
|
-
交互式安装期间,安装器会询问是否启用 Companion,并默认选择 `no`。自动化安装可显式启用:
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
bunx oh-my-opencode-slim@latest install --companion=yes
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
配置、位置、尺寸和安装详情见 **[Companion](docs/companion.md)**。
|
|
221
|
-
|
|
222
|
-
#### Deepwork
|
|
223
|
-
|
|
224
|
-
Deepwork 适用于重型编码会话:大范围重构、多阶段功能、高风险架构变更,或需要持久计划的工作。它会创建本地 markdown 进度文件,使用 Oracle 评审关卡,并保持实现阶段结构化。
|
|
225
|
-
|
|
226
|
-
启动方式:
|
|
227
|
-
|
|
228
|
-
```text
|
|
229
|
-
/deepwork <heavy coding task>
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
何时使用以及工作流如何运行,请参阅 **[Skills](docs/skills.md#deepwork)**。
|
|
233
|
-
|
|
234
|
-
#### 验证规划
|
|
235
|
-
|
|
236
|
-
验证规划让 Orchestrator 在开始非平凡实现前,先决定如何证明变更有效。它会界定要成立的主张、设计项目特定的证据路径;当系统无法直接向智能体揭示决定性状态时,还可创建小型验证能力。面对不熟悉的能力时,它会在选择方案前请 Librarian 做有针对性的研究。
|
|
237
|
-
|
|
238
|
-
证据路径工作流及其安全边界见 **[Skills](docs/skills.md#verification-planning)**。
|
|
239
|
-
|
|
240
|
-
#### Reflect
|
|
241
|
-
|
|
242
|
-
Reflect 帮助 Orchestrator 从重复出现的工作流摩擦中学习。它会回顾近期工作和现有资产,然后建议最小且有用的改进:skill、自定义智能体、命令、配置规则、提示词规则、MCP 权限变更或项目 playbook。如果证据不足,它应建议什么都不创建。
|
|
243
|
-
|
|
244
|
-
直接使用:
|
|
245
|
-
|
|
246
|
-
```text
|
|
247
|
-
/reflect
|
|
248
|
-
/reflect release workflow and checks
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
也可以使用自然语言提示:
|
|
252
|
-
|
|
253
|
-
```text
|
|
254
|
-
reflect on my recent workflows
|
|
255
|
-
find repeated work worth turning into reusable instructions
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
完整工作流和安全规则见 **[Skills](docs/skills.md#reflect)**。
|
|
259
|
-
|
|
260
|
-
#### Worktrees
|
|
261
|
-
|
|
262
|
-
Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认位于 `.slim/worktrees/<slug>/`。Orchestrator 负责这些通道的生命周期,在 `.slim/worktrees.json` 中跟踪状态,在通道内调度专家智能体,并在修改 Git 状态前要求明确确认。
|
|
263
|
-
|
|
264
|
-
安全协议见 **[Skills](docs/skills.md#worktrees)**。
|
|
265
|
-
|
|
266
|
-
#### oh-my-opencode-slim Skill
|
|
267
|
-
|
|
268
|
-
内置的 `oh-my-opencode-slim` skill 可帮助 Orchestrator 配置和改进插件本身。可用于模型调优、自定义智能体、提示词覆盖、skill/MCP 权限、预设、可选智能体、后台编排以及反复出现的工作流摩擦。
|
|
269
|
-
|
|
270
|
-
<div align="center">
|
|
271
|
-
<img src="img/oh-my-opencode-skill.png" alt="oh-my-opencode-slim skill in use" width="600">
|
|
272
|
-
<p><i>让内置技能帮助调优和改进你的智能体设置。</i></p>
|
|
273
|
-
</div>
|
|
274
|
-
|
|
275
|
-
示例和安全规则见 **[Skills](docs/skills.md#oh-my-opencode-slim)**。
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
204
|
<a id="meet-the-pantheon"></a>
|
|
280
205
|
|
|
281
206
|
## 🏛️ 认识众神殿
|
|
@@ -309,12 +234,12 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
309
234
|
</tr>
|
|
310
235
|
<tr>
|
|
311
236
|
<td colspan="2">
|
|
312
|
-
<b>推荐模型:</b> <code>openai/gpt-5.6-terra (medium)</code> <code>anthropic/claude-opus-4
|
|
237
|
+
<b>推荐模型:</b> <code>openai/gpt-5.6-terra (medium)</code> <code>anthropic/claude-fable-5</code> <code>anthropic/claude-opus-4-8</code>
|
|
313
238
|
</td>
|
|
314
239
|
</tr>
|
|
315
240
|
<tr>
|
|
316
241
|
<td colspan="2">
|
|
317
|
-
<b>模型选用指南:</b>
|
|
242
|
+
<b>模型选用指南:</b> 选择您最强的规划和判断模型。Orchestrator 是工作流管理者:它规划工作、调度后台专家、整合结果并验证产出,因此相比单纯的工作吞吐量,它更需要可靠的指令遵循能力和高层次的技术判断力。
|
|
318
243
|
</td>
|
|
319
244
|
</tr>
|
|
320
245
|
</table>
|
|
@@ -350,12 +275,12 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
350
275
|
</tr>
|
|
351
276
|
<tr>
|
|
352
277
|
<td colspan="2">
|
|
353
|
-
<b>推荐模型:</b> <
|
|
278
|
+
<b>推荐模型:</b> <code>openai/gpt-5.3-codex</code> <code>cerebras/zai-glm-4.7</code> <code>fireworks-ai/accounts/fireworks/routers/kimi-k2p6-turbo</code>
|
|
354
279
|
</td>
|
|
355
280
|
</tr>
|
|
356
281
|
<tr>
|
|
357
282
|
<td colspan="2">
|
|
358
|
-
<b>模型选用指南:</b> 选择快速、低成本的模型。Explorer
|
|
283
|
+
<b>模型选用指南:</b> 选择快速、低成本的模型。Explorer 处理宽泛的侦察工作,因此速度和效率通常比使用最强推理模型更重要。
|
|
359
284
|
</td>
|
|
360
285
|
</tr>
|
|
361
286
|
</table>
|
|
@@ -391,7 +316,7 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
391
316
|
</tr>
|
|
392
317
|
<tr>
|
|
393
318
|
<td colspan="2">
|
|
394
|
-
<b>推荐模型:</b> <code>openai/gpt-5.6-sol (
|
|
319
|
+
<b>推荐模型:</b> <code>openai/gpt-5.6-sol (xhigh)</code> <code>anthropic/claude-fable-5</code> <code>anthropic/claude-opus-4-8 (xhigh)</code>
|
|
395
320
|
</td>
|
|
396
321
|
</tr>
|
|
397
322
|
<tr>
|
|
@@ -481,7 +406,7 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
481
406
|
</tr>
|
|
482
407
|
<tr>
|
|
483
408
|
<td colspan="2">
|
|
484
|
-
<b>推荐模型:</b> <
|
|
409
|
+
<b>推荐模型:</b> <code>openai/gpt-5.3-codex</code> <code>cerebras/zai-glm-4.7</code> <code>fireworks-ai/accounts/fireworks/routers/kimi-k2p6-turbo</code>
|
|
485
410
|
</td>
|
|
486
411
|
</tr>
|
|
487
412
|
<tr>
|
|
@@ -522,7 +447,7 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
522
447
|
</tr>
|
|
523
448
|
<tr>
|
|
524
449
|
<td colspan="2">
|
|
525
|
-
<b>推荐模型:</b> <code>google/gemini-3.
|
|
450
|
+
<b>推荐模型:</b> <code>google/gemini-3.5-flash</code> <code>moonshotai/kimi-k2.7-code</code>
|
|
526
451
|
</td>
|
|
527
452
|
</tr>
|
|
528
453
|
<tr>
|
|
@@ -563,12 +488,12 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
563
488
|
</tr>
|
|
564
489
|
<tr>
|
|
565
490
|
<td colspan="2">
|
|
566
|
-
<b>推荐模型:</b> <code>openai/gpt-5.6-luna (medium)</code>
|
|
491
|
+
<b>推荐模型:</b> <code>openai/gpt-5.6-luna (medium)</code> <code>anthropic/claude-sonnet-4-6</code>
|
|
567
492
|
</td>
|
|
568
493
|
</tr>
|
|
569
494
|
<tr>
|
|
570
495
|
<td colspan="2">
|
|
571
|
-
<b>模型选用指南:</b>
|
|
496
|
+
<b>模型选用指南:</b> 为范围明确的实现工作选择可靠的编程模型。Fixer 从 Orchestrator 接收具体计划或受限指令,因此很适合高效完成执行任务和直接的代码变更。
|
|
572
497
|
</td>
|
|
573
498
|
</tr>
|
|
574
499
|
</table>
|
|
@@ -580,7 +505,7 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
580
505
|
### Observer:静默的见证者
|
|
581
506
|
|
|
582
507
|
> [!NOTE]
|
|
583
|
-
> **为什么要独立出一个智能体?** 如果您的 Orchestrator 模型不是多模态模型,可以启用 Observer
|
|
508
|
+
> **为什么要独立出一个智能体?** 如果您的 Orchestrator 模型不是多模态模型,可以启用 Observer 来处理图像、屏幕截图和其他视觉文件。Observer 默认是禁用的,它在无需您更改核心推理模型的情况下,为 Orchestrator 赋予了专用的多模态读取能力。只需在您的配置中设置 `disabled_agents: []` 并指定一个 `observer` 模型即可。自带的 `opencode-go` 安装预设会自动执行此操作,因为其 GLM Orchestrator 不是多模态模型。省略 `image_routing` 会保留现有的条件式 Observer 行为。仅在启用 Observer 时设置 `image_routing: "auto"`,或设为 `"direct"` 以始终将图片附件直接传给 Orchestrator。
|
|
584
509
|
|
|
585
510
|
<table>
|
|
586
511
|
<tr>
|
|
@@ -594,7 +519,7 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
594
519
|
|
|
595
520
|
- 图像、屏幕截图、图表 → `read` 工具(原生图像支持)
|
|
596
521
|
- PDF 和二进制文档 → `read` 工具(文本 + 结构提取)
|
|
597
|
-
- **默认禁用** -- 通过设置 `"disabled_agents": []` 和配置具有视觉能力的模型来启用;若使用 `--preset=opencode-go` 预设安装,将自动使用 `opencode-go/
|
|
522
|
+
- **默认禁用** -- 通过设置 `"disabled_agents": []` 和配置具有视觉能力的模型来启用;若使用 `--preset=opencode-go` 预设安装,将自动使用 `opencode-go/mimo-v2.5` 启用它。启用时,图片附件默认会路由至 Observer;设置 `"image_routing": "direct"` 可将其保留给 Orchestrator。
|
|
598
523
|
|
|
599
524
|
</td>
|
|
600
525
|
</tr>
|
|
@@ -617,6 +542,50 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
617
542
|
|
|
618
543
|
---
|
|
619
544
|
|
|
545
|
+
<a id="skills"></a>
|
|
546
|
+
|
|
547
|
+
## 🧩 Skills
|
|
548
|
+
|
|
549
|
+
Skills 是注入智能体系统提示词的、基于提示词的指令,用于引导决策、工作流和工具使用。与 MCP(运行中的服务器)不同,Skill 不运行任何进程——它是智能体在任务需要时激活的专用操作手册。安装程序内置八个 Skill,并在插件自动更新时保持更新;本地自定义内容会被保留。
|
|
550
|
+
|
|
551
|
+
| Skill | 用途 | 默认智能体 | 调用方式 |
|
|
552
|
+
|:-----:|------|------------|----------|
|
|
553
|
+
| <img src="img/skills/codemap.webp" width="120" alt="Codemap artifact"><br>[`codemap`](src/skills/codemap/SKILL.md) | 分层仓库地图,让智能体无需反复阅读全部内容也能理解代码库 | `orchestrator` | `run codemap` |
|
|
554
|
+
| <img src="img/skills/deepwork.webp" width="120" alt="Deepwork artifact"><br>[`deepwork`](src/skills/deepwork/SKILL.md) | 面向大型、高风险、多阶段编码会话的结构化工作流,包含审查关卡 | `orchestrator` | `/deepwork <task>` |
|
|
555
|
+
| <img src="img/skills/verification-planning.webp" width="120" alt="Verification Planning artifact"><br>[`verification-planning`](src/skills/verification-planning/SKILL.md) | 在非平凡变更前规划项目特定的证据路径 | `orchestrator` | 非平凡工作前自动调用 |
|
|
556
|
+
| <img src="img/skills/simplify.webp" width="120" alt="Simplify artifact"><br>[`simplify`](src/skills/simplify/SKILL.md) | 保持行为不变地简化代码,提升可读性和可维护性 | `oracle` | 请求简化或在审查期间调用 |
|
|
557
|
+
| <img src="img/skills/worktrees.webp" width="120" alt="Worktrees artifact"><br>[`worktrees`](src/skills/worktrees/SKILL.md) | 将 Git worktree 用作安全、隔离的编码通道,适合高风险或并行工作 | `orchestrator` | `work in a worktree` |
|
|
558
|
+
| <img src="img/skills/clonedeps.webp" width="120" alt="Clonedeps artifact"><br>[`clonedeps`](src/skills/clonedeps/SKILL.md) | 在本地克隆依赖源码,供智能体检查库内部实现 | `orchestrator` | `clone dependencies` |
|
|
559
|
+
| <img src="img/skills/reflect.webp" width="120" alt="Reflect artifact"><br>[`reflect`](src/skills/reflect/SKILL.md) | 将重复的工作流摩擦转化为可复用的 Skill、智能体或配置 | `orchestrator` | `/reflect` |
|
|
560
|
+
| <img src="img/skills/oh-my-opencode-slim.webp" width="120" alt="oh-my-opencode-slim artifact"><br>[`oh-my-opencode-slim`](src/skills/oh-my-opencode-slim/SKILL.md) | 配置并安全改进插件设置本身 | `orchestrator` | 请求调整您的设置 |
|
|
561
|
+
|
|
562
|
+
Skill 分配即权限授予——智能体只能激活被授予的 Skill。请在 `~/.config/opencode/oh-my-opencode-slim.json` 中通过每个智能体的 `skills` 数组进行配置:显式列表、`"*"` 表示全部,或 `"!skill-name"` 用于拒绝某个 Skill。
|
|
563
|
+
|
|
564
|
+
完整文档请参阅 **[Skills](docs/skills.md)**,或浏览图文概览 **[ohmyopencodeslim.com/skills](https://ohmyopencodeslim.com/skills)**。
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
<a id="companion"></a>
|
|
569
|
+
|
|
570
|
+
## 🖥️ Companion
|
|
571
|
+
|
|
572
|
+
可选的 Companion 是一个用于展示实时智能体活动的浮动桌面状态窗口。它显示当前会话状态和哪些智能体正在运行,让后台工作一目了然。
|
|
573
|
+
|
|
574
|
+
<div align="center">
|
|
575
|
+
<img src="img/companion.gif" alt="Companion showing active agents" width="600">
|
|
576
|
+
<p><i>左下角视觉伴侣。</i></p>
|
|
577
|
+
</div>
|
|
578
|
+
|
|
579
|
+
交互式安装期间,安装器会询问是否启用 Companion,并默认选择 `no`。自动化安装可显式启用:
|
|
580
|
+
|
|
581
|
+
```bash
|
|
582
|
+
bunx oh-my-opencode-slim@latest install --companion=yes
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
配置、位置、尺寸和安装详情见 **[Companion](docs/companion.md)**。
|
|
586
|
+
|
|
587
|
+
---
|
|
588
|
+
|
|
620
589
|
## 📚 文档
|
|
621
590
|
|
|
622
591
|
请将本节作为地图:先从安装开始,再根据需要跳转到特性、配置或示例预设。
|
|
@@ -644,6 +613,7 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
644
613
|
|-----|----------------|
|
|
645
614
|
| **[安装指南](docs/installation.md)** | 安装插件、使用 CLI 标志、重置配置并排查设置问题 |
|
|
646
615
|
| **[配置](docs/configuration.md)** | 配置文件位置、JSONC 支持、提示词覆盖和完整选项参考 |
|
|
616
|
+
| **[项目定制](docs/project-local-customization.md)** | 仓库特定的自定义智能体、提示词覆盖、按智能体分配的 Skill 以及优先级 |
|
|
647
617
|
| **[后台编排](docs/background-orchestration.md)** | 围绕原生后台子智能体构建的调度器优先 Orchestrator 模型 |
|
|
648
618
|
| **[维护者指南](docs/maintainers.md)** | issue 分流规则、标签含义、支持路由和仓库维护工作流 |
|
|
649
619
|
| **[Skills](docs/skills.md)** | `simplify`、`codemap`、`clonedeps`、`deepwork`、`verification-planning`、`reflect`、`worktrees` 和 `oh-my-opencode-slim` 等捆绑技能 |
|
|
@@ -667,7 +637,7 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
667
637
|
<p><sub>每一次合并的贡献都在这片领域留下了印记。</sub></p>
|
|
668
638
|
|
|
669
639
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
670
|
-
[](#contributors-)
|
|
671
641
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
672
642
|
</div>
|
|
673
643
|
|
|
@@ -756,6 +726,29 @@ Worktrees 将 Git worktree 作为安全、隔离的编码通道管理,默认
|
|
|
756
726
|
<td align="center" valign="top" width="16.66%"><a href="https://github.com/Qesire"><img src="https://avatars.githubusercontent.com/u/102657430?v=4?s=100" width="100px;" alt="Knowingthesea_Qesire"/><br /><sub><b>Knowingthesea_Qesire</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=Qesire" title="Code">💻</a></td>
|
|
757
727
|
<td align="center" valign="top" width="16.66%"><a href="http://www.flyinghail.net/"><img src="https://avatars.githubusercontent.com/u/157430?v=4?s=100" width="100px;" alt="FENG Hao"/><br /><sub><b>FENG Hao</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=flyinghail" title="Code">💻</a></td>
|
|
758
728
|
<td align="center" valign="top" width="16.66%"><a href="https://github.com/smatheusblu"><img src="https://avatars.githubusercontent.com/u/5666794?v=4?s=100" width="100px;" alt="Matheus Nogueira Silveira"/><br /><sub><b>Matheus Nogueira Silveira</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=smatheusblu" title="Code">💻</a></td>
|
|
729
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/sktr"><img src="https://avatars.githubusercontent.com/u/44969514?v=4?s=100" width="100px;" alt="sktr"/><br /><sub><b>sktr</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=sktr" title="Code">💻</a></td>
|
|
730
|
+
</tr>
|
|
731
|
+
<tr>
|
|
732
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/bobbyunknown"><img src="https://avatars.githubusercontent.com/u/62272380?v=4?s=100" width="100px;" alt="Insomnia"/><br /><sub><b>Insomnia</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=bobbyunknown" title="Code">💻</a></td>
|
|
733
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/andrescastane"><img src="https://avatars.githubusercontent.com/u/13487870?v=4?s=100" width="100px;" alt="Andres Castañeda"/><br /><sub><b>Andres Castañeda</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=andrescastane" title="Code">💻</a></td>
|
|
734
|
+
<td align="center" valign="top" width="16.66%"><a href="https://zaradacht.com/"><img src="https://avatars.githubusercontent.com/u/24251016?v=4?s=100" width="100px;" alt="Zaradacht Taifour (Zack)"/><br /><sub><b>Zaradacht Taifour (Zack)</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=Zaradacht" title="Code">💻</a></td>
|
|
735
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/fslse"><img src="https://avatars.githubusercontent.com/u/90545544?v=4?s=100" width="100px;" alt="fslse"/><br /><sub><b>fslse</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=fslse" title="Code">💻</a></td>
|
|
736
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/linze0721"><img src="https://avatars.githubusercontent.com/u/178997622?v=4?s=100" width="100px;" alt="萧瑟"/><br /><sub><b>萧瑟</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=linze0721" title="Code">💻</a></td>
|
|
737
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/SisyphusZheng"><img src="https://avatars.githubusercontent.com/u/146103794?v=4?s=100" width="100px;" alt="Zhi"/><br /><sub><b>Zhi</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=SisyphusZheng" title="Code">💻</a></td>
|
|
738
|
+
</tr>
|
|
739
|
+
<tr>
|
|
740
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/824156793"><img src="https://avatars.githubusercontent.com/u/19755784?v=4?s=100" width="100px;" alt="lilili"/><br /><sub><b>lilili</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=824156793" title="Code">💻</a></td>
|
|
741
|
+
<td align="center" valign="top" width="16.66%"><a href="http://mikehenke.com/"><img src="https://avatars.githubusercontent.com/u/119844?v=4?s=100" width="100px;" alt="Mike Henke"/><br /><sub><b>Mike Henke</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=mhenke" title="Code">💻</a></td>
|
|
742
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/imVinayPandya"><img src="https://avatars.githubusercontent.com/u/5011197?v=4?s=100" width="100px;" alt="Vinay Pandya"/><br /><sub><b>Vinay Pandya</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=imVinayPandya" title="Code">💻</a></td>
|
|
743
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/s-shank"><img src="https://avatars.githubusercontent.com/u/241541918?v=4?s=100" width="100px;" alt="Shank"/><br /><sub><b>Shank</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=s-shank" title="Code">💻</a></td>
|
|
744
|
+
<td align="center" valign="top" width="16.66%"><a href="https://rgutzen.github.io/"><img src="https://avatars.githubusercontent.com/u/16289604?v=4?s=100" width="100px;" alt="Robin Gutzen"/><br /><sub><b>Robin Gutzen</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=rgutzen" title="Code">💻</a></td>
|
|
745
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/dragon-Elec"><img src="https://avatars.githubusercontent.com/u/197374270?v=4?s=100" width="100px;" alt="Yash"/><br /><sub><b>Yash</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=dragon-Elec" title="Code">💻</a></td>
|
|
746
|
+
</tr>
|
|
747
|
+
<tr>
|
|
748
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/Jiajun0413"><img src="https://avatars.githubusercontent.com/u/184531967?v=4?s=100" width="100px;" alt="Liu Jiajun"/><br /><sub><b>Liu Jiajun</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=Jiajun0413" title="Code">💻</a></td>
|
|
749
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/umi008"><img src="https://avatars.githubusercontent.com/u/200843810?v=4?s=100" width="100px;" alt="Ulises Millán"/><br /><sub><b>Ulises Millán</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=umi008" title="Code">💻</a></td>
|
|
750
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/HighColdHC"><img src="https://avatars.githubusercontent.com/u/35870222?v=4?s=100" width="100px;" alt="HighColdHC"/><br /><sub><b>HighColdHC</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=HighColdHC" title="Code">💻</a></td>
|
|
751
|
+
<td align="center" valign="top" width="16.66%"><a href="https://hardcore.engineer/about"><img src="https://avatars.githubusercontent.com/u/401815?v=4?s=100" width="100px;" alt="Stephan Schielke"/><br /><sub><b>Stephan Schielke</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=stephanschielke" title="Code">💻</a></td>
|
|
759
752
|
</tr>
|
|
760
753
|
</tbody>
|
|
761
754
|
</table>
|
package/dist/cli/index.js
CHANGED
|
@@ -292,7 +292,7 @@ var SUBAGENT_NAMES = [
|
|
|
292
292
|
var ALL_AGENT_NAMES = ["orchestrator", ...SUBAGENT_NAMES];
|
|
293
293
|
var PROTECTED_AGENTS = new Set(["orchestrator", "councillor"]);
|
|
294
294
|
var MAX_POLL_TIME_MS = 5 * 60 * 1000;
|
|
295
|
-
var PHASE_REMINDER_TEXT = `!IMPORTANT! Scheduler workflow: plan lanes/dependencies → dispatch background specialists → track task IDs → wait for hook-driven completion → reconcile terminal results → verify. Do not poll running jobs, consume running-job output, or advance dependent work. !END!`;
|
|
295
|
+
var PHASE_REMINDER_TEXT = `!IMPORTANT! Scheduler workflow: First choose the lightest workflow that fits the work. If direct execution is justified, complete it and verify proportionately. Otherwise: plan lanes/dependencies → dispatch background specialists → track task IDs → wait for hook-driven completion → reconcile terminal results → verify. Do not poll running jobs, consume running-job output, or advance dependent work. !END!`;
|
|
296
296
|
function formatSystemReminder(text) {
|
|
297
297
|
return `<system-reminder>
|
|
298
298
|
${text}
|
|
@@ -644,12 +644,6 @@ var CUSTOM_SKILLS = [
|
|
|
644
644
|
allowedAgents: ["orchestrator"],
|
|
645
645
|
sourcePath: "src/skills/oh-my-opencode-slim"
|
|
646
646
|
},
|
|
647
|
-
{
|
|
648
|
-
name: "release-smoke-test",
|
|
649
|
-
description: "Validate packed release candidates and bugfixes before public publish",
|
|
650
|
-
allowedAgents: ["orchestrator"],
|
|
651
|
-
sourcePath: "src/skills/release-smoke-test"
|
|
652
|
-
},
|
|
653
647
|
{
|
|
654
648
|
name: "worktrees",
|
|
655
649
|
description: "Manage Git worktrees as OMO safe isolated coding lanes for complex/risky/parallel work",
|
|
@@ -671,7 +665,7 @@ var MODEL_MAPPINGS = {
|
|
|
671
665
|
fixer: { model: "openai/gpt-5.6-luna", variant: "medium" }
|
|
672
666
|
},
|
|
673
667
|
kimi: {
|
|
674
|
-
orchestrator: { model: "kimi-for-coding/k2p5" },
|
|
668
|
+
orchestrator: { model: "kimi-for-coding/k2p5", variant: "max" },
|
|
675
669
|
oracle: { model: "kimi-for-coding/k2p5", variant: "high" },
|
|
676
670
|
librarian: { model: "kimi-for-coding/k2p5", variant: "low" },
|
|
677
671
|
explorer: { model: "kimi-for-coding/k2p5", variant: "low" },
|
|
@@ -679,7 +673,7 @@ var MODEL_MAPPINGS = {
|
|
|
679
673
|
fixer: { model: "kimi-for-coding/k2p5", variant: "low" }
|
|
680
674
|
},
|
|
681
675
|
copilot: {
|
|
682
|
-
orchestrator: { model: "github-copilot/claude-opus-4.6" },
|
|
676
|
+
orchestrator: { model: "github-copilot/claude-opus-4.6", variant: "max" },
|
|
683
677
|
oracle: { model: "github-copilot/claude-opus-4.6", variant: "high" },
|
|
684
678
|
librarian: { model: "github-copilot/grok-code-fast-1", variant: "low" },
|
|
685
679
|
explorer: { model: "github-copilot/grok-code-fast-1", variant: "low" },
|
|
@@ -690,7 +684,7 @@ var MODEL_MAPPINGS = {
|
|
|
690
684
|
fixer: { model: "github-copilot/claude-sonnet-4.6", variant: "low" }
|
|
691
685
|
},
|
|
692
686
|
"zai-plan": {
|
|
693
|
-
orchestrator: { model: "zai-coding-plan/glm-5" },
|
|
687
|
+
orchestrator: { model: "zai-coding-plan/glm-5", variant: "max" },
|
|
694
688
|
oracle: { model: "zai-coding-plan/glm-5", variant: "high" },
|
|
695
689
|
librarian: { model: "zai-coding-plan/glm-5", variant: "low" },
|
|
696
690
|
explorer: { model: "zai-coding-plan/glm-5", variant: "low" },
|
|
@@ -698,13 +692,13 @@ var MODEL_MAPPINGS = {
|
|
|
698
692
|
fixer: { model: "zai-coding-plan/glm-5", variant: "low" }
|
|
699
693
|
},
|
|
700
694
|
"opencode-go": {
|
|
701
|
-
orchestrator: { model: "opencode-go/
|
|
695
|
+
orchestrator: { model: "opencode-go/minimax-m3", variant: "max" },
|
|
702
696
|
oracle: { model: "opencode-go/qwen3.7-max", variant: "max" },
|
|
703
|
-
|
|
704
|
-
|
|
697
|
+
explorer: { model: "opencode-go/deepseek-v4-flash", variant: "max" },
|
|
698
|
+
librarian: { model: "opencode-go/deepseek-v4-flash", variant: "high" },
|
|
705
699
|
designer: { model: "opencode-go/kimi-k2.7-code", variant: "medium" },
|
|
706
700
|
fixer: { model: "opencode-go/deepseek-v4-flash", variant: "high" },
|
|
707
|
-
observer: { model: "opencode-go/
|
|
701
|
+
observer: { model: "opencode-go/mimo-v2.5", variant: "max" }
|
|
708
702
|
}
|
|
709
703
|
};
|
|
710
704
|
function isGeneratedPresetName(value) {
|
package/dist/cli/providers.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export declare const MODEL_MAPPINGS: {
|
|
|
30
30
|
readonly kimi: {
|
|
31
31
|
readonly orchestrator: {
|
|
32
32
|
readonly model: "kimi-for-coding/k2p5";
|
|
33
|
+
readonly variant: "max";
|
|
33
34
|
};
|
|
34
35
|
readonly oracle: {
|
|
35
36
|
readonly model: "kimi-for-coding/k2p5";
|
|
@@ -55,6 +56,7 @@ export declare const MODEL_MAPPINGS: {
|
|
|
55
56
|
readonly copilot: {
|
|
56
57
|
readonly orchestrator: {
|
|
57
58
|
readonly model: "github-copilot/claude-opus-4.6";
|
|
59
|
+
readonly variant: "max";
|
|
58
60
|
};
|
|
59
61
|
readonly oracle: {
|
|
60
62
|
readonly model: "github-copilot/claude-opus-4.6";
|
|
@@ -80,6 +82,7 @@ export declare const MODEL_MAPPINGS: {
|
|
|
80
82
|
readonly 'zai-plan': {
|
|
81
83
|
readonly orchestrator: {
|
|
82
84
|
readonly model: "zai-coding-plan/glm-5";
|
|
85
|
+
readonly variant: "max";
|
|
83
86
|
};
|
|
84
87
|
readonly oracle: {
|
|
85
88
|
readonly model: "zai-coding-plan/glm-5";
|
|
@@ -104,17 +107,20 @@ export declare const MODEL_MAPPINGS: {
|
|
|
104
107
|
};
|
|
105
108
|
readonly 'opencode-go': {
|
|
106
109
|
readonly orchestrator: {
|
|
107
|
-
readonly model: "opencode-go/
|
|
110
|
+
readonly model: "opencode-go/minimax-m3";
|
|
111
|
+
readonly variant: "max";
|
|
108
112
|
};
|
|
109
113
|
readonly oracle: {
|
|
110
114
|
readonly model: "opencode-go/qwen3.7-max";
|
|
111
115
|
readonly variant: "max";
|
|
112
116
|
};
|
|
113
|
-
readonly
|
|
117
|
+
readonly explorer: {
|
|
114
118
|
readonly model: "opencode-go/deepseek-v4-flash";
|
|
119
|
+
readonly variant: "max";
|
|
115
120
|
};
|
|
116
|
-
readonly
|
|
121
|
+
readonly librarian: {
|
|
117
122
|
readonly model: "opencode-go/deepseek-v4-flash";
|
|
123
|
+
readonly variant: "high";
|
|
118
124
|
};
|
|
119
125
|
readonly designer: {
|
|
120
126
|
readonly model: "opencode-go/kimi-k2.7-code";
|
|
@@ -125,7 +131,8 @@ export declare const MODEL_MAPPINGS: {
|
|
|
125
131
|
readonly variant: "high";
|
|
126
132
|
};
|
|
127
133
|
readonly observer: {
|
|
128
|
-
readonly model: "opencode-go/
|
|
134
|
+
readonly model: "opencode-go/mimo-v2.5";
|
|
135
|
+
readonly variant: "max";
|
|
129
136
|
};
|
|
130
137
|
};
|
|
131
138
|
};
|
|
@@ -14,7 +14,7 @@ export declare const POLL_INTERVAL_MS = 500;
|
|
|
14
14
|
export declare const POLL_INTERVAL_BACKGROUND_MS = 2000;
|
|
15
15
|
export declare const MAX_POLL_TIME_MS: number;
|
|
16
16
|
export declare const DEFAULT_MAX_SUBAGENT_DEPTH = 3;
|
|
17
|
-
export declare const PHASE_REMINDER_TEXT = "!IMPORTANT! Scheduler workflow: plan lanes/dependencies \u2192 dispatch background specialists \u2192 track task IDs \u2192 wait for hook-driven completion \u2192 reconcile terminal results \u2192 verify. Do not poll running jobs, consume running-job output, or advance dependent work. !END!";
|
|
17
|
+
export declare const PHASE_REMINDER_TEXT = "!IMPORTANT! Scheduler workflow: First choose the lightest workflow that fits the work. If direct execution is justified, complete it and verify proportionately. Otherwise: plan lanes/dependencies \u2192 dispatch background specialists \u2192 track task IDs \u2192 wait for hook-driven completion \u2192 reconcile terminal results \u2192 verify. Do not poll running jobs, consume running-job output, or advance dependent work. !END!";
|
|
18
18
|
export declare function formatSystemReminder(text: string): string;
|
|
19
19
|
export declare const PHASE_REMINDER: string;
|
|
20
20
|
export declare const WRITABLE_FILE_OPERATIONS_RULES = "**File Operations Rules**:\n- Prefer dedicated file tools for normal code work: glob/grep/ast_grep_search for discovery, read for file contents, and edit/write/apply_patch for targeted source changes.\n- Use bash for execution and automation: git, package managers, tests, builds, scripts, diagnostics, and shell-native filesystem operations.\n- Shell is acceptable for bulk or mechanical filesystem changes when it is clearer or safer than many individual edits (for example: truncate generated logs, remove build artifacts, batch rename/move files), especially when the user explicitly asks for that shell operation.\n- Before destructive or broad shell operations, verify the target set and quote paths. Prefer a dry-run/listing first when practical.\n- Do not use cat/head/tail/sed/awk only to read code into context; use read/grep unless a shell pipeline is genuinely the better diagnostic.";
|