AI Coding Agents

DeepSeek Harness Explained: Cordis Plugins and a First Test

DeepSeek Harness (DSH) is an agent harness, not a new AI model. It supplies a way to run an agent and compose its behavior. In Alejandro AO's walkthrough, the surprising part is how far that composition goes: tools, model connections, prompts and even the agent loop can be supplied through plugins. That makes DSH unusually adaptable, but also makes plugin provenance and permissions part of the design job.

The short answer

DSH is the application; Cordis is its composition framework. A plugin registers a capability in a shared context, declares the services it needs, and can have its registrations removed when it unloads. Start with a harmless plugin in a disposable workspace before you let an agent alter its own setup.

Watch Alejandro Build and Load the Plugins

The video uses both DSH's Electron desktop app and its locally served Web UI. Alejandro first asks Creator mode to make a greeting tool, then writes small plugins himself. His model-provider example uses GLM through Hugging Face; that is his configuration, not a requirement to run DSH.

What Does "Everything Is a Plugin" Mean?

A conventional coding assistant often exposes a fixed agent loop with a few add-on tools. DSH lets a composition choose more of the machinery. The official repository calls this an everything-is-a-plugin architecture, while its Cordis primer explains how components connect. The distinction is useful: a model provider answers requests; the harness decides when to call it, what context and tools it receives, and how the session proceeds.

LayerWhat a plugin can changeFirst question to ask
Model accessProvider or adapter used for model callsWhere do credentials and task data go?
ToolsActions exposed to the agent and how they executeWhat can this tool read, write or run?
Prompt and contextInstructions and information made available to the loopWhat is trusted input versus untrusted content?
Agent loopThe decision cycle itself, including whether a model is calledHow does it stop, recover and report errors?

The desktop modes Alejandro shows, including Standard, PTC, Minimal and Creator, illustrate different compositions. A custom loop that never calls a model is possible as an architecture demonstration; it would not, by itself, be a useful coding assistant.

Cordis in Five Ideas

Cordis is a separate open-source framework, not just a DSH-specific plugin folder. Its design paper describes composition across dependencies and time. For builders, the official primer reduces that to five practical ideas:

  1. Plugins provide capabilities. A module's apply(ctx) runs when the plugin loads.
  2. Services live in context. Other plugins can access a named capability through ctx.
  3. Dependencies are declared. An inject list delays activation until required services exist.
  4. Events connect behavior. Plugins can listen, transform, or coordinate without directly importing every other plugin. Current docs describe several dispatch forms; choose the one that matches the result you need.
  5. Effects have a lifetime. Registrations made through Cordis can be undone on unload; external resources need an explicit disposer through ctx.effect().

That last point is more than housekeeping. A plugin that adds a tool and cannot remove it cleanly makes experimentation and configuration changes much harder to reason about.

What Alejandro's Three Plugin Demos Actually Show

The code section moves from a minimal hello plugin to a named greeting tool and a guard around a shell action. The greeting shows dependency injection into DSH's tool service: the tool becomes available to the agent because the plugin registers it. The hello plugin makes the load step visible in the console. The guard shows that an event or execution boundary can be intercepted. It is not a comprehensive command policy or sandbox. String-based checks can miss equivalent operations, and any agent with broad filesystem access can cause damage through other routes. DSH's safety guidance calls for minimum permissions, backups, disposable environments and review of plugin code.

Try One Plugin Without Changing Your Daily Profile

This JQ AI SYSTEMS test follows DSH's official first-plugin tutorial. It verifies loading and unloading, not agent intelligence. Use a throwaway directory and current docs because the repository explicitly labels DSH a developer preview with breaking changes.

  1. Prepare the source checkout. Install Node.js, Git and pnpm, then clone the official repo. From its root, run pnpm install and pnpm run build. Review scripts and dependencies before running them.
  2. Create a scratch plugin. Make scratch-plugin/src/my-plugin.ts with the minimal module below. It only logs that it loaded.
  3. Add a temporary overlay. Make scratch-plugin/cordis.yml as below. Replace the example with the absolute path to your checkout; the official loader requires an absolute local plugin path here.
  4. Launch and verify. From the repo root run pnpm dsh web --patch ./scratch-plugin/cordis.yml. Open http://127.0.0.1:3080 and confirm the terminal prints the hello-plugin message. Stop the process and restart without --patch; the message should be gone. No model key is needed to test this log-only plugin, but chatting with an agent requires configuring a model provider.
