Install DeepSeek Harness Skills

Seven screenshot-verified steps from an empty folder to a skill the harness loads on every prompt — no restart, no marketplace, no manifest.

Last updated: 2026-09-12

Skills are the lightest extension DeepSeek Harness has: one Markdown file that teaches the agent a repeatable job. There is no install command to hunt for and no marketplace to trust — installing a skill means putting a SKILL.md where the harness reads it. Done right, it is picked up by the running session on the very next prompt, no restart required.

Every screenshot below comes from a recorded dsh session: Lesson 17 of a 60-minute in-depth course builds a release-sort skill live, and a beginner tour supplies the bundled-skills view. By the last step you will have created a skill, watched the harness discover it, and proven it loads in every new session.

Install a DeepSeek Harness skill in seven steps

  1. 1

    Create the skills folder in your project

    DeepSeek Harness reads skills from a .dsh/skills folder at the root of your workspace — one sub-folder per skill. The course creates release-sort, a skill that teaches the agent to order release notes by date. A single mkdir is the entire install: nothing is downloaded, no manifest changes, no build step. An .agents/skills folder from a Codex-style setup is read as well, and a skills folder under your user-level .dsh directory loads in every workspace.

    $mkdir -p .dsh/skills/release-sort
    Terminal in the harbor-log project confirming no .dsh folder exists, then running mkdir -p .dsh/skills/release-sort and starting the SKILL.md heredoc with a name and MUST USE description frontmatter
    Installing a skill starts at mkdir — one folder inside .dsh/skills, nothing more.Watch at 31:56
  2. 2

    Write the SKILL.md — or have the agent draft it

    Each skill is one Markdown file. The frontmatter carries the name and a description that doubles as the trigger — the course writes MUST USE when the user asks why harbor-log latest is wrong so the agent knows exactly when to reach for it. Below the frontmatter go plain-English steps, rules and fixture facts (here: 01-alpha.md is dated 2026-08-19, 99-zzz.md is 2024-01-01, so date order beats filename order). Asking DeepSeek Harness to draft the file works just as well, and skills copied from GitHub or migrated from Claude Code or Codex land in the same folder.

    Terminal echoing the finished .dsh/skills/release-sort/SKILL.md with sed, showing the frontmatter, two harbor-log fixtures and the rule to sort by frontmatter date, never by filename
    One Markdown file: trigger description on top, plain-English rule and fixtures below.Watch at 32:44
  3. 3

    Send a matching prompt — no restart needed

    Plugins need a harness restart; skills do not. Back in the same running session, send a prompt that matches the skill's description. The moment it goes out, DeepSeek Harness injects two context rows: the dsh system prompt and the skill catalog, which now contains release-sort. That catalog injection is the quiet confirmation that your file was discovered — before the model has answered anything.

    DeepSeek Harness chat showing Context injection rows for @deepseek-ai/dsh-system-prompt and skill-catalog immediately after a release-sort prompt is sent in the same session
    Send a matching prompt and the harness quietly injects the skill catalog — no restart.Watch at 32:24
  4. 4

    Verify the load in the trajectory

    Open the Trajectory tab for the receipt. You should see the available_skills reminder listing your skill, an assistant line saying it will load it first, then an actual skill tool call named release-sort, followed by the skill content being read from .dsh/skills/release-sort. If your skill never shows up in the catalog here, the folder path or the frontmatter is wrong — the trajectory tells you which.

    DeepSeek Harness trajectory view listing available_skills in a system-reminder, the skill tool call for release-sort, and the skill payload resolved from .dsh/skills/release-sort
    The trajectory is your receipt: available_skills, the skill tool call, the loaded content.Watch at 32:36
  5. 5

    Every new session picks it up again

    Skills are project luggage: open a brand-new session in the same workspace, ask the question again, and the skill catalog enters the context on its own. The course repeats the exact question in a fresh session and gets the same date-beats-filename verdict — proof the skill persists without any per-session wiring. For skills you want everywhere, install them once in the global skills folder and they travel with every workspace.

    Brand-new DeepSeek Harness session in the harbor-log workspace with the typed question of why node index.mjs list --limit 1 prints Alpha rather than Zzz
    A fresh session asks the same question — nothing skill-specific is wired up.Watch at 40:24
    DeepSeek Harness answer explaining that list --limit 1 prints Alpha because the sort and the limit slice are governed by frontmatter date, not filename, with both fixture dates shown
    Same verdict in a brand-new session — the skill traveled with the project.Watch at 40:48
  6. 6

    Skills you never installed: factory and plugin-carried

    Two kinds of skills ship without you doing anything. Factory defaults — how to read and write files, how to drive harness tools, the Cordis plugin-development guide — load last in every session. And plugins can carry their own usage skills: when a plugin loads, its skill descriptions are injected so the agent knows how to operate it. You can spot both in the trajectory: the skill catalog lists them right next to the ones you installed.

    DeepSeek Harness Creator-mode trajectory showing the available_skills context reminder with cordis-plugin-development and the skill tool call that loads it mid-build
    Bundled skills surface the same way: listed in context, loaded through the skill tool.Watch at 9:28
  7. 7

    When advice is not enough, ship a plugin

    A skill can only advise — nothing forces the agent to follow it. The course closes the lesson with a four-way summary: a skill is SKILL.md instructions the agent loads by name, a tool is code that actually executes, a command like /plan runs without an extra model turn, and a plugin enforces — its hooks can deny a tool call before it runs, at the cost of living outside your repo and needing a restart. If a missed step would be a disaster, promote the skill; our plugins-vs-skills guide walks through that decision.

    Terminal recapping four dsh concepts with echo one-liners — a skill is SKILL.md instructions, a tool is a skill/read/bash call, a command runs with no LLM turn — next to a plugin deny hook
    Advice, execution, shortcut, enforcement — pick the lightest one that actually binds.Watch at 32:54

