6. FAQ
August 24, 2026 · View on GitHub
@deepseek-ai/dsh-toolslatestis stale. Pin to thenext-tag version (^0.1.0-rc.6).- Node too old.
^22.19 || >=24; otherwise you get anEBADENGINEwarning (harmless). - Mixed
dsh-*version lines. Keep all of them on the same0.1.0-rc.x. - Importing
@deepseek-ai/cordisat runtime. It's a peerDependency —import typeonly. - Not
"type": "module". Plugins must be pure ESM. - Dropping the disposer.
ctx.tools.register/ctx.onauto-dispose; for your own timers/connections, wrap them inctx.effect(() => { ...; return cleanup }). dsh plugin add <dir>relative-path anchoring. Run it from the plugin's parent directory.nameincordis.patch.ymlis a package name, not a relative path. (dsh-spike, not./dist/tool-time.js.)- Assuming file order = load order. Load order is
injectservice dependencies. tools/changeis an unfiltered registry-subject notification. Host-level listeners see every tool register/unregister — booting emits dozens, that's normal.- npm/pnpm ≥10 block native build scripts (koffi, node-pty). A fresh
npx @deepseek-ai/dsh(or a plugin install) can stall because the package manager withholds the install scripts of native dependencies DSH needs. Approve them — npm:npm approve-scripts koffi node-pty(ornpm approve-scripts --all; on npm 10 the command isnpm approve-builds); pnpm:pnpm approve-builds. npm/pnpm ≥10 now ask before running install scripts (supply-chain hardening) — expected, not a bug. - External links dead in desktop shells (Electron / bare WKWebView). A shell without an
openExternalproxy silently swallows everytarget=_blank/window.openclick. Plugin-side we already fall back to copy-link + toast (plugin-manager 0.8.1+); the real fix is host-side — two lines of Swift: implementWKUIDelegate.createWebViewWith→NSWorkspace.shared.open(url), or cancel external hosts indecidePolicyForand open them in the system browser. - Cordis patch config written but ignored. A config override must be a top-level
{ id, config }row — wrapping it in a- set:list is silently skipped, so your config "just doesn't take effect". Real-world pitfall: notify v0.2 shipped exactly this.
← Prev: Distribution and publishing · Contents · Next: Skins and Personalization →