Everything is a Plugin
The core philosophy of DeepSeek Harness (harness.vin) is "everything is a plugin". Built on the Cordis plugin kernel, models, tools, skills, sessions, sandboxes, storage, loops, scheduling, and UI are all provided by plugins — freely replaceable and recombinable for a highly flexible AI Agent architecture.
Plugin Types
Model Plugin
Connect different large language models (LLMs) such as DeepSeek and OpenAI. Model plugins power agent conversation and reasoning, with flexible model switching.
Tool Plugin
Provide tool-calling capabilities including file operations, network requests, and code execution. Tool plugins define the actions and function-call interfaces an agent can invoke.
Sandbox Plugin
Offer secure, isolated code execution environments so agent-generated code never affects the host system.
Trajectory Plugin
Record complete session trajectories — every input, output, tool call, and state transition — with replay and debugging support.
UI Plugin
Provide user interface components including web UI, chat windows, and code editors. UI plugins define how users interact with agents.
Storage Plugin
Manage agent state storage, session history, and file system persistence across multiple storage backends.
Cordis Plugin Architecture
Cordis Kernel
DeepSeek Harness is built on the Cordis plugin system, which provides plugin loading, unloading, dependency management, and lifecycle control — the foundation of the everything-is-a-plugin architecture.
Config-Layer Composition
Choose plugin combinations via configuration files. Create different agent types without touching source code — one plugin set composes multiple run modes.
Dependency Injection
Plugins collaborate through dependency injection. A plugin can declare dependencies on others, and the Cordis kernel loads and initializes them in the correct order.
Hot Plugging
Load and unload plugins at runtime for real-time agent capability extension — no service restart required.
Plugin Development Example
A plugin is a TypeScript module that exports an apply function. Register capabilities through ctx, declare inject dependencies, and extend your AI Agent.
// Create a custom DeepSeek Harness plugin
import type { Context } from '@deepseek-ai/cordis';
export const name = 'my-tool-plugin';
// Loads once the injected tools service is ready
export const inject = ['tools'];
export function apply(ctx: Context) {
ctx.tools.register({
// Tool definition: name, description, and invocation
// ...register your tool here
});
}How plugins are distributed and discovered
There is no separate plugin marketplace: official plugins are npm packages, and community plugins are discovered through a GitHub topic.
Official plugins: the @deepseek-ai scope
Every official plugin ships on npm as @deepseek-ai/dsh-*, for example dsh-tool-fs, dsh-session and dsh-sandbox. Install and upgrade follow the normal npm flow.
Browse on npmCommunity plugins: the dsh-plugin topic
Community plugins are third-party npm packages or local plugin directories. Adding the dsh-plugin topic to your repository is the official way to make a plugin discoverable.
Browse the topicOfficial docs and repository
The complete plugin-development guide, profile configuration and API reference live in the official docs — this page is an overview and index.
Open the docsOfficial plugin library
Official plugins ship as npm packages under the @deepseek-ai scope. Below is a synced overview by capability — open the full library for versions and descriptions.
Related Docs
FAQ
What is the DeepSeek Harness plugin system?
Built on the Cordis plugin kernel — models, tools, skills, sessions, sandboxes, and more are all plugins, freely replaceable and recombinable.
How do I develop a custom plugin?
A plugin is a TypeScript module that exports an apply function: register tools, services, and events through ctx, declare inject dependencies, and extend tools, models, sandboxes, and more.
Where can I find DSH plugins?
Browse community plugins on the GitHub Topics dsh-plugin page, or check official plugins in the DeepSeek Harness GitHub repository.
Do plugins support hot plugging?
Yes. DeepSeek Harness loads and unloads plugins dynamically at runtime for real-time capability extension.
What is the difference between official and community plugins?
Official plugins are published by DeepSeek on npm under the @deepseek-ai/dsh-* scope. Community plugins are maintained by third parties, usually named with a dsh- prefix, and are discovered through the GitHub dsh-plugin topic.
How do I publish my own plugin?
Publish the plugin as an npm package and add the dsh-plugin topic to its GitHub repository — that is how both the community and the official docs discover plugins.