Presets on this site are just directories of YAML in the site repository. There is no account system and no upload form — submissions are pull requests, reviewed like code.
One folder per preset under src/content/presets/, named by its install slug (lowercase, hyphens, no spaces):
src/content/presets/my-great-preset/
├── meta.yaml # site metadata (card, category, verification)
├── preset.yml # dsh display metadata (name + description)
└── agent.cordis.yml # the actual plugin wiring & persona meta.yamlname: My Great Preset
description: One crisp sentence — shown on cards and in the dsh picker.
order: 10 # picker sort; built-ins take 1–4
category: Coding # Coding | Review & Quality | Writing | Research | Data | Ops | Learning
tags: [python, cli] # lowercase, 2–4 of them
author: your-github-handle
mountedTools: [tool-fs, tool-bash] # row ids you actually mount in agent.cordis.yml
useCases: # 2–4 bullets: when should someone reach for this?
- Refactoring legacy Python CLIs
- Writing regression tests before touching code
highlights: # 1–3 things that make this preset different
- Refuses to edit files without a failing test first
verifiedVersion: 0.1.0-rc.7 # the dsh release you actually tested on
verifiedDate: "2026-08-18"
license: MIT preset.ymlname: My Great Preset
description: One crisp sentence for the dsh preset picker.
order: 10 agent.cordis.ymlStart from a copy of a built-in preset (never edit standard in place — upgrades overwrite it), then adjust: Rows are id (local) + name (the real @deepseek-ai/dsh-* package) + optional config:
# My Great Preset — https://dshpresets.com/presets/my-great-preset
# Format matched to the built-in presets: apps/cli/config/agent-presets
# Rows your build actually boots: dsh --profile web --dump-config
- id: persona
name: '@deepseek-ai/dsh-persona'
config:
text: |-
You are a … (specific role, operating rules, refusals)
- id: tool-fs
name: '@deepseek-ai/dsh-tool-fs'
- id: tool-bash
name: '@deepseek-ai/dsh-tool-bash'
disabled: true # hard-disable: the tool is not mounted at all What maintainers look for before a preset earns the verified badge:
Fork the repository, add your folder, run pnpm build to prove the site builds, and open a pull request with one paragraph: what it does, which dsh version you tested, and a short session transcript excerpt.
dsh is in developer preview and will break plugin ids between releases. When a new dsh version lands, maintainers re-run every preset; ones that fail lose the verified badge until patched. That honesty is the whole point of this site.