Install your first plugin
Add a plugin to a dsh profile, confirm the layer actually applied, and remove it cleanly.
Every listing on this site carries a copy-ready install command. It goes into a profile β one runnable composition of bundles.
dsh plugin --profile demo add <package-name>
Omit --profile for the default profile. The first install initialises the
profile with @deepseek-ai/dsh-base as its first bundle.
Confirm it applied
Installing a package and activating its layer are two different things. Check before you boot:
dsh --profile demo --dump-config
You should see a # == <package-name> layer in the output. If it is missing, the
package installed as a plain dependency β it has no dsh.bundle manifest and
contributes no configuration.
Remove it
dsh plugin --profile demo remove <package-name>
This drops both the dependency and the layer.
How layers stack
A profile is an ordered list of bundles. At boot the harness applies each
bundle's patch layer in that order β @deepseek-ai/dsh-base first, then the
bundles in the order you installed them. When two layers touch the same plugin
row, the later one wins, and it replaces the row's whole configuration rather
than merging into it. That is how plugins patching the same seam still compose:
the one listed later in the profile has the final say.
The merged patch file
The CLI accumulates a profile's patches into $DSH_HOME/cordis.patch.yml,
which the harness reads when the profile boots. Treat that file as generated
state, like a lockfile: let the commands update it, and do not hand-edit it.
Temporary --patch overlays
On top of the profile you can add extra overlays at boot with the --patch
flag, each pointing at another patch file. Overlays are applied last, so they
override everything in the profile, and they never modify the profile itself β
drop the flag and the profile boots exactly as before. Use them for experiments
or one-off tweaks you do not want to keep.
Last updated 2026-08-22