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.