Skip to content
MyDSHMy DSH Field Notes
中文
Independently maintained; not affiliated with DeepSeek. No association with mydsh.dev or other MyDSH sites.

Home/Getting started/Config & profiles

Creating and switching profiles without touching the default

You want to try a new config without breaking the one that works, or keep daily use and experiments apart.

VerifiedVersion and environmentChecked 2026-11-14
Host version
0.1.2-alpha.5
Existing profiles
web, desktop, headless
Checked
2026-11-14

Copyable command

dsh --dump-config --profile web

A profile is one directory holding one config set. Switching does not flip a global switch; it names which set to boot. That is why it is safer than editing the default: the default files are never touched.

What exists

ls ~/.dsh/profiles

Three here: web, desktop, headless. Each holds cordis.yml (main), cordis.patch.yml (patch layer), package.json, and its own node_modules.

Copy, then edit the copy

cd ~/.dsh/profiles && cp -r web trial

Copy node_modules along with it — profiles total around 1 MB — so the new one is not missing packages.

Booting a specific profile

dsh --profile trial web          # run web on the trial set
dsh --profile web                # back to the original
dsh --dump-config --profile trial  # print the composed tree, do not boot

--dump-config is the useful one: dump before editing to confirm your change actually lands in the composed result, without repeatedly booting.

An extra layer for one run

dsh --profile trial --patch ./extra.yml web

--patch is repeatable and stacks above the profile. Good for a change that should apply once, without touching the profile directory.

Delete the trial profile when you are done, or ~/.dsh/profiles accumulates copies, each with its own node_modules.

What counts as working

Check every line. All of them pass or the job is not done.

  • A new directory appears under ~/.dsh/profiles
  • Your change shows up in --dump-config output
  • Booting --profile web behaves exactly as before, proving the default was untouched

Where it fails

Symptom, cause, what to do — written in the order it actually happens.

SymptomCauseWhat to do
The new profile complains about missing packagesnode_modules was excluded when copyingDo not exclude it, or install once inside the profile directory
Edited cordis.yml but behaviour is unchangedThe edit was overridden by a higher-priority layerUse --dump-config to see the composed result and find the effective layer
profiles keeps growingTrial profiles were never deletedRemove profiles you no longer use

Sources

Verified means measured here. Compiled means every line carries a source.