DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Desktop Ui — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-desktop-ui

Desktop Ui

DeepSeek Harness 网页 GUI 的桌面模式:将会话以可移动、可调整大小的窗口打开,并配有任务栏。

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-desktop-ui@0.1.7
README兼容性版本

兼容性与来源证明

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

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/10/19

版本

0.1.7stable
2026/10/19
0.1.3stable
2026/10/18
0.1.2stable
2026/10/17
查看其余 1 个版本收起版本
0.1.0stable
2026/10/17

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

继续浏览 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 配置层Ab Chartdsh-ab-chart带有绘制其调用的浏览器卡片的图表渲染工具,封装在一个可发布的插件包中Web App@monotykamary/dsh-web-appdsh browser-surface 捆绑包:在 dsh-base 之上的 Web 补丁层,加上运行时衔接插件(前端 dist 提供服务、web-surface 提示符、Bash 运行时变量、URL 行)

README

dsh-desktop-ui

Desktop mode for the DeepSeek Harness web GUI. Keep the sidebar exactly as it is, and turn the conversation area into a desktop where every session is a movable, resizable window — with a taskbar along the bottom.

  • Source code: github.com/mrbeandev/dsh-desktop-ui
  • npm package: npmjs.com/package/dsh-desktop-ui

Contents: Why · Install · Features · Compatibility · Development · Local setup · Release checklist

Four sessions from different workspaces tiled on the desktop

Why this plugin exists

DSH shows one conversation at a time. When you juggle several sessions — a long agent run, a quick question, a code review — you keep clicking back and forth in the sidebar. Desktop mode lets you keep them all on screen at once, arrange them side by side, and park the rest in a taskbar.

Install from npm

dsh plugin --profile web add dsh-desktop-ui

Restart dsh web when asked, then refresh the DSH page. A Desktop mode switch appears in the sidebar, directly above Settings.

To remove:

dsh plugin --profile web remove dsh-desktop-ui

Restart and refresh. The normal conversation view comes back unchanged; only the browser-local window layout remains in localStorage.

Features

