The shipped boundaryWeb and headless auto-initialize. An interactive TUI is a separately installed community profile, not the headless runner.

Match the command to the lifecycle.

InspectConfig dump

Compose layers without booting a model, tool, Host, or Agent.

--dump-config
InteractWeb profile

Long-lived browser Host with Sessions, settings, and streaming UI.

dsh web
AutomateHeadless

One task, one fresh persisted Session, final text, then process exit.

--profile headless
ExtendPlugin profile

Install and compose an out-of-tree bundle under its own contract.

dsh plugin

Headless owns one interval.

npx @deepseek-ai/dsh@0.1.0-rc.7 --profile headless \
  "Inspect this repository. Do not edit files. Report risks with file evidence."

Read three process signals separately.

stdoutLast assistant text

Useful review output. Not proof that a requested side effect exists.

stderrError evidence

Empty on success; terminal Agent errors or boot diagnostics on failure.

exitDurable turn reason

0 only when the final owned turn/end is completed.

worldIndependent gate

Tests, files, diffs, artifacts, and deployment probes decide real completion.

Inspect before spending.

01Defaultshipped bundle layers
02Resolvedprofile + home + argv patches
03Reviewprovider, tools, policy, persistence
04Runexact workspace + bounded task

Want terminal chat? Audit the profile.

Community surfaceTUI bundlecommand grammarSession continuationcredential path
Isolated firsttui profiledsh --profile tui --dump-configdsh --profile tui --help
AcceptanceCold resume + removaldisposable dataoriginal profiles still boot

Primary evidence.

Keep the CI contract.

The full guide includes exact stdout, stderr, exit-status, approval, configuration, app-argument, failure, and TUI audit behavior.

Read the full guide