DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Desktop Kit — DeepSeek Harness 插件(DSH Plugin)
← Plugins
D

dsh-desktop-kit

Desktop Kit

DeepSeek Harness (DSH) 的自有桌面外壳:一个小型插件,可在原生 Tauri 窗口中打开网页界面——真正的 macOS 全屏(带装饰窗口)、单实例,以及关闭窗口即关闭 Harness 的生命周期。无托盘,不捆绑 Chromium。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:MDR-EX1000/dsh-desktop-kit#6e8103115709269386bb5e0353725b6ad53f2548
README兼容性版本

兼容性与来源证明

Desktop Kit 以 dsh-desktop-kit 发布,当前版本为 0.2.6。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/7

版本

0.2.6stable
2026/9/7
0.2.3stable
2026/8/25
0.2.1stable
2026/8/24
查看其余 2 个版本收起版本
0.1.5stable
2026/8/24
0.1.4stable
2026/8/20

相关插件

正在加载相关插件…

最新版
0.2.6
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 2
周下载
0
最近提交
2026/9/7
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-desktop-kit

Self-owned desktop shell for DeepSeek Harness (DSH): a small plugin plus a native Tauri window over the harness web surface. The macOS arm64 release package includes the native shell and clickable DSH.app launcher.

dsh web starts → the plugin spawns the shell on the served loopback URL → you get DSH in a real desktop window. You can still use the browser as a second client by opening the loopback URL yourself; the desktop app does not open that extra browser window during a cold launch. No fork, no repackaged runtime, no second profile — everything stays a plugin over your existing harness.

Why not the third-party shell?

dsh-desktop is great and was the blueprint. We rebuilt a smaller one for one concrete reason: real macOS fullscreen. Its window is frameless with a web-drawn title bar and never wires up setFullscreen — the maximize button is zoom, not a native fullscreen Space. This shell uses a plain decorated window, so the green traffic-light button and Ctrl+Cmd+F give you true macOS fullscreen out of the box.

Features (v0.2.6)

  • Authenticated native window on the loopback web surface — the plugin uses DSH's connection service to mint a process-token URL, so the WebKit client can establish its signed browser cookie under DSH 0.1.2-rc.1; the visible URL becomes clean after the exchange.
  • Real macOS fullscreen — decorated window, native fullscreen Space, no custom title bar needed.
  • Single instance — a second launch focuses the existing window instead of opening another.
  • Lifecycle contract — closing the window exits the shell with code 0, and the plugin shuts the harness down; plugin teardown kills the shell. No orphaned processes on either side.
  • Self-installing macOS release — the packaged arm64 shell and native Mach-O launcher are copied to ~/.dsh/bin, and the clickable DSH.app is installed on the first dsh web start; no Rust build is required. Launching the app does not open Terminal.app.
  • Graceful degradation — on an unsupported platform or source checkout without bundled assets, the harness keeps serving the web UI in the browser, with an actionable log line.
  • Small — system WebKit (WKWebView), no bundled Chromium; the shell binary is a few MB.
  • External links that work — target="_blank" / cross-origin links are delegated to the system browser via the shell's kit_open_external command (a bare WKWebView renders them dead otherwise).
  • Browser-style zoom — Cmd/Ctrl + = / - / 0 zooms the page (persisted), something a bare WKWebView does not offer.

Deliberately not in v0.1: tray, OS notifications, file panel, in-app updater, control channel. The architecture (control pipe over stdin/stdout, dshdctl: protocol) is documented in the blueprint and can grow later.

Architecture

dsh web  (your existing web profile)
  └─ dsh-desktop-kit (this plugin, inject: [webServer, connection])
       └─ connection.authenticatedUrl(clean URL)
            └─ spawns dsh-desktop-kit <authenticated-url> <title>
            └─ native WKWebView window on http://127.0.0.1:<port>
                 window closed → exit 0 → plugin shuts the harness down

The process token is used only to establish the persistent signed browser cookie. Logs keep the clean loopback URL so the credential is not copied into terminal output. The plugin resolves the shell binary in order: config.bin / DSH_DESKTOP_KIT_BIN → $DSH_HOME/bin/dsh-desktop-kit → PATH → ~/.local/bin/dsh-desktop-kit.

Install

Requires the dsh CLI and macOS (other platforms are untested). Version 0.2.6 supports DSH 0.1.2-rc.1 and later compatible 0.1.x releases, including the new launch-token authentication flow.

# 1. the plugin
dsh plugin --profile web add dsh-desktop-kit          # dsh-market
# or from the latest prebuilt GitHub Release tarball:
dsh plugin --profile web add https://github.com/MDR-EX1000/dsh-desktop-kit/releases/latest/download/dsh-desktop-kit.tgz
# or from a checkout / GitHub source:
dsh plugin --profile web add /path/to/dsh-desktop-kit