FeatureWhat it does
Desktop mode switchSits directly above Settings. Off by default; the choice persists in this browser. Turning it off returns to the normal conversation on the focused window's session.
Sessions as windowsClicking a session in the sidebar opens it as a window. A session can only have one window — clicking it again restores and focuses the existing one. Every window shows the same conversation UI as the main chat — header, view tabs, transcript, composer, and anything other plugins add (for example dsh-rewind-plugin's rewind button under your messages).
Window titlesEvery title bar reads `workspace
Find it in the sidebarHovering a window highlights its session and its workspace in the sidebar. If that workspace is collapsed, it opens while you hover and closes again when you move away (unless you clicked in the sidebar meanwhile). Turn this off in Plugins → dsh-desktop-ui → Highlight the sidebar on hover; the choice is saved with the layout.
Window controlsDrag the title bar to move; drag any edge or corner to resize; double-click the title to maximize/restore; minimize, maximize and close buttons.
Pop out (browser only)The ↗ button left of minimize opens that session in its own browser window, showing just that conversation (no sidebar). The desktop keeps a placeholder with Pop back in; the popout window has a Pop back in button in its header too. Either one closes the popout and returns the session to the canvas. Closing the popout window yourself also brings it back. The button is hidden in the DeepSeek desktop app, which is detected through the data-platform marker its preload sets on <html> (the same signal DSH's shortcut layer uses).
Linked bordersWhen windows sit side by side or stacked (for example after Tile or Side by side, or a left/right snap), dragging the border between them resizes all of them at once: as one grows, its neighbour shrinks, and the gap stays the same. In a grid the whole straight split moves together. It stops at each window's minimum size. Corner grips and windows that don't touch still resize on their own.
SnappingDrag a window to the left or right edge to fill that half, or to the top to maximize.
TaskbarNew session button, one button per window (click to focus, click the focused one to minimize, a dot shows running sessions), Cascade / Tile / Side-by-side layouts, a clock, and a Show desktop strip at the far right.

Closing a window never deletes or archives a session. The layout is stored as one small JSON value in this plugin's own config entry (dsh-desktop-ui → layout in your profile's cordis.patch.yml), written through DSH's settings service, with a browser localStorage copy (dsh-desktop-ui.state.v1) for instant reloads. It contains session ids, geometry and flags only — never conversation content, credentials or prompts. The plugin makes no network requests of its own. To reset the desktop, remove the layout line or switch Desktop mode off and close the windows.

Dark theme

Dragging a window to the right edge shows the snap preview

A session popped out: the canvas keeps a Pop back in placeholder

The popout browser window shows just that conversation, with Pop back in in its header

Compatibility and limitations

Requires DSH >=0.2.0-rc.2 <0.3.0. Tested on DSH 0.2.0-rc.2 with Node 24.

This is an internal integration, not a stable public DSH API. It plugs into:

SeamUse
main keyed slot, key dsh-desktop-uithe desktop canvas and taskbar, selected with ctx.layout.selectPanel
main.conversation entryeach window renders the stock conversation entry's own component with its own render rights, captured when DSH first renders it, so every plugin contribution appears inside windows too (falls back to the conversation.content factory if unavailable)
dsh-desktop-ui.window (session-scoped child slot)one window body per session, under that session's scope
plugins.bundle.config (key dsh-desktop-ui)the plugin's settings on its own Plugins page (the hover opt-out)
sidebar.footer.action (order −100)the Desktop mode switch, sorted first; the footer row is stacked vertically while it is present
conversation.header.leading (popout pages only)the Pop back in button in a popped-out window's header
BroadcastChannel('dsh-desktop-ui.v1')same-origin messages between the canvas and popout windows (popped, pop-in-request, pop-in, closed); session ids only
configForms (dsh-desktop-ui namespace)Host-backed layout field (volatile plugin config) for restart-proof restore
ctx.sessions.retain(id, { source: 'desktopWindow' })each window owns an independent session reference, released on close
ctx.uiWorkspace.openSession / startSessionkeeps the sidebar selection in sync and creates new sessions

While Desktop mode is on, navigation that would normally reveal the conversation (sidebar clicks, New Session, shortcuts) is captured: the session opens as a window and the desktop stays visible.

Known limitations:

  • Later DSH versions may change these internal seams; the plugin may need an update.
  • The right sidebar (files, terminal, browser) still belongs to the main session, not to individual windows.
  • Window positions are stored per browser, not per account or device.
  • Window scaling uses CSS zoom (Chrome/Edge/Safari and Firefox 126+).
  • Popout uses window.open; if the browser blocks popups for the DSH page, allow them for that address. Popout URLs carry only #dsh-desktop-ui-popout=<session id> in the hash (never the launch token); the window authenticates with the existing DSH browser cookie. Popped-out state is not saved — after a full restart sessions come back docked on the canvas.
  • The sidebar highlight finds rows by DSH's data-row-key attributes and opens folders by clicking their own folder control, so DSH's sidebar keeps owning its state. A future sidebar redesign may need an update.
  • Reusing the stock conversation entry wraps it at runtime (the same technique dsh-workspace-sorter uses for the sidebar). It is restored when the plugin unloads.
  • The UI strings are English only.
  • Not yet tested: two tabs at once, a live model turn streaming inside a window, and coexistence with other sidebar plugins.

Build and test

npm run check     # build lib/client.js, run unit tests, npm pack --dry-run
npm pack
  • Editable client source is client/index.mjs. scripts/build.mjs writes lib/client.js, a lazy module that uses the GUI's own React (React is not bundled). Run npm run build and commit lib/client.js after editing the source; a unit test fails if it is stale.
  • cordis.patch.yml registers the package.
  • index.mjs declares the volatile layout Config field using the running harness's own schemastery; it has no other host behaviour.
  • Client inject list: dsh-api-session-controller, dsh-client-ui-layout, dsh-client-ui-session, dsh-client-ui-sidebar, dsh-client-ui-conversation, dsh-client-ui-chat, dsh-client-ui-workspace, dsh-client-ui-settings.
  • test/state.test.mjs covers the window manager (open/focus/minimize/maximize/close, one window per session, move never resizes, snapping, linked borders, layouts, show desktop, pruning, state sanitising, text size), Host persistence (restore, seeding, debounced and serialized writes, malformed values, early local changes), popout detection and URLs, footer ordering, runtime identities, and bundle freshness.
  • scripts/e2e-gui.mjs is a dependency-free headless Chrome/CDP test against a real, isolated DSH instance. See LOCAL-SETUP.md.

Design concepts

The early, standalone "Harness OS" design explorations that led to this plugin are kept in designs/. They are static HTML demos and are not part of the npm package.

License

MIT

Window text sizeWindow contents are the stock UI scaled down uniformly (default 85%), so every element — including ones added by other plugins — shrinks together. Click the percentage in the taskbar to make it larger, right-click to make it smaller (70–100%). The normal full-width conversation is untouched.
Restored after restartDesktop mode, the open windows, their positions and sizes, minimized/maximized state, stacking order and text size are saved to your DSH profile config and restored after you stop and restart DSH — even in a different browser. Windows you closed stay closed.
Plays well with sidebar pluginsThe Desktop mode switch is always the top entry above Settings; other footer buttons (for example dsh-all-usage) stack underneath it instead of being pushed sideways.
Light and darkUses DSH's own theme tokens only, so it follows the GUI theme automatically.
Narrow screensBelow 720px the focused window fills the canvas and you switch through the taskbar.