9. Presets and Scenario Packs
August 15, 2026 · View on GitHub
DSH's agent presets let you package a persona, a tool set, and a skill directory into a
one-click "scenario" that the user can select from the Settings UI — no restart needed.
This chapter covers the official preset mechanism, the @dsh-suite/preset-center pack of
three Chinese presets, and how to write and contribute your own.
9.1 The agent-presets mechanism
DSH scans $DSH_HOME/.agent-presets/<id>/ on every agent-preset query. Each preset
directory contains two files:
agent.cordis.yml— the Cordis plugin rows that compose the agent's plane (persona, tools, instructions, skills). This is a standardcordis.ymlfragment; every service row must sit inside acordis:groupwith anisolaterealm so the preset's instances don't leak into other presets or sessions.preset.yml— display metadata:name,description, andorder(for sorting in the picker UI).
The mechanism is hot: the agent-presets plugin re-scans the directory on every call or settings open. Create a preset directory, and it appears in the picker immediately — no restart, no reload.
[JSON object] The official picker showing three presets from preset-center.

9.2 @dsh-suite/preset-center — three Chinese presets
Install the pack:
dsh plugin --profile web add @dsh-suite/preset-center
After installation, Settings → 场景包 / Preset Packs → click "Apply" on any preset.
The preset is written to $DSH_HOME/.agent-presets/<id>/ and appears in the official
agent-presets picker (Settings → Agent presets).
The three presets:
| Preset | Persona | Key tools |
|---|---|---|
小红书笔记助手 xiaohongshu-notes | Viral note planning and writing (topic, title, body, hashtags, cover) | web search, fs, skill, ask-user, todo (no shell) |
中文文案润色 copy-polish | Multi-style Chinese copy polishing: de-AI-ify, keep meaning, with change notes | fs, skill, ask-user, todo (no shell) |
日报周报生成器 daily-report | Structured daily/weekly reports from scattered notes (progress, issues, plan) | fs, skill, ask-user, todo (no shell) |
All three presets are based on the official standard agent preset with a custom persona,
shell disabled, and web search toggled per scenario. The preset-center host plugin handles
the "Apply" UX: it writes the preset files into the user root, and shows a preview of the
persona text and tool configuration before applying.
9.3 Writing your own preset
Create a directory under $DSH_HOME/.agent-presets/<your-id>/ with two files:
preset.yml — the display metadata:
name: My Preset
description: What this preset does, in one line.
order: 50
agent.cordis.yml — the composition. Start by copying the official standard
preset from apps/cli/config/agent-presets/standard/agent.cordis.yml in the
deepseek-harness repo, then customize:
- Change the persona row — replace the
textfield with your own system prompt. - Add or remove tool rows — e.g., disable
tool-bashfor a writing preset, or addtool-webwithfetch: truefor a research preset. - Add a skill directory — point
skill-filesystem'scustomSkillDirsto a relative path inside your preset directory. - Keep every service row inside a
cordis:groupwithisolate: true— the preset framework rejects rows without a realm.
Once the files are in place, the preset appears in the picker immediately. Apply it, and every new session using this preset gets your custom persona and tool set.
9.4 Contributing a preset
To submit a preset to the @dsh-suite/preset-center pack:
- Fork whyihaveyou/dsh-suite.
- Create a new directory under
packages/preset-center/presets/<your-id>/withagent.cordis.ymlandpreset.yml. - Test it locally: copy the directory to
$DSH_HOME/.agent-presets/<your-id>/and verify it appears in the picker and works as expected. - Open a PR. The maintainers will review the persona, tool set, and isolation.
For a standalone preset (published as its own npm package), follow the same structure
and ship it as a dsh.bundle that installs the preset files into the user root.