# dsh CLI help
This reference contains complete help for the launcher, subcommands, and shipped profiles. Identical help appears once with every invocation listed. Help output retains its original language.
Run `pnpm run gen-cli-help` to regenerate; run `pnpm run verify-cli-help` to check freshness.
## Contents
- [`dsh`](#dsh)
- [`dsh plugin`](#dsh-plugin)
- [`dsh acp`](#dsh-acp)
- [`dsh headless`](#dsh-headless)
- [`dsh sdk`](#dsh-sdk)
- [`dsh sdk-minimal`](#dsh-sdk-minimal)
- [`dsh web`](#dsh-web)
## `dsh`
Invocations: `dsh --help`
```text
Usage: dsh [--profile] [options] [app-args...]
dsh plugin --profile
dsh: boot a DeepSeek Harness profile — an ordered stack of plugin-bundle patch
layers under your own overrides.
Arguments:
args arguments for the booted profile's app (see:
dsh --profile --help)
Options:
-V, --version output the version number
--profile the profile under $DSH_HOME/profiles to boot
--from-default-profile replace a custom profile with a fresh copy of a
shipped profile template
--patch extra patch-list overlay applied after the
profile layer (repeatable)
--dump-config print the composed profile tree and exit
--dump-config-schema print JSON Schema for profile entries and
patches without mounting
--dump-default-config print the profile tree without its user layer
or --patch overlays and exit
Examples:
dsh web boot the web profile (same as: dsh --profile web)
dsh rescue --from-default-profile web
recreate rescue from the shipped web template, then boot it
dsh headless "run the tests" answer one task, print the result, and exit
dsh tui --patch ./extra.yml boot a custom profile with one extra overlay
dsh tui --resume arguments after the launcher flags reach the app
dsh web --help the web app's own flags and help
dsh plugin --profile tui add install a plugin into the tui profile
```
## `dsh plugin`
Invocations: `dsh plugin --help`
```text
Usage: dsh plugin [options] [args...]
manage a profile's plugins by forwarding the remaining arguments to pnpm in the
profile directory
Arguments:
args pnpm arguments, forwarded verbatim (add , remove ,
why , ...)
Options:
--profile the profile whose plugins to manage (initialized on first
use)
-h, --help show this help
```
## `dsh acp`
Invocations: `dsh acp --help`, `dsh --profile acp --help`
```text
Usage: dsh --profile acp [options]
Serve automation clients over Agent Client Protocol stdio.
Options:
-h, --help show this help
Example:
dsh --profile acp serve ACP until the client disconnects
```
## `dsh headless`
Invocations: `dsh headless --help`, `dsh --profile headless --help`
```text
Usage: dsh --profile headless [options] [task...]
Answer one task and exit; the answer goes to stdout and diagnostics to stderr.
Arguments:
task the task text; multiple words are joined by
spaces, and `-` reads stdin
Options:
--json write newline-delimited run events to stdout
instead of the final message
--session-id adopt the persisted Session with this id; an
unknown id is an error
--permission-mode select a configured permission preset for this
task, including on resume
--approval-policy set approval behavior after selecting the
permission preset (choices: "ask", "never")
--add-dir allow an additional physical absolute directory
under workspace-write (repeatable)
-h, --help show this help
Examples:
dsh --profile headless "run the tests" answer one task and exit
echo "run the tests" | dsh --profile headless read the task from stdin
dsh --profile headless --json "run the tests" emit machine-readable run events
dsh --profile headless --session-id session-… "continue" resume an existing Session
dsh --profile headless --permission-mode workspace-write --add-dir /repo/.git "commit the fix"
grant shared Git metadata for this task
```
## `dsh sdk`
Invocations: `dsh sdk --help`, `dsh --profile sdk --help`
```text
Usage: dsh --profile sdk [options]
Serve DeepSeek Harness SDK clients over stdio JSON-RPC.
Options:
-h, --help show this help
Example:
dsh --profile sdk serve one SDK runtime until its client disconnects
```
## `dsh sdk-minimal`
Invocations: `dsh sdk-minimal --help`, `dsh --profile sdk-minimal --help`
```text
Usage: dsh --profile sdk-minimal [options]
Serve DeepSeek Harness SDK clients over stdio JSON-RPC.
Options:
-h, --help show this help
Example:
dsh --profile sdk-minimal serve one SDK runtime until its client disconnects
```
## `dsh web`
Invocations: `dsh web --help`, `dsh --profile web --help`
```text
Usage: dsh --profile web [options]
Serve the DeepSeek Harness browser UI.
Options:
--host bind address: one concrete IPv4 or IPv6 literal
of a local interface; wildcard addresses are
rejected
--no-open do not open the Web UI in the default browser
--port listen port; pass 0 to let the OS pick a free
one
--public-url advertise this HTTP(S) root in the printed,
opened, runtime-context, and DSH_WEB_URL forms;
grants no trust
--trusted-host extra authority the /api browser-trust fence
accepts (host or host:port; repeatable)
--tls-cert PEM server certificate chain; requires
--tls-key
--tls-key unencrypted PEM private key; requires
--tls-cert
-h, --help show this help
Examples:
dsh --profile web serve on the composed host and port
dsh --profile web --no-open serve without opening a browser
dsh --profile web --port 8080 serve on another port
dsh --profile web --host 10.0.0.7 bind one local interface address
dsh --profile web --public-url https://app.example/ui/ --trusted-host app.example
advertise a prefix-stripping HTTPS proxy entry and admit its authority
dsh --profile web --tls-cert ./server-chain.pem --tls-key ./server-key.pem
serve HTTPS with an existing certificate and key
```