dsh startup errors: command not found, settings unavailable
Startup errors look varied but sit in three layers: the command is missing, pnpm is missing, or a plugin fails to initialize. Identify the layer; mixing them leads to reinstalling in the wrong place.
Three layers first
Classify by where the error appears, not by its wording.
| Layer | Typical error | Test |
|---|---|---|
| Command | command not found / not recognized | Try npx once |
| Package management | pnpm not found on path | Check pnpm on PATH |
| Plugin loading | prepare, settings, failed to load plugins | Identify plugin and version |
Command layer comes first. If dsh is not found, plugin errors are meaningless; npx separates "not installed" from "wrong path."
Package management comes second. The command runs but plugin operations report pnpm; that is an environment issue, not a plugin issue.
Plugin loading comes last. Only after the first two pass do you inspect modules and fields.
Layer one: command not found
Four wordings, one cause: the system cannot find the executable.
- zsh: command not found: dsh. macOS and Linux; check global install and npm global bin on PATH.
- dsh not found. Same class; shell configuration may need a reload.
- 'dsh' is not recognized as an internal or external command. Windows CMD or PowerShell; check install location and PATH.
- dsh command does not exist. Same meaning; confirm the install method.
The fastest test is npx. Run npx @deepseek-ai/dsh --version. A version means the package exists and PATH is wrong; the same error means installation failed (source).
Do not guess at PATH. Check whether the global bin directory is listed, then reopen the terminal; fixing only the current session disappears on restart.
Layer two: pnpm and dependencies
The command runs, but profile plugin operations report pnpm.
- Check whether pnpm is installed: pnpm -v.
- If missing, install it and configure PATH persistently; temporary exports vanish.
- Re-run the failing command and confirm the pnpm error is gone.
- If pnpm exists but fails, check for version conflicts with which pnpm.
- Start again and confirm the plugin chain works.
pnpm is required for the plugin chain. Substituting npm may appear to install but fail at load, which is harder to diagnose.
Multiple versions are subtler than absence. A version mismatch may produce errors pointing at another module; confirm the binary actually used.
Layer three: plugin loading
With the first two layers healthy, startup failures point at plugins.
- cannot read properties of undefined (reading 'prepare'). Initialization read an empty object; often version, build output, or dependency related.
- crypto.randomUUID is not a function. The runtime lacks the API; common on older runtimes or across web environments.
- settings are unavailable in this browser. The browser cannot read settings; entry, cache, or permission related.
- failed to load plugins. The whole load phase failed; read the first failing plugin in logs.
The order is locate plugin, check version, disable and compare. Disabling all plugins proves "a plugin is at fault" but not which one; disable one at a time.
Diagnostic order: outside in
Command, package management, plugin; this order avoids duplicate work.
- Compare with npx to check the command layer.
- Check pnpm and PATH for the package layer.
- Read the first failing plugin in logs.
- Disable the suspect and retest startup; recovery identifies it.
- Upgrade or roll back that plugin and retest.
Change one thing per step. Changing PATH, pnpm, and plugins together hides which one fixed it.
Record each result. Command works, pnpm available, which plugin disabled; the next incident can compare.
Verify after fixing
Starting is not proof; verify three signals.
- Command signal: dsh --version prints a version.
- Load signal: startup logs show no failures and the plugin list is readable.
- Function signal: open a session, run one minimal operation, and confirm the plugin entry works.
All three must pass. A startup screen alone may mean a failed plugin was skipped while the app continued.
Keep the logs. Comparing before and after shows whether anything actually changed.
Prevention: upgrade and install boundaries
Most startup errors come from changing several things at once.
- Separate core and plugin upgrades: core first, then plugins.
- Upgrade one plugin at a time: failures are immediately attributable.
- Keep a rollback version: record pre-upgrade versions and configuration.
Boundaries are about diagnostic cost. One variable per change keeps one clue per problem.
Next steps
Classify, then fix layer by layer. For command lookup, read dsh command not found. For prepare errors, read cannot read properties of undefined reading prepare. For load failures, read Plugin load and activation failures.
Sources: dsh CLI README, DeepSeek Harness docs, deepseek-harness repository
FAQ
zsh: command not found: dsh has two possible causes: a missing global install or a PATH problem. If npx runs it, the package exists and the path is wrong.
Windows' not recognized as an internal or external command is the same class as macOS command not found: the system cannot find the executable. PATH syntax and install location differ between them.
dsh: pnpm not found on path means DeepSeek Harness needs pnpm to manage profile plugins. Install it and confirm it is on PATH; do not substitute npm.
cannot read properties of undefined reading prepare is a plugin-loading failure in DeepSeek Harness. One is an empty object during module initialization, the other a skipped load; identify the plugin and version first.
Related Terms
- PATH
- PATH is the list of directories the system searches for executables; when dsh or pnpm is missing from it, the terminal reports command not found.— dsh CLI README
- pnpm
- pnpm is the package manager DeepSeek Harness uses to manage profile plugins; without it, plugin installation and loading fail.— dsh CLI README
- plugin loading
- Plugin loading is the startup phase that calls plugin entry points along the dependency tree and completes registration.— DeepSeek Harness docs
- profile
- A profile is the target environment for plugin installation and execution; startup reads its composition and dependencies.— dsh CLI README
Sources
- dsh CLI README· deepseek-ai
- DeepSeek Harness docs· deepseek-harness
- deepseek-harness repository· deepseek-ai