Back to home@hawk2048

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
GitHub repo

Introduction

oh-my-dsh

npm version GitHub stars License: MIT dsh-plugin

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

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 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 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 experienceomd-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 workflowoh-my-dsh skillDSH primitive
Planomd-planread-only exploration + parallel subagent
Executeomd-executeparallel subagent + todo_write
Reviewomd-reviewsubagent_fork independent review
Verifyomd-verifypwsh/bash tests + subagent re-check
Teamomd-teamworkflow + subagent
Autopilotomd-autopilotgoal + todo + subagent
Ralphomd-ralphralph + goal verify loop
Deep Interviewomd-deep-interviewask_user_question
Ralplanomd-ralplanparallel subagent drafts + arbitration
Researchomd-researchweb_search/web_fetch + parallel subagent
Autoresearchomd-autoresearchgoal + evaluator loop
Ultragoalomd-ultragoalgoal + todo_write + checkpoint artifacts
HUDomd-hudinline dsh-ui dashboard (genui)

Prompt-trigger + utility skills (natural-language only, no slash command):

OMC triggeroh-my-dsh skillDSH primitive
tddomd-tddpwsh/bash tests + red-green-refactor
deepsearchomd-deepsearchgrep/glob/read local lookup
deep-analyzeomd-deep-analyzeparallel subagent multi-angle
ultrathinkomd-ultrathinkpure reasoning (no tools first)
ai-slop-cleaneromd-ai-slop-cleanerreview/edit tightening
omc-doctoromd-doctorinstall/mount diagnostics
debugomd-debugreproduce→isolate→fix→regress
releaseomd-releasegit + tests + changelog + tag
rememberomd-rememberworkspace memory file
cancelomd-cancelgoal pause + interrupt_agent + job_kill
minimal-code-disciplineomd-minimal-code-disciplineYAGNI ladder
external-contextomd-external-contextweb_fetch/read
visual-verdictomd-visual-verdictread_image comparison
skillifyomd-skillifywrite SKILL.md
wikiomd-wikiworkspace markdown
omc-helpomd-helplive skill/command index

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-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 Xomd-plan
  • execute the planomd-execute
  • review my changesomd-review
  • verify — tests must passomd-verify
  • team, build a task-management appomd-team
  • autopilot: build a REST APIomd-autopilot
  • ralph the auth refactor until greenomd-ralph
  • deep interview me — I want to build Xomd-deep-interview
  • ralplan this architecture decisionomd-ralplan
  • research X best practices, with sourcesomd-research
  • autoresearch this report to passingomd-autoresearch
  • ultragoal: break this long goal into subgoalsomd-ultragoal
  • tdd: failing test firstomd-tdd
  • deepsearch: who calls this functionomd-deepsearch
  • deep-analyze this architectureomd-deep-analyze
  • ultrathink before actingomd-ultrathink
  • strip the AI slopomd-ai-slop-cleaner
  • self-check the installomd-doctor
  • debug this erroromd-debug
  • release v1.2 with changelogomd-release
  • remember this decisionomd-remember
  • stop the running autopilotomd-cancel
  • minimal change, no over-engineeringomd-minimal-code-discipline
  • read this issue/linkomd-external-context
  • compare these screenshotsomd-visual-verdict
  • turn this flow into a skillomd-skillify
  • write this to the wikiomd-wiki
  • what can omd doomd-help

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

CommandEquivalent 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 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.
  • Make a skill global: use the bundle (dsh plugin add) or copy skills/* to ${DSH_HOME}/skills/.

License

MIT. Inspired by oh-my-claudecode.