# 2. restart dsh web — the release package installs the shell and DSH.app,
#    then opens the native window with it

The macOS arm64 release package includes the native shell, native launcher, and app/ assets. The GitHub source repository also tracks the compiled plugin lib/, the arm64 bin/dsh-desktop-kit and bin/dsh-launcher, and the app assets, so a dsh-market GitHub-source install does not need a local TypeScript or Rust build on Apple Silicon. Release packages use the stable filename dsh-desktop-kit.tgz across versions, so the releases/latest/download URL remains valid after upgrades. On the first dsh web start it installs the native shell and launcher to ~/.dsh/bin and creates ~/Applications/DSH.app. Signed executables are replaced atomically so macOS does not reuse stale code-signature state after a local upgrade, and the completed app bundle is ad-hoc signed after its resources are assembled so strict bundle verification succeeds. A source checkout still requires cargo build --release only when rebuilding the native shell; app/install.sh compiles the small native launcher with clang when a prebuilt bin/dsh-launcher is not present.

Source-install maintenance notes

If the dsh-market catalog omits the tarball field, dsh-market falls back to github:MDR-EX1000/dsh-desktop-kit. The installer then uses the repository's current default-branch commit instead of the latest formal Release; it does not rebuild this plugin during installation. The committed lib/, bin/dsh-desktop-kit, bin/dsh-launcher, and app/ files are the installable runtime assets and must remain in Git.

When changing the TypeScript plugin or the native shell, regenerate and commit the corresponding artifacts before users install from GitHub:

pnpm build                         # refreshes lib/
cd shell && cargo build --release  # refreshes the native binary when shell code changed
# copy target/release/dsh-desktop-kit to bin/dsh-desktop-kit
# build/copy app/dsh-launcher.c to bin/dsh-launcher when the native launcher changes

The bundled binary is currently macOS arm64. A GitHub-source install does not cross-compile it for Intel Macs, Linux, or Windows; unsupported platforms keep the browser fallback described above. Choose a Release tarball when you need the exact tested Release contents, and choose the GitHub source target only when following the default branch is intentional.

To uninstall: dsh plugin --profile web remove dsh-desktop-kit, delete ~/.dsh/bin/dsh-desktop-kit, and remove ~/Applications/DSH.app if it was installed.

Clickable app icon (macOS)

app/install.sh   # builds ~/Applications/DSH.app (native launcher; idempotent)

The bundle's CFBundleExecutable is a native Mach-O launcher, not a shell script. It invokes the resource script without attaching a TTY, so macOS does not start Terminal.app. The bundle is still a thin launcher, not a second harness: if 127.0.0.1:3080 already answers (e.g. a terminal-started dsh web), the icon just opens a window on that instance; otherwise it boots dsh web --no-open itself. The server still starts normally, but the desktop entry does not open a duplicate browser client. Starting a second dsh web would die on EADDRINUSE — earlier hand-rolled wrappers did exactly that when an instance was already up, which is why the launcher lives in this repo now. An HTTP 401 response counts as "already running" because DSH 0.1.2 deliberately protects its unauthenticated root URL.

Development

# plugin half (TypeScript)
pnpm install
pnpm build        # tsc → lib/
pnpm test         # vitest — spawn/exit/resolution logic, all fakes
pnpm typecheck

# shell half (Rust / Tauri v2)
cd shell
cargo build --release   # binary at target/release/dsh-desktop-kit

Install the built plugin into your harness for a live run:

dsh plugin --profile web remove dsh-desktop-kit 2>/dev/null
dsh plugin --profile web add /path/to/dsh-desktop-kit
cp shell/target/release/dsh-desktop-kit ~/.dsh/bin/
# restart dsh web

Configuration

Plugin config keys (defaults shown):

KeyDefaultMeaning
bin''Explicit shell binary path; empty resolves $DSH_HOME/bin → PATH → ~/.local/bin. Also settable via DSH_DESKTOP_KIT_BIN.
title'DSH'Window title (argv[2] to the shell).

Shell argv: dsh-desktop-kit [url] [title] — the plugin supplies an authenticated URL; standalone defaults remain http://127.0.0.1:3080 and DSH. --selftest runs a scriptable native-fullscreen enter/exit check (exit 0 on pass); DSH_KIT_NO_SINGLE_INSTANCE=1 runs a side-by-side instance (selftest, dev).

Known limitations

  • macOS is the only tested platform (WKWebView). Linux/Windows builds are unverified.
  • Plugin reload while the harness stays up is not handled — restart dsh web after reinstalling.
  • A fresh WebKit data store cannot attach through the standalone DSH.app launcher to a server that was started without Desktop Kit: the launcher has no access to that server process's launch token. Once Desktop Kit has established the signed cookie for its WebKit data store, later attaches work.
  • No close-to-tray: closing the window shuts the harness down (by design, matching the referenced behavior).

License

MIT

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rClient Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包