LaplaceYoung / oh-my-dsh

Listed

oh-my-dsh:面向 DSH (DeepSeek Harness) 的插件生态——700+ 插件,只通过扩展接缝注册,不修改 agent-loop 骨架

mainOther View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:LaplaceYoung/oh-my-dsh

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 37b6671Synced Aug 18, 2026

oh-my-dsh

Every capability the peer harnesses ship, as DSH plugins.

plugins tests e2e TypeScript protocol

A capability library for DeepSeek Harness (DSH) — open all the way down, never touching the agent loop.

The capability surface for the DSH agent, ported from the harnesses that got it right. Every plugin registers through a documented extension seam — never a patch to the skeleton, never a hot-path tax.

530 plugins · 3731 tests · 2183/2183 e2e registration checks · 6/6 live-session checks against a real DeepSeek model.

[!NOTE] oh-my-dsh is a capability library, not a fork. Each plugin adapts one gap from a peer harness (Claude Code, Oh-my-pi, kimi-code, opencode, Codex CLI, …) into a drop-in DSH plugin. The full gap ledger lives in GAP-LEDGER.md.

The capabilities, adapted.

01 · Deep research, wired to ctx.web + ctx.llm

deep-research decomposes a compound question into sub-questions, searches and fetches sources in parallel through DSH's portable web seam, and synthesizes a cited report. Configure a provider + model and synthesis runs through the LLM; leave them unset and a deterministic template report still lands — every path degrades gracefully, none require a real key to test.

02 · Tower — multi-agent orchestration with conflict coordination

tower dispatches a list of instructions to a team of worker subagents that iterate one repo concurrently. Every worker reads the shared team brief (so M1 owns the README while M2 reads it), then a reviewer — always on the primary model — re-reads their outputs and flags conflicts. Ported from kimi-code's /tower (MoonshotAI/kimi-code#2633). fleet-orchestrator, microagents, and specialist-agents cover the long tail of fan-out shapes.

03 · Pre-write secret scanning as a monotonic guard

secret-scanner registers a tools.guard that denies write/edit/apply_patch calls whose arguments carry API keys, tokens, or private keys — before any filesystem mutation, and with no allow-override path. Conservative patterns, low false-positive. repo-secret-audit sweeps what's already on disk; git-secret-gate watches what's about to be committed.

04 · Stream rules that catch the model mid-drift

stream-rules injects regex-matched reminders into the stream the moment the model goes off-script — oh-my-pi's time-traveling stream rules, rebuilt on DSH's event waterfall. semantic-compression shrinks context while preserving meaning; cache-aware-compaction and compact-fidelity keep the compression honest.

05 · GitHub workflow over the shell seam

github-workflow wraps the gh CLI (issue create/list, pr list) through ctx.shell (resolve → run), with a child_process fallback for standalone use. Structured --json output parsed on the way back. pr-description and pr-review-bot take it from triage to review.

06 · Lineage & kanban projections

branch-tree renders fork lineage (parent→children, ancestry, fork points) and task-board projects a parallel-task kanban (columns, blocked reasons, dependency tree) — both cycle-safe. Data lives in-session; persistence is a consumer step.

07 · Sessions, the whole lifecycle

Twenty-four session-* plugins cover the arc no single harness owns end to end: session-snapshot and session-rewind for checkpoint rollback, session-share for cloud links, session-search / session-retrieval / session-semantics for getting old work back, session-rbac for who may touch what, session-replay and session-export for audit. opencode's share model, Codex's rollout vocabulary, and Claude Code's checkpoint — reconciled in one namespace.

08 · Approvals with a vocabulary