import type { Context } from '@deepseek-ai/cordis'

export const name = 'hello-plugin'

export function apply(ctx: Context) {
  console.log('[hello-plugin] plugin loaded!')
}

scratch-plugin/cordis.yml:

- insert:
    - id: hello
      name: '/absolute/path/to/deepseek-harness/scratch-plugin/src/my-plugin.ts'

On Windows, use the absolute path format accepted by your checkout and verify it against the current tutorial. Do not paste a path from someone else's machine. This small plugin does not consume a service; a tool plugin would declare inject = ['tools'] before registering a tool. See the upstream example for that next step and for cleanup with ctx.effect().

From a Temporary Patch to a Desktop Plugin

A --patch overlay is a local experiment. For a plugin that should persist, the official packaging guide uses an npm bundle with a dsh.bundle manifest and a patch file, then adds that bundle to a named profile through dsh plugin --profile demo add ./hello-plugin. The CLI manages the profile under DSH's home directory; hand-editing its generated package manifest is not the recommended setup path. Alejandro shows a desktop installation in the video, but his screen is a point-in-time demo, not a compatibility promise for every release.

Before installing a third-party package, inspect its source and version, its requested services and its install scripts. The official packaging guide warns that allowing a git package's build script grants code execution during installation, outside an agent sandbox. Pin a revision and use a disposable profile for trials. A plugin that runs in your agent's process is not just a prompt template.

The Small Test Worth Running First

To decide whether DSH's flexibility is useful for your project, test one capability and its removal: (1) load a log-only plugin; (2) add a harmless greeting tool in a separate profile; (3) verify that the tool appears, returns the expected value and disappears when disabled; (4) inspect what the plugin could access before trying anything that touches files or commands. Record the DSH version, plugin revision and exact checks. That test tells you more about composability than a flashy self-modifying demo, and it gives you a baseline before adding model calls, network access or background execution. This is our suggested evaluation, not a benchmark claimed by Alejandro or DeepSeek.

Video Chapters

The application and its architecture

TimeTopic
00:00Introduction
01:00Desktop app demo
05:57What DSH is
08:22Cordis history

The framework and the build

TimeTopic
10:59What Cordis does
15:04Context and services
20:02Events
24:00Plugin code demo
28:54Loading the plugins

Sources and Limits

Checked 9 November 2026. Alejandro's video and supplied transcript are the source for his demonstrations and ordering. We checked architecture and setup against DeepSeek's repository, the Cordis primer, plugin tutorial and packaging guide. Background: the Cordis repository and design paper. The official product page describes the public preview. We did not install DSH, run Alejandro's plugins or audit the security of third-party bundles for this article. Check the current docs before executing commands.

More from Alejandro AO: X profile and LinkedIn profile.

Common questions

Is DeepSeek Harness itself a model?
No. DSH is an agent harness. It can connect to model providers, while Cordis composes its tools, agent behavior and other capabilities as plugins.
Do I need a model API key for the first plugin test?
The minimal hello plugin can load without calling a model. To use the agent in the Web UI, configure a supported model and credentials in Settings.
Does a plugin that blocks one shell command make the agent safe?
No. Alejandro uses a bash guard to demonstrate interception. It is not a complete sandbox, policy engine or substitute for least privilege and human approval.
Share
X LinkedIn Reddit
Build Yours

Want a system
like this one?

Book a free 30-minute call. We map your situation, identify the highest-impact automation, and figure out if we are a fit.

Book Free 30-min Call