Plugin Development Guide
Learn how to build DeepSeek Harness plugins. The roadmap below walks you through the official Cordis tutorial chapter by chapter — each stage points to the exact official chapter, and the resource list gathers curated references so you never chase a dead link.
Stage 1 — Get started
01 · Your first plugin
A plugin is a function; the loader mounts it. Build your first runnable plugin and learn the minimal scaffold.
Stage 2 — Core concepts
02 · Lifecycle and effects
Cordis-managed registrations are undone when their plugin unloads. Understand cleanup and automatic teardown.
03 · Services
Expose a capability on ctx and depend on it with inject.
04 · Events
Typed events, broadcast dispatch, and the waterfall short-circuit.
Stage 3 — Configuration & workflow
05 · Configuration
Validated config from cordis.yml, failing loud on bad input.
06 · Composition and HMR
The config file as a plugin tree, hot reload, and diagnosing a plugin that never loads.
Stage 4 — Into the harness
07 · Into the harness
Register a model-callable tool against real harness services.
Curated external resources
- • Official DeepSeek Harness repository — source, issues, and the docs tree.
- • Cordis tutorial (index) — the full walkthrough with setup and TypeScript notes.
- • Cordis primer — condensed concept reference.
- • Cordis core API (context) — exhaustive API reference.
- • Architecture — how everything-is-a-plugin fits together.
- • Your first Harness plugin — for plugins loaded from
cordis.ymlin the Web UI, not just the launcher. - • Discussions — ask the community.
Find plugins that teach these patterns in the plugin registry — search keywords like dev, cli, or api for real examples to study.
Source: official DeepSeek Harness docs (public) · Maintained by dsh.so · Last updated