Six approval-* plugins turn permission prompts into policy: approval-vocabulary remembers once/always/reject per tool (Codex CLI's /approvals), approval-queue and approval-persist make decisions durable and reviewable, approval-diff and approval-binding tie each decision to the exact change it approved, approval-grace adds expiring trust. autonomy-tier sets the ceiling.

09 · Memory that survives the session

memory-writeback lands Claude Code's CLAUDE.md loop; episodic-memory, procedural-memory, and graph-memory store what happened, what works, and how things connect; memory-consolidation and memory-promotion move what repeats from raw recall into durable knowledge. Project-scoped by default — what the agent learns about this repo stays with this repo.

10 · MCP, bridged and governed

Seven mcp-* plugins: mcp-bridge speaks the protocol, mcp-registry catalogs servers, mcp-trust and mcp-poison decide what's allowed to answer, mcp-capabilities negotiates surface, mcp-browser drives a browser server, mcp-extension-ecosystem keeps the whole thing discoverable. The ecosystem without the supply-chain blind spot.

11 · A browser fleet, seven plugins deep

browser-driver at the wheel, then one plugin per concern: browser-session, browser-a11y, browser-form-fill, browser-network, browser-scraper, browser-visual-assert. Not one omni-tool — the same browser capability decomposed into seams you can mount independently.

12 · Red team, built in

jailbreak-detector and injection-guard watch the prompt stream, sandbox-escape and sandbox-intent watch the tool surface, adversarial-eval and redteam-orchestrator run the attacks on a schedule, malicious-package-guard and supply-chain watch what gets installed. Security as plugins, not as a phase.

13 · Observability: traces, metrics, cost

otel-genai-traces and otel-genai-metrics emit OpenTelemetry GenAI semantic conventions; trace-waterfall-webui and trace-viewer render them; token-stats, cost-command, and cache-hit-meter answer "what did this session burn, and where". perf-baseline and perf-regression-detector guard the harness itself.

14 · The discipline itself: seams, not surgery

Every plugin registers as a side effect (ctx.effect() / ctx.on()), declares its services via inject, and splits capability into the three-part seam: interface (typed contract), implementation (backend), consumer (model-facing tool). No agent-loop edits, no hot-path allocation, no hardcoded knobs.

Install

git clone https://github.com/LaplaceYoung/oh-my-dsh.git
cd oh-my-dsh
pnpm install

Plugins are ESM packages under plugins/<name> (@oh-my-dsh/<name>). Mount them in a DSH cordis.yml composition:

- id: omd-deep-research
  name: '@oh-my-dsh/deep-research'
  config:
    provider: deepseek-official
    model: deepseek-v4-flash

Quick start

# 1. All tests + typecheck
pnpm test
pnpm typecheck

# 2. Registration verification — boots DSH, mounts 530 plugins, asserts 2183 checks
bash e2e/run-e2e.sh

# 3. Real session — full agent stack + all plugins + one real DeepSeek turn
DEEPSEEK_API_KEY=… node --import tsx e2e/run-real-session.mjs e2e/dsh-src

Architecture

DSH is an all-plugin harness: the agent loop itself is a plugin, and new behavior lands through documented seams — never by editing the skeleton.

seampurpose
ctx.toolsmodel-facing tools (register / guard / restrict)
ctx.shell · ctx.fsshell + filesystem providers
ctx.subagentschild agents (spawn / fork / acp / codex / claude-code)
ctx.workflowsscripted multi-agent orchestration
ctx.llm · ctx.webmodel routing + search/fetch
ctx.sessionPersistence · ctx.sessionQuerydurable sessions + query
event waterfallagent/pre-step, tools/pre-execute, session/event, …

Discipline

  • Registration is a side effectctx.effect() / ctx.on(); register() returns a disposer.
  • Three-part seam — interface / implementation / consumer.
  • Explicit > implicit — defaults live in resolve(request): Spec, not ?? default.
  • Performance — registration is light, hot paths stay allocation-free, listeners next().

The catalog, by domain

524 plugins in one namespace. Representative slices:

domaincountplugins
Sessions24session-snapshot, session-rewind, session-share, session-rbac, session-replay, …
Web UI19webui-plugin-manager, webui-smart-diff, webui-usage-cost-dashboard, webui-virtualized-session, …
Agent & orchestration12tower, agent-hub, agent-teams, fleet-orchestrator, microagents, plan-mode, …
Task management10task-board, task-dependency-dag, task-queue, task-predict, task-results-inbox, …
Prompt & model routing9prompt-rewriter, prompt-optimizer, provider-router, provider-fallback, model-routing-policy, …
Context control9context-usage, context-inject, context-add-dir, context-pin, context-pruner, …
Knowledge9knowledge-spaces, knowledge-graph-curator, knowledge-recommender, knowledge-versioning, …
Browser8browser-driver, browser-a11y, browser-form-fill, browser-network, browser-visual-assert, url-summarize, …
MCP7mcp-bridge, mcp-registry, mcp-trust, mcp-poison, mcp-capabilities, …
Review12review-checklist, review-feedback, review-thread, pr-review-bot, diff-review, code-metrics, import-graph, dead-code, symbol-index, code-format, …
Approval & policy6approval-vocabulary, approval-queue, approval-diff, approval-grace, autonomy-tier, …
Memory12memory-writeback, episodic-memory, procedural-memory, graph-memory, project-memory, …
Observability11otel-genai-traces, otel-genai-metrics, trace-waterfall-webui, token-stats, cost-command, doctor, …
Git & GitHub24github-workflow, git-auto-commit, git-hooks, git-hygiene, git-secret-gate, git-surgery, git-blame, git-churn, git-submodule, git-remote, git-log, git-diff, git-config, git-status, git-branch, git-tag, git-switch, git-pull, git-push, git-merge, git-fetch, git-rebase, git-restore, git-revert
Security & red team13secret-scanner, jailbreak-detector, injection-guard, sandbox-escape, adversarial-eval, output-guard, license-checker, dependency-audit, …
DevOps & infra22docker, k8s, terraform, sqlite, redis, helm, psql, aws, npm-scripts, mysql, gcp, checksum, systemctl, azure, brew, journalctl, openssl, make, apt, ssh-keygen, df-du, gpg
Audio & voice6audio-transcribe, audio-tts-exec, voice-input, voice-session-ui, …
Evaluation6evals, eval-suite-registry, eval-case-mining, eval-dataset-manager, eval-report-clustering, …
Documents & data15pdf-parser, epub-reader, sheet-reader, csv-kit, ocr-extractor, word-reader, diagram, json-query, regex-tester, semver-compare, base64, uuid, file-diff, …

Everything under plugins/ — every gap traced in GAP-LEDGER.md.

Peer harnesses

projectported capability surface
Oh-my-pideep research, orchestrator prompt, expert subagents, skills injection, stream rules, semantic compression, Agent Hub (/agent)
Claude Codememory writeback, hooks, CLAUDE.md, checkpoint, rewind (/rewind), plan mode (/plan), computer use (/computer), subagent delegation (/subagent), code review (/review), MCP listing (/mcp), release notes (/release-notes), /init, /memory, /add-dir
kimi-code/tower multi-agent orchestration, secondary-model routing, revisit + cleanup
opencodesession model, MCP ecosystem, editor integration
Codex CLIapproval vocabulary, session snapshot, rollout/canary, apply_patch

Full mapping in GAP-LEDGER.md — 25 rounds, every gap traced to its source and state.

Status

  • 530 plugins — typecheck 0 errors, 3731 tests green
  • e2e registration — 2183/2183 checks (530 plugins mounted in a live DSH composition)
  • real session — full agent stack + real DeepSeek turn passes 6/6

Development

pnpm install          # workspace deps
pnpm test             # vitest across all plugins
pnpm typecheck        # tsc -b across all plugins
bash e2e/run-e2e.sh   # live DSH boot + registration surface + LLM smoke

Plugin conventions live in AGENTS.md; seam contracts in docs/seams-reference.md; the performance budget in docs/performance.md.


made for harnesses that stay open

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected
DocumentationDetected

Repository information

Language
TypeScript
License
Not reported
Last updated
Aug 15, 2026, 7:29 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.