{"slug": "what-is-deepseek-harness-a-complete-introduction", "title": "What Is DeepSeek-Harness? A Complete Introduction", "summary": "DeepSeek AI released DeepSeek-Harness (dsh), an open-source agent harness in developer preview version 0.1.0-rc.5, where every feature—tools, commands, skills, and MCP connections—is implemented as a plugin on top of the Cordis plugin framework. The harness supports profiles for separate configurations and includes official bridge plugins for Claude Code and Codex hooks, allowing reuse of existing hook configs.", "body_md": "# What is DeepSeek-Harness? A Complete Introduction\n\nDeepSeek-Harness (dsh) is DeepSeek's open-source agent harness where every feature — tools, commands, skills, MCP — is a plugin. Here's how it works.\n\nDeepSeek-Harness, commonly shortened to **dsh**, is an open-source agent harness built by DeepSeek AI. Its defining idea is \"everything is a plugin\": the CLI, the web UI, tool access, slash commands, skills, and even MCP server connections are all implemented as plugins on top of a general-purpose plugin framework called [Cordis](https://github.com/cordiverse/cordis). There is no separate manifest format for each capability type — one plugin mechanism covers all of them.\n\ndsh is currently in **developer preview** (version `0.1.0-rc.5`\n\nat the time of writing). The project's own README is explicit about what that means: expect compatibility-breaking changes as the framework iterates.\n\n[\"Everything is a plugin\" — what that actually means](#everything-is-a-plugin--what-that-actually-means)\n\nMost agent tools split their extensibility into separate systems: one format for tools, another for slash commands, another for skills, another for MCP configuration. dsh collapses all of that into a single concept. A plugin is just a JS/TS module that exports an `apply(ctx, config)`\n\nfunction, and depending on what it registers on `ctx`\n\n, it can become any of the following:\n\n| You want to add... | The plugin registers... |\n|---|---|\n| A tool the model can call | `ctx.tools.register()` |\nA slash command (`/xxx` ) for the UI | `ctx.commands` |\n| A skill (injected prompt + tool) | a prompt section plus a tool, injected on invocation |\n| An MCP server's tools | one plugin per MCP server, discovering and registering its tools via `ctx.tools.register()` |\n| A hook into agent/tool lifecycle events | a listener on extension points like `agent/pre-step` or `tools/pre-execute` |\n| A new LLM provider | a `LlmAdapter` registered via `ctx.llm.registerAdapter()` |\n| A background/cron job | `ctx.jobs` |\n\nNotably, dsh ships official bridge plugins — `dsh-hooks-claude-code`\n\nand `dsh-hooks-codex`\n\n— that translate an existing Claude Code or Codex `hooks.json`\n\ninto dsh's own hook extension points, so hook configs from those ecosystems can be reused rather than rewritten.\n\nIf you've used a harness where skills, commands, and MCP connections each need their own config file, this is the biggest conceptual shift: in dsh, they're all just code that calls `ctx`\n\n.\n\n[Installing dsh](#installing-dsh)\n\nThe fastest way to try it is to run it straight from npm, no clone required:\n\n```\nnpx @deepseek-ai/dsh web\n```\n\nThis starts the web UI, listening by default on `http://127.0.0.1:3080`\n\n.\n\nIf you want to work from source instead — useful if you're developing your own plugin against the latest framework code — clone and build the repo directly:\n\n```\ngit clone https://github.com/deepseek-ai/deepseek-harness.git\ncd deepseek-harness\npnpm install\npnpm run build\npnpm dsh web\n```\n\n[Profiles: how dsh keeps configurations separate](#profiles-how-dsh-keeps-configurations-separate)\n\nA **profile** is a named, runnable configuration — a directory under `$DSH_HOME/profiles/<name>`\n\n(with `$DSH_HOME`\n\ndefaulting to `~/.dsh`\n\n) that lists which plugin bundles are active and in what order. You start dsh against a specific profile:\n\n```\ndsh --profile <name>\n```\n\n`dsh web`\n\nis actually shorthand for `--profile web`\n\n, and `dsh --profile headless \"<task text>\"`\n\nruns a one-shot task with no UI at all. Profiles are how you keep, say, a minimal headless automation setup separate from a plugin-loaded web UI setup, without them stepping on each other's configuration.\n\nPlugins are added to a profile with:\n\n```\ndsh plugin --profile <name> add <specifier>\n```\n\nWe cover this command — and the npm/GitHub/local-path sources it accepts — in detail in [How to Install DeepSeek-Harness Plugins](/blog/how-to-install-dsh-plugins).\n\n[The plugin ecosystem today](#the-plugin-ecosystem-today)\n\nHere's the part that matters if you're trying to find plugins worth installing: **DeepSeek AI does not run an official plugin marketplace or registry.** The only first-party discovery mechanism is a convention — plugin authors are encouraged to tag their GitHub repository with the topic [ dsh-plugin](https://github.com/topics/dsh-plugin) so it can be found by search. There's no central review process and no official list.\n\nInto that gap, the community has built its own directories. The most actively maintained one is [ awesome-dsh-plugin/awesome-dsh-plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin), a curated, hand-reviewed list that currently tracks\n\n**365 plugins across 11 categories**— UI Enhancements, Tools & Capabilities, Workflow & Automation, Memory, Development & Runtime, and more.\n\nThat's exactly the gap FindHarness exists to close. We index those community-discovered plugins with real GitHub metadata — stars, license, last-push date, and full READMEs — so you can browse, search, and compare them like a proper catalog instead of scrolling a single giant README. Start with [/plugins](/plugins) to search the full list, or [/categories](/categories) to browse by what a plugin actually does.\n\n[Where to go next](#where-to-go-next)\n\n- Ready to install something:\n[How to Install DeepSeek-Harness Plugins (2026 Guide)](/blog/how-to-install-dsh-plugins)covers the exact`dsh plugin add`\n\nsyntax, every supported source, and the security tradeoffs of installing from GitHub. - Want recommendations first:\n[10 Best DeepSeek-Harness Plugins in 2026](/blog/best-deepseek-harness-plugins)ranks real, installable plugins by GitHub stars across categories. - Building your own plugin:\n[How DeepSeek-Harness Plugins Work Under the Hood](/blog/dsh-plugin-development-primer)walks through the`apply(ctx, config)`\n\ncontract and how to get a plugin discovered.", "url": "https://wpnews.pro/news/what-is-deepseek-harness-a-complete-introduction", "canonical_source": "https://findharness.com/blog/what-is-deepseek-harness", "published_at": "2026-08-18 01:37:37+00:00", "updated_at": "2026-08-18 02:11:11.474374+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-tools"], "entities": ["DeepSeek AI", "DeepSeek-Harness", "Cordis", "Claude Code", "Codex"], "alternates": {"html": "https://wpnews.pro/news/what-is-deepseek-harness-a-complete-introduction", "markdown": "https://wpnews.pro/news/what-is-deepseek-harness-a-complete-introduction.md", "text": "https://wpnews.pro/news/what-is-deepseek-harness-a-complete-introduction.txt", "jsonld": "https://wpnews.pro/news/what-is-deepseek-harness-a-complete-introduction.jsonld"}}