DeepSeek Harness skills: FAQ

The questions that come up before you drop your first SKILL.md.

Where do skills get installed in DeepSeek Harness?

Project skills live at .dsh/skills/<name>/SKILL.md inside your workspace, and an .agents/skills/<name>/ folder from a Codex-style layout is read too. Skills you want everywhere go into the skills folder under your user-level .dsh directory. When two skills share a name, dsh resolves the clash by priority rank — the project-level folder wins over the compatibility folder.

Do I need to restart DeepSeek Harness after adding a skill?

No. In the recorded walkthrough a new skill is dropped into a running session's project and the very next prompt picks it up — the skill catalog is re-injected on send. Restarts are a plugin concern: plugins are wired into your profile and only load on the next launch.

How do I verify a skill is actually active?

Three checks, cheapest first: type a slash in the composer and look for your skill in the catalog; send a prompt that matches the description and watch for the skill-catalog context injection; open Trajectory and confirm the skill tool call fired with your skill's name. The trajectory also shows the base directory dsh resolved, which catches folder-path typos.

Can I reuse skills from Claude Code or Codex?

Usually yes. Global skills you already keep for Claude Code are pulled in automatically, and project skills in an .agents/skills folder are read as a compatibility format. If a skill uses a different layout, the agent may need a nudge or a converted copy — the files are just Markdown, so reformatting is trivial.

Is there a skill marketplace? Can I write my own?

There is no official skill marketplace — that is exactly what makes skills light. Three ways to get them: grab a folder from a GitHub skill repo or an awesome list, ask the harness itself to draft one, or migrate what you already keep in Codex or Claude Code. When writing your own, phrase the description as a trigger (MUST USE when the user asks for X) — that is what the catalog matcher sees.

Do skills work offline or with local models?

The skill mechanism is fully local: dsh reads plain Markdown files from your disk and injects them into context, so nothing is fetched at run time and any model — including a local Ollama model — can follow them. What a skill cannot do is grant new abilities; if the job needs code to execute, that is a tool or a plugin, not a skill.

Related guides

Where to go once your first skill is installed.

Sources & credits

Frames come from two public walkthroughs: Lesson 17 (Create a local project skill and use it) of a 60-minute in-depth course, and a 15-minute beginner tour. Every image deep-links back to the exact moment in its source video.

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.