dsh CLI cheat sheet
The dsh launcher boots a named profile, forwards unknown flags to that profile's app, and uses dsh plugin for plugin management.
The launcher parses only its own flags. The first token it does not recognise starts the booted app's arguments — which is why dsh web --port 8080 puts --port in the web app, not the launcher.
Everything below is from dsh --help and dsh web --help on dsh 0.2.1-rc.2.
Boot something
dsh <name> and dsh --profile <name> are the same call: boot the profile under $DSH_HOME/profiles/<name>.
dsh web is the web profile; dsh headless "run the tests" answers one task, prints the result and exits; dsh --profile acp serves automation clients over stdio.
dsh web
dsh --profile web --port 8080
dsh headless "run the tests"
dsh --profile acpWeb app flags
These belong to the web app, so they go after the profile name: --host, --port, --no-open, --public-url, --trusted-host, --tls-cert, --tls-key.
--host takes one concrete local address; wildcard addresses are rejected. --port 0 lets the OS pick a free port.
dsh web --host 127.0.0.1 --port 8080 --no-open
dsh web --helpProfiles and plugins
dsh plugin --profile <name> <pnpm args> forwards to pnpm inside the profile directory, so add, remove and update behave like pnpm.
--from-default-profile <template> replaces a custom profile with a fresh copy of a shipped template, then boots it — useful when a profile is wedged.
dsh plugin --profile web add <package>
dsh rescue --from-default-profile webInspect without booting
--dump-default-config prints the profile tree without your layer, --dump-config prints the composed tree, and --dump-config-schema prints JSON Schema for entries and patches.
--patch <path> adds one more overlay after the profile layer; it is repeatable.
dsh --profile web --dump-config
dsh --profile web --dump-config-schema
dsh tui --patch ./extra.ymlCommon questions
Why does dsh --port 8080 not work?
--port belongs to the web app, not the launcher. Write dsh web --port 8080.
How do I see what a plugin changed?
Compare dsh --profile <name> --dump-default-config with --dump-config; the difference is your layer plus the plugin patches.
How do I recover a broken profile?
dsh <name> --from-default-profile <template> rebuilds it from the shipped template, then boots it.
What is the difference between headless and web?
Headless runs one task and exits with the answer on stdout. Web serves the browser UI and keeps sessions open.
Is there a plain dsh --help?
Yes, that is the launcher help. dsh web --help shows the web app's own flags.