oh-my-dsh
oh-my-dsh: OMC-style multi-agent orchestration for DeepSeek Harness — 29 workflow skills + 12 /omd-* slash commands, one-command bundle install + agent preset.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 27, 2026
- Updated
- Sep 7, 2026
Introduction
oh-my-dsh
A multi-agent orchestration layer for DeepSeek Harness (DSH) — ports oh-my-claudecode's orchestration modes onto DSH's native primitives (workflow / subagent / ralph / goal).
Two ways to trigger: natural language (29 skills, auto-loaded by the agent) + slash commands (12
/omd-*commands). Start a session, orchestration is ready.
Quick Start
One command installs all 29 skills + 12 /omd-* commands (the OMC plugin-marketplace equivalent):
dsh plugin --profile web add github:hawk2048/oh-my-dsh
Or from npm (the npm i -g equivalent):
dsh plugin --profile web add @hawk2048/oh-my-dsh
Restart the profile, type /omd to see command candidates, or use natural language ("plan this", "autopilot, build a REST API").
Requirements
- DeepSeek Harness (
dshCLI) - pnpm —
dsh pluginforwards to pnpm
Why oh-my-dsh
- Zero configuration — one
dsh plugin addinstalls everything; the bundle self-registers, no setup wizard. - Team-first orchestration — Team is the canonical staged pipeline (
team-plan → team-prd → team-exec → team-verify → team-fix), built on DSH's nativeworkflow. - Natural language interface — describe what you want; the 29
omd-*skills auto-load, nothing to memorize. - Automatic parallelization — complex tasks fan out across parallel
subagents. - Persistent execution — Ralph / Autopilot / Ultragoal keep going until verified complete (native
ralphloops +goalcross-turn objectives). - Zero runtime overhead — adds no new host tools or runtime, just skills over DSH's native primitives, so you keep DSH's own model routing and sandbox.
- Learn from experience —
omd-skillifyextracts reusable skills;omd-rememberpersists durable notes across sessions. - Real-time visibility — the inline HUD renders live
dsh-uiprogress dashboards.
OMC correspondence
Aligned to OMC v5.3.0 (the plan → execute → review → verify pipeline + retained modes):
| OMC workflow | oh-my-dsh skill | DSH primitive |
|---|---|---|
| Plan | omd-plan | read-only exploration + parallel subagent |
| Execute | omd-execute | parallel subagent + todo_write |
| Review | omd-review | subagent_fork independent review |
| Verify | omd-verify | pwsh/bash tests + subagent re-check |
| Team | omd-team | workflow + subagent |
| Autopilot | omd-autopilot | goal + todo + subagent |
| Ralph | omd-ralph | ralph + goal verify loop |
| Deep Interview | omd-deep-interview | ask_user_question |
| Ralplan | omd-ralplan | parallel subagent drafts + arbitration |
| Research | omd-research | web_search/web_fetch + parallel subagent |
| Autoresearch | omd-autoresearch | goal + evaluator loop |
| Ultragoal | omd-ultragoal | goal + todo_write + checkpoint artifacts |
| HUD | omd-hud | inline dsh-ui dashboard (genui) |
Prompt-trigger + utility skills (natural-language only, no slash command):
| OMC trigger | oh-my-dsh skill | DSH primitive |
|---|---|---|
| tdd | omd-tdd | pwsh/bash tests + red-green-refactor |
| deepsearch | omd-deepsearch | grep/glob/read local lookup |
| deep-analyze | omd-deep-analyze | parallel subagent multi-angle |
| ultrathink | omd-ultrathink | pure reasoning (no tools first) |
| ai-slop-cleaner | omd-ai-slop-cleaner | review/edit tightening |
| omc-doctor | omd-doctor | install/mount diagnostics |
| debug | omd-debug | reproduce→isolate→fix→regress |
| release | omd-release | git + tests + changelog + tag |
| remember | omd-remember | workspace memory file |
| cancel | omd-cancel | goal pause + interrupt_agent + job_kill |
| minimal-code-discipline | omd-minimal-code-discipline | YAGNI ladder |
| external-context | omd-external-context | web_fetch/read |
| visual-verdict | omd-visual-verdict | read_image comparison |
| skillify | omd-skillify | write SKILL.md |
| wiki | omd-wiki | workspace markdown |
| omc-help | omd-help | live skill/command index |
ultraworkis retired — OMC removed it in 5.0.0 (along withultraqa/swarm/pipeline); oh-my-dsh removed it too, folding its "maximum parallel fan-out" intoexecute/team/ralph.
Key difference: OMC's HUD is a CLI status line, while oh-my-dsh's HUD is an inline dsh-ui dashboard in the reply (stat/progress/timeline/table), because DSH's Web GUI already renders structured UI.
Directory structure
oh-my-dsh/
├── package.json # dsh.bundle manifest (bundle install entry)
├── cordis.patch.yml # bundle patch layer (global commands + skills)
├── index.js # bundle module entry
├── agent.cordis.yml # agent preset composition (= standard + persona + skills + commands)
├── preset.yml # preset display metadata
├── install.ps1 / install.sh # preset manual install scripts
├── LICENSE
├── commands/
│ └── omd-commands.mjs # slash-command producer (ESM plugin)
├── skills/
│ ├── omd-plan/SKILL.md
│ ├── omd-execute/SKILL.md
│ ├── omd-review/SKILL.md
│ ├── omd-verify/SKILL.md
│ ├── omd-team/SKILL.md
│ ├── omd-autopilot/SKILL.md
│ ├── omd-ralph/SKILL.md
│ ├── omd-deep-interview/SKILL.md
│ ├── omd-ralplan/SKILL.md
│ ├── omd-research/SKILL.md
│ ├── omd-autoresearch/SKILL.md
│ ├── omd-ultragoal/SKILL.md
│ ├── omd-tdd/SKILL.md
│ ├── omd-deepsearch/SKILL.md
│ ├── omd-deep-analyze/SKILL.md
│ ├── omd-ultrathink/SKILL.md
│ ├── omd-ai-slop-cleaner/SKILL.md
│ ├── omd-doctor/SKILL.md
│ ├── omd-debug/SKILL.md
│ ├── omd-release/SKILL.md
│ ├── omd-remember/SKILL.md
│ ├── omd-cancel/SKILL.md
│ ├── omd-minimal-code-discipline/SKILL.md
│ ├── omd-external-context/SKILL.md
│ ├── omd-visual-verdict/SKILL.md
│ ├── omd-skillify/SKILL.md
│ ├── omd-wiki/SKILL.md
│ ├── omd-help/SKILL.md
│ └── omd-hud/SKILL.md
└── docs/
├── ARCHITECTURE.md
└── RELEASE.md
Install / usage
Two forms — pick one (bundle for global, preset for per-session).
Form A: bundle (primary, the OMC plugin-marketplace equivalent) — installs the /omd-* commands and 29 skills globally, visible to every session in the profile:
# git source (pure JS/Markdown, zero build, no allowBuilds needed; pin with @<tag>)
dsh plugin --profile web add github:hawk2048/oh-my-dsh
# or npm (the npm i -g equivalent)
dsh plugin --profile web add @hawk2048/oh-my-dsh
Restart the profile. One command, pulled by pnpm — no manual tarball download.
Form B: agent preset (optional, per-session) — full session with persona and the orchestration toolkit:
# Windows
.\install.ps1
# macOS / Linux
./install.sh
Then create a session and pick the "oh-my-dsh 编排" preset (or set it as agent-presets.default). See docs/RELEASE.md.
Usage (in-session)
Two equivalent ways:
Way 1: natural language (the agent auto-loads the matching skill)
plan how to implement X→omd-planexecute the plan→omd-executereview my changes→omd-reviewverify — tests must pass→omd-verifyteam, build a task-management app→omd-teamautopilot: build a REST API→omd-autopilotralph the auth refactor until green→omd-ralphdeep interview me — I want to build X→omd-deep-interviewralplan this architecture decision→omd-ralplanresearch X best practices, with sources→omd-researchautoresearch this report to passing→omd-autoresearchultragoal: break this long goal into subgoals→omd-ultragoaltdd: failing test first→omd-tdddeepsearch: who calls this function→omd-deepsearchdeep-analyze this architecture→omd-deep-analyzeultrathink before acting→omd-ultrathinkstrip the AI slop→omd-ai-slop-cleanerself-check the install→omd-doctordebug this error→omd-debugrelease v1.2 with changelog→omd-releaseremember this decision→omd-rememberstop the running autopilot→omd-cancelminimal change, no over-engineering→omd-minimal-code-disciplineread this issue/link→omd-external-contextcompare these screenshots→omd-visual-verdictturn this flow into a skill→omd-skillifywrite this to the wiki→omd-wikiwhat can omd do→omd-help
Way 2: slash commands (type /omd for candidates)
| Command | Equivalent skill |
|---|---|
/omd-plan <task> | omd-plan |
/omd-execute <task> | omd-execute |
/omd-review <task> | omd-review |
/omd-verify <task> | omd-verify |
/omd-team <task> | omd-team |
/omd-autopilot <goal> | omd-autopilot |
/omd-ralph <goal> | omd-ralph |
/omd-deep-interview <topic> | omd-deep-interview |
/omd-ralplan <desc> | omd-ralplan |
/omd-research <question> | omd-research |
/omd-autoresearch <task> | omd-autoresearch |
/omd-ultragoal <goal> | omd-ultragoal |
The agent loads the matching skill, runs that mode, and reports progress via the HUD.
Why skills + bundle/preset, not new tools
DSH's native multi-agent primitives (workflow pipelines/parallel, subagent fan-out, ralph fresh-agent loops, goal cross-turn objectives) already cover OMC's orchestration semantics. oh-my-dsh therefore adds no new host tools or runtime — it distills "which primitive to use, when, how to orchestrate, and how to close out" into reusable skills.
Distribution reuses DSH's native mechanisms: cordis.patch.yml + the dsh.bundle manifest make dsh plugin add install a bundle (global commands + skills), and agent.cordis.yml makes it an agent preset (per-session persona + commands + skills). The slash-command commands/omd-commands.mjs is an ESM plugin that injects DSH's built-in commands registry — zero runtime risk, survives DSH upgrades.
Extending
- Add a mode: add
skills/omd-xxx/SKILL.md(YAML frontmatter withname+description). - Add a command: append an entry to the
MODESarray incommands/omd-commands.mjs. - Change the persona: edit the
personarow at the top ofagent.cordis.yml. - Make a skill global: use the bundle (
dsh plugin add) or copyskills/*to${DSH_HOME}/skills/.
License
MIT. Inspired by oh-my-claudecode.