Skip to main content

How to use deepseek-harness-desktop

Fixes several compatibility issues for DeepSeek Harness desktop client: queue messages not sent after cancellation, stop prompt displaying [object Object], and tool calls for some models having an extra arguments wrapper.

This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.

This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.

Quick start

dsh-desktop-compat

— source: plugin_wiki.wiki_content

Install & verify

dsh plugin --profile web add --allow-build=@linxin666/dsh-desktop-compat github:ningbainb/deepseek-harness-desktop#path:packages/dsh-desktop-compat

Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.

— source: plugins.install

Key points

  • 可靠 Windows 启动:移除 PowerShell 5.1 -WindowStyle Hidden 与 Electron Node 模式的冲突,隐藏窗口仍由 spawn 的 windowsHide 处理;空旧补丁、状态订阅竞态和 IPC 错误不会再把启动页永久留在 8%。
  • 验证过的 Runtime 组合:内置 @deepseek-ai/dsh 0.1.0-rc.7、dshmarket 1.15.0、Web UI 聚合 0.2.3、兼容 rc.7 的 Codex Connect 与 dsh-live-stats 0.1.20,Stable 继续精确锁定而非追随 latest。
  • 托盘与后台自动化需显式选择:默认关闭仍会退出。选择“最小化到托盘并启用后台自动化”后,关闭主窗口才保留 Runtime 和到期任务;显式退出、更新、安全模式和崩溃路径一律完整停止。
  • Host 持久任务调度:Task Board 保存时区、cron 槽位、租约、misfire/running 策略和确定性运行键;启用后台自动化时通过真实 DSH Session 执行并回写 Task Run,Host 不可用时仍回退浏览器调度。
  • 可审计的扩展边界:扩展坞校验 dsh.compatibility 的版本、Desktop API、能力、Surface 与运行时证据,并在 profile 写入 desktop-plugins.lock.json。browser-safe SDK 不导入 Electron 或私有 DSH 模块;预览的外部打开仅传工作区根和相对路径,Host 验证后才交给系统。

— source: plugin_wiki.readme_en (fallback readme_raw)

FAQ

Is this plugin for Web UI or desktop?

For desktop. README.md:29 explicitly states "DeepSeek Harness Desktop 2.0 will automatically mount this bundle in an isolated desktop profile. This bundle is not provided as a general Web UI plugin". It relies on DSH desktop's isolated profile behavior, with a different lifecycle from regular Web UI plugins.

Will it modify the DeepSeek Harness itself?

No. All behavior is implemented through public SDK hooks (src/index.ts:51-58, src/recovery.ts:15-30, src/tool-call-normalization.ts:339-352), no DSH source files are modified; cordis.patch.yml only declares inserting its own bundle.

What visible problems can it solve after using it?

Three types: (1) After user cancels the current reply, regular queued subsequent messages are no longer silent - the plugin will wake up the official agent to continue sending (src/recovery.ts:15-30, src/index.ts:51-53). (2) Tool results after cancellation no longer display as "code run failed (abort): [object Object]", but instead give a Chinese-friendly prompt "Current execution stopped, queued messages will continue sending" (src/recovery.ts:6, src/recovery.ts:64-73). (3) Some model adapters output tool calls with an extra layer of wrapping like {"arguments":{...}}, the plugin will strip one layer after schema validation (src/tool-call-normalization.ts:93-152).

What configuration is needed to use it?

Both README.md:33 and README.zh.md:30 state "this bundle has no user configuration items". Neither queuing behavior nor steering message behavior will be changed by it. The only runtime switch is DSH_DESKTOP_BACKGROUND_AUTOMATION=1 - when the desktop background automation mode is enabled, it will additionally enable the Task Board's Host scheduler (src/index.ts:33-44).

When should it be uninstalled?

It can be uninstalled after upstream DSH fixes these three issues: (1) Official can automatically continue pushing queued messages after cancellation, (2) Tool cancellation results have a stable display format, (3) Upstream adapters or agent loop handle the arguments wrapper layer themselves. The removeWhen field in the patch list (src/patch-registry.ts:49-86) specifies the removal conditions.

Will it work on versions other than 0.1.0-rc.7?

Only guaranteed for 0.1.0-rc.7. Each patch in src/patch-registry.ts:49-86 has applicableVersions hardcoded to ['0.1.0-rc.7'], and dependencies in package.json:38-44 are also locked to 0.1.0-rc.7. Please verify the three behaviors are still necessary in desktop before switching to other versions.

Should I be concerned when I see dsh-desktop-compat warnings in the logs?

Not necessarily. Tool call parameter restoration outputs outcome/reason/provider/model/tool/callId in diagnostic logs (src/tool-call-normalization.ts:154-171, 340-352), where outcome=rejected means "shouldn't modify so didn't modify", outcome=normalized means "successfully stripped one layer of wrapping" - both are normal information and won't log raw tool parameters. Queue recovery failures also write a warn (src/index.ts:46-49).

— source: plugin_wiki.faq_json

Compatibility

  • DSH: 0.1.0-rc.7(package.json:38-44 的 dependencies 全部锁到 0.1.0-rc.7;src/patch-registry.ts:49-86 的 applicableVersions 也只列 0.1.0-rc.7)
  • Node: ^22.19.0 || >=24.0.0(package.json:7-9 的 engines.node)

— source: plugin_wiki.compatibility_json

Pitfalls

Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.

— source: general rule