hawk2048/oh-my-dsh

oh-my-dsh

OMC 风格的多智能体编排层:29 个 omd-* skill + 12 条 /omd-* 命令,覆盖 plan-execute-review-verify 流水线与 team/autopilot/ralph 等模式。

Uncategorizedagent-presetdeepseek-harnessmulti-agent

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 (30 skills, auto-loaded by the agent) + slash commands (13 /omd-* commands). Start a session, orchestration is ready.

Quick Start

One command installs all 30 skills + 13 /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 (dsh CLI)
  • pnpm — dsh plugin forwards to pnpm

Why oh-my-dsh

  • Zero configuration — one dsh plugin add installs 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 native workflow.
  • Natural language interface — describe what you want; the 30 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 ralph loops + goal cross-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-skillify extracts reusable skills; omd-remember persists durable notes across sessions.
  • Real-time visibility — the inline HUD renders live dsh-ui progress 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

New in this plugin (no OMC counterpart):

Capability · oh-my-dsh skill · DSH primitive Pyramid structured expression (conclusion-first + MECE) · omd-pyramid · pure expression discipline + dsh-ui hierarchy mapping (genui)

`ultrawork` is retired — OMC removed it in 5.0.0 (along with ultraqa/swarm/pipeline); oh-my-dsh removed it too, folding its "maximum parallel fan-out" into execute/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-pyramid/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 13 /omd-* commands and 30 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

The installer is non-destructive: it never deletes the preset directory, keeps skills you added locally, and backs up any local edit it would overwrite as .bak-. Re-running is safe and reversible.

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-plan
  • execute the plan → omd-execute
  • review my changes → omd-review
  • verify — tests must pass → omd-verify
  • team, build a task-management app → omd-team
  • autopilot: build a REST API → omd-autopilot
  • ralph the auth refactor until green → omd-ralph
  • deep interview me — I want to build X → omd-deep-interview
  • ralplan this architecture decision → omd-ralplan
  • research X best practices, with sources → omd-research
  • autoresearch this report to passing → omd-autoresearch
  • ultragoal: break this long goal into subgoals → omd-ultragoal
  • structure this as a pyramid / conclusion first / MECE → omd-pyramid
  • tdd: failing test first → omd-tdd
  • deepsearch: who calls this function → omd-deepsearch
  • deep-analyze this architecture → omd-deep-analyze
  • ultrathink before acting → omd-ultrathink
  • strip the AI slop → omd-ai-slop-cleaner
  • self-check the install → omd-doctor
  • debug this error → omd-debug
  • release v1.2 with changelog → omd-release
  • remember this decision → omd-remember
  • stop the running autopilot → omd-cancel
  • minimal change, no over-engineering → omd-minimal-code-discipline
  • read this issue/link → omd-external-context
  • compare these screenshots → omd-visual-verdict
  • turn this flow into a skill → omd-skillify
  • write this to the wiki → omd-wiki
  • what can omd do → omd-help

Way 2: slash commands (type /omd for candidates)

Command · Equivalent skill /omd-plan · omd-plan /omd-execute · omd-execute /omd-review · omd-review /omd-verify · omd-verify /omd-team · omd-team /omd-autopilot · omd-autopilot /omd-ralph · omd-ralph /omd-deep-interview · omd-deep-interview /omd-ralplan · omd-ralplan /omd-research · omd-research /omd-autoresearch · omd-autoresearch /omd-ultragoal · omd-ultragoal /omd-pyramid · omd-pyramid

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 with name + description).
  • Add a command: append an entry to the MODES array in commands/omd-commands.mjs.
  • Change the persona: edit the persona row at the top of agent.cordis.yml. Keep the prefix: key the row's schema requires, and reference only registered prompt variables — {{provider}} / {{model}} today. The working directory is injected as its own runtime-context section, so a {{cwd}} reference fails prompt assembly for every turn (guard: tests/preset-contract.test.mjs).
  • Make a skill global: use the bundle (dsh plugin add) or copy skills/* to ${DSH_HOME}/skills/.

License

MIT. Inspired by oh-my-claudecode.