Hmbown/CodeWhale · error
dsh is not installed
Error message
dsh is not installed
What it means
launch_spec matched NotInstalled: no dsh binary is on PATH at launch time, even though a connection record exists (it was checked earlier in the function). The user must install the DeepSeek Harness before this integration can launch.
Source
Thrown at crates/tui/src/integrations/dsh/mod.rs:697
})?;
if !report.state.launchable() {
match &report.state {
DshIntegrationState::Connected { .. } | DshIntegrationState::StaleVersion { .. } => {}
DshIntegrationState::Disabled { .. } => {
anyhow::bail!(
"DSH integration is disabled; run `{CLI_COMMAND} enable` to launch again"
)
}
DshIntegrationState::StaleConfig { reason, .. } => {
anyhow::bail!(
"DSH overlay is stale ({reason}); run `{CLI_COMMAND} update` before launching"
)
}
DshIntegrationState::Incompatible { reason, .. } => {
anyhow::bail!("installed dsh is incompatible: {reason}")
}
DshIntegrationState::Offline { reason } => anyhow::bail!("dsh is offline: {reason}"),
DshIntegrationState::NotInstalled => anyhow::bail!("dsh is not installed"),
DshIntegrationState::Detected { .. } => {
anyhow::bail!("DSH is detected but not connected; run `{CLI_COMMAND} connect`")
}
}
}
let binary = report
.detection
.binary
.clone()
.ok_or_else(|| anyhow::anyhow!("dsh binary path is unknown"))?;
let bundle_installed = record.bundle.is_some();
let profile = profile_override.unwrap_or(if bundle_installed {
bundle::BUNDLE_PROFILE
} else {
record.profile.as_str()
});
if !matches!(profile, "web" | "headless") && profile != bundle::BUNDLE_PROFILE {
anyhow::bail!(View on GitHub (pinned to 0c42157ee5)
Solutions
- Install dsh: npm i -g @deepseek-ai/dsh
- Retry the launch
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at crates/tui/src/integrations/dsh/mod.rs:697 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20).
Data as JSON: /api/errors/4ae0827533efa366.
Report an issue: GitHub.