DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-composer-plus

Composer Plus

DeepSeek Harness 辅助功能:额外支持 11 种界面语言(Türkçe、Español、Français、Deutsch、 日本語……)、Changes 面板、输入历史记录、Shift+Tab /plan、一键 Continue、重启后恢复正在运行的聊天、队列拖放、深层链接、Auto Review 的允许聊天功能、通知、通过 Tether 应用访问 iPhone

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-composer-plus@1.6.0
README兼容性版本
Changes panel screenshotInput history screenshotPlan mode shortcut screenshotKeep composer focus screenshotOne-click Continue screenshotResume after restart screenshotQueue drag-and-drop screenshotCopy deeplink screenshot

说明

DeepSeek Harness 辅助功能:额外支持 11 种界面语言(Türkçe、Español、Français、Deutsch、 日本語……)、Changes 面板、输入历史记录、Shift+Tab /plan、一键 Continue、重启后恢复正在运行的聊天、队列拖放、深层链接、Auto Review 的允许聊天功能、通知、通过 Tether 应用访问 iPhone、自动更新

兼容性与来源证明

Composer Plus 以 dsh-composer-plus 发布,当前版本为 1.6.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

1.6.0stable
2026/10/16
1.5.0stable
2026/10/15
1.4.1stable
2026/10/15
查看其余 14 个版本收起版本
1.4.0stable
2026/10/14
1.3.0stable
2026/10/14
1.2.1stable
2026/10/13
1.2.0stable
2026/10/13
1.1.1stable
2026/10/13
1.0.2stable
2026/10/13
1.0.0stable
2026/10/13
0.6.2stable
2026/10/13
0.6.1stable
2026/10/12
0.6.0stable
2026/10/12
0.4.0stable
2026/10/12
0.3.1stable
2026/10/12
0.2.2stable
2026/10/12
0.1.1stable
2026/10/9

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Deepseek Ipptdeepseek-ipptiPolloWork PPT Studio 及其精选幻灯片模板,作为原生 DeepSeek Harness 对话视图。Codex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航

README

dsh-composer-plus — Composer Plus for DeepSeek Harness

Codex-style quality-of-life features for the DeepSeek Harness (dsh) desktop and web UI: a Changes panel, project status in the sidebar, input history, a plan-mode shortcut, one-click Continue, resume running chats after a restart, queue drag-and-drop, session deeplinks, per-chat Auto Review grants, background notifications, iPhone access with the Tether app and automatic updates.

In one line: a single DeepSeek Harness plugin (npm dsh-composer-plus, shown as Composer Plus in Settings → Plugins) that adds a git Changes panel, ↑/↓ input history, a Shift+Tab /plan toggle, one-click ▶ Continue, Resume after restart, drag-and-drop queue reordering, Copy deeplink, Auto Review “Allow for this chat”, background notifications, iPhone access (Mobile connect, Tether app), 11 extra interface languages and automatic updates.

DeepSeek Harness with Composer Plus: the running project shows a spinner in the sidebar and the Changes panel shows a git diff

Unofficial community plugin. The only network calls are the update check (GitHub releases and the npm registry); switch off Automatic updates to stop them at startup. Mobile connect (off by default) accepts iPhone connections from your local network or tailnet only after you switch it on.

Install

Desktop app: Settings → Plugins → Add plugin → enter dsh-composer-plus → Enable now. You can also paste https://github.com/furkancak1r/dsh-composer-plus instead of the npm name.

Web / CLI profile:

dsh plugin --profile web add dsh-composer-plus

Then restart dsh. (The CLI can't install into the desktop profile; the app manages it.)

dsh's pnpm skips versions younger than 24 hours. Right after a release, add the version: dsh-composer-plus@1.6.0.

Features

FeatureHow to use itScreenshot
Changes panelRight sidebar → + → Changes. Pick Uncommitted, Unstaged, Staged or Branch to see changed files with +/- counts; click a file for its diff. Last Turn opens dsh's own review of the latest turn.Changes panel screenshot
Input historyIn an empty composer, press ↑ / ↓ to walk through messages you sent, like a terminal.Input history screenshot
Plan mode shortcutShift+Tab adds /plan to the start of the draft (press again to remove it). If the chat is already in plan mode, Shift+Tab leaves it.Plan mode shortcut screenshot
Keep composer focusAfter you send a / command or skill, the cursor stays in the composer, and you can type again at once. This also works for keyboard macros that type a command and press Enter. dsh makes the composer read-only while it resolves the command, and the browser then removes the focus. This feature puts the focus back, unless a menu, a dialog or another field has it.Keep composer focus screenshot

Buttons, tooltips, notices and notifications follow the selected dsh language (see Application language below).

Settings

Every feature can be switched on or off on its own: dsh Settings → Composer Plus. Each row has a small screenshot: hover it for a larger preview, click it to open it full size (Esc closes). The Search features box at the top filters the page by name or description (any language, case- and accent-insensitive); Esc clears it. Each row has a switch and a short description; changes apply immediately, without a restart, and are remembered on that device. Everything is on by default, except Mobile connect and Resume after restart: dsh's Host keeps these two switches, so they apply to every window and survive a restart.

Settings → Composer Plus: feature search, language picker, update row and a switch per feature, with a screenshot preview on hover

Application language

Open Settings → Composer Plus → Application language and choose System language or one of 13 languages:

English · 中文 · Türkçe · Español · Português (Brasil) · Français · Deutsch · Русский · 日本語 · 한국어 · Bahasa Indonesia · Tiếng Việt · हिन्दी

DeepSeek Harness interface switched to Türkçe

The whole app switches immediately. The choice is dsh’s own saved locale.preference (the same one as General → Language), so it survives restarts. System language clears that choice: the desktop app follows the OS language, the web UI the browser language, and an unsupported language falls back to English. Installing the plugin never overrides a language you already picked.

Each pack covers all 2,872 UI strings of dsh 0.2.0-rc.2 and 0.2.1-alpha.2 (chats, sidebar, settings, approvals, schedules, file previews, plugin manager), the plugin’s own controls, and the popular dsh-rewind plugin. Not translated: your messages, model output, code, slash-command names (/plan, /compact), provider-owned labels such as the High reasoning effort, other plugins’ texts, and the desktop app’s native menus/update dialogs (dsh ships those in English/Chinese only). Strings added by a newer dsh show in English until the packs are updated. If another plugin already provides a language, that plugin keeps it.

Keyboard shortcuts

KeyWhereAction
↑ / ↓empty composerprevious / next sent message
Shift+Tabcomposeradd/remove /plan , or leave plan mode
↑ / ↓focused queue gripmove the queued message
Escwhile draggingcancel the move

An open / or @ menu keeps these keys for itself.

Compatibility

Tested on dsh 0.2.0-rc.2 (desktop and web) and 0.2.1-alpha.2 (web). CI runs the tests on every push.

Privacy and security

  • Continue: the authenticated local endpoint resumes only the last interrupted turn, rejects stale or duplicate requests, and preserves the existing approval hooks. It does not send a new user message.

  • Resume after restart: off until you switch it on. The Host half keeps only chat ids and start times in $DSH_HOME/storages/dsh-composer-plus/resume.json (owner-only permissions), and nothing leaves your machine. It continues a chat only when dsh's own log says that dsh (not you) stopped its last turn. Approvals and Auto Review apply to the continued turn as usual.

  • Changes panel: git runs read-only on your machine, in the chat's own folder, through dsh's authenticated /api channel. It never commits, stages or fetches, and only shows paths git itself listed.

  • Allow for this chat: grants are stored in $DSH_HOME/storages/dsh-composer-plus/grants.json (owner-only permissions). A grant covers one exact tool in one chat. If that tool can write, the grant covers any write too. Revoke it from the header chip.

  • Auto Review still runs on every call; review failures are never auto-allowed.

  • Mobile connect: off until you switch it on. While it is on, the Host half runs the Tether gateway: HTTPS on port 19390 that accepts only your Wi-Fi subnet and your tailnet (100.64.0.0/10), and a pairing page on 127.0.0.1:19391 (this Mac only). A phone needs a one-time code from the QR code (5 minutes) and your Approve on the Mac. The phone pins the gateway's certificate. The Mac keeps only a hash of each phone's token (30 days, renewed while used); Revoke closes that phone's connections at once. Phones can call only an allowlist of dsh methods (chats, prompts, attachments, slash commands, approvals, questions, models, agents, goals), not settings, credentials, the file browser or the terminal. Data: $DSH_HOME/storages/dsh-composer-plus/mobile/. Details: tether/README.md.

  • Updates: the Host half asks api.github.com for the latest release and registry.npmjs.org for that exact version; nothing about you or your chats is sent. Installation uses dsh's plugin manager (pnpm add dsh-composer-plus@<version>), so dsh's own registry, script and version-compatibility checks apply. Pre-release tags and older versions are never installed.

Troubleshooting

  • No notifications on macOS: System Settings → Notifications → DeepSeek Harness → allow. Choose Alerts to keep them on screen.
  • ▶, queue grips, project status, the recent projects option, Collapse all projects, Copy path, Allow for this chat or right-click missing after a dsh update: these attach to dsh's current HTML because dsh has no slot for them yet. If dsh changes that markup they hide themselves; nothing else breaks. Please open an issue.
  • "Update failed" or "not installed from npm": a copy linked from a local folder or renamed can't update itself; reinstall dsh-composer-plus from Settings → Plugins. Otherwise the message shows the first line of pnpm's error; Check for updates retries.
  • Mobile connect says the gateway is not running: "no IPv4 address on en0" means this Mac has no Wi-Fi/Ethernet address; "EADDRINUSE" means another dsh (or app) uses port 19390 or 19391. Only one dsh can run Mobile connect at a time.
  • Mobile connect or Resume after restart says "Restart dsh": the plugin was updated while dsh was running; the new Host half loads after a restart.
  • A chat did not continue after a restart: Resume after restart was off when dsh quit, you stopped that turn yourself, the turn had ended (done or failed), the chat was archived, or more than 20 chats were running (the newest 20 continue).
  • Install fails right after a release: add the version (dsh-composer-plus@1.6.0), see the install note above.

Limits

  • Message-free Continue relies on dsh’s agent/pre-step → agent/request lifecycle. Recheck compatibility when upgrading dsh.

  • Resume after restart continues the turn; it does not replay it. A tool call that was running at the quit ends with dsh's “outcome unknown” result, and the model is told not to repeat finished work, but a command that is not safe to run twice can run again. Subagents, approvals and questions that were open are not restored: their parent chat continues and asks again. At most 20 chats continue at one start.

  • dsh's queue has no move action, so a reorder rewrites the affected rows' text. If the agent picks up a row mid-move, the move is undone and nothing is lost. Messages with images or files can't be moved.

  • An update needs a dsh restart to take effect; the plugin never restarts dsh for you. Web/CLI profiles without dsh's plugin manager only report a new version.

  • Keep composer focus gives the focus back only after a / command or skill. While dsh resolves the command, the composer stays read-only for a few milliseconds, so keys pressed in that time are lost. If dsh's / menu is still open, Enter picks the highlighted row and does not send.

  • Mobile connect works on macOS only (it uses en0, openssl, swift and dns-sd). It uses fixed ports 19390 and 19391, so only one dsh can run it at a time. The phone gets notifications only while Tether is open or just went to the background (no push service). The iOS app is not on the App Store yet: build it from tether/ios with Xcode.

  • A deeplink works inside chats; clicking it does not open the chat.

  • A notification sent before a restart only brings dsh to the front when clicked.

  • Active projects are moved with dsh's saved project order, so the new order is kept after a restart. Chats outside any project ("Ungrouped") can't be moved; dsh always lists them last.

  • dsh has no extension point in the sidebar's view options menu, so the recent projects option is added to dsh's own menu. If a dsh update changes that menu, the option is not shown and all projects stay visible. The filter works on project rows, so In one list is not filtered. Use it with WorkSpace: in Workspace Tree, a hidden parent folder also hides the active projects inside it. By status has the same kind of limit: dsh has no order slot, so the item and the row order attach to dsh's menu and list markup.

FAQ

How do I add a Changes / git diff panel to DeepSeek Harness? Install dsh-composer-plus, then right sidebar → + → Changes.

How do I get ↑/↓ message history in the dsh composer? Install this plugin; in an empty composer ↑ / ↓ walk through messages you sent.

How do I continue a stopped or failed dsh turn without typing "continue"? With this plugin the Send button becomes ▶ after a stopped, failed or cut-off turn; one click resumes it.

Does dsh continue running chats after I quit and open it again? Not by itself: dsh marks such a turn as interrupted and waits (a goal also waits for /goal resume). Switch on Settings → Composer Plus → Resume after restart: the chats that were working when dsh quit then continue by themselves at the next start.

How do I reorder queued messages in dsh? Drag the ⠿ grip on a queued message, or focus it and press ↑ / ↓.

How do I stop Auto Review asking about the same tool in one chat? Click Allow for this chat on the approval card. It covers that exact tool in that chat only; revoke it from the header chip.

How do I show only the projects I used today in the dsh sidebar? Sidebar → view options (sliders icon) → Active in the last 2 hours. Select it again to show all projects.

How do I copy a project's folder path in dsh? Right-click the project in the sidebar → Copy path.

How do I collapse all projects in the dsh sidebar at once? Click the collapse button next to the view options (sliders icon). It shows while at least one project is open.

How do I get macOS / Windows notifications when a dsh task finishes or needs approval? Keep Background notifications on (default) and allow notifications for DeepSeek Harness in the OS settings.

How do I switch the DeepSeek Harness interface to Turkish, Spanish, Japanese…? Settings → Composer Plus → Application language.

How do I use dsh from my iPhone? Build the Tether app from tether/ios (Xcode), switch on Settings → Composer Plus → Mobile connect (iPhone), click Mobile connect at the bottom left, scan the QR code in Tether and click Approve. Away from home, use Tailscale on both devices.

Does it work with the desktop app? Yes: Settings → Plugins → Add plugin → dsh-composer-plus. Tested on dsh 0.2.0-rc.2 (desktop and web) and 0.2.1-alpha.2 (web).

Development

Screenshots are regenerated from a throwaway dsh with a fake model and made-up demo projects (acme-web, weather-cli, docs-site), so they contain no real data. Feature thumbnails go to assets/features/ (shipped, shown in Settings); README-only pictures go to docs/images/ (not in the npm package):

PLAYWRIGHT=/path/to/playwright node scripts/capture-screenshots.mjs /path/to/dsh/lib/bin.js
# sidebar project features (recent filter, Copy path, Collapse all): real-app test + their thumbnails
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-sidebar-projects.mjs /path/to/dsh/lib/bin.js
# recent filter + a finished chat older than 2 hours (fake model): the project stays until you open the chat
PLAYWRIGHT=/path/to/playwright node test/browser-recent-finished.mjs /path/to/dsh/lib/bin.js
# Order by status (fake model + Schedule): real-app test + its thumbnail
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-status-order.mjs /path/to/dsh/lib/bin.js
# every Settings feature row shows a loading screenshot
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
# Keep composer focus (fake model + demo skill): typing goes on after a / command + its thumbnail
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-keep-focus.mjs /path/to/dsh/lib/bin.js
# Mobile connect: switch on, QR popover, a fake iPhone pairs and calls dsh through the gateway, switch off + its thumbnail
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-mobile-connect.mjs /path/to/dsh/lib/bin.js
# Resume after restart (fake slow model, real quit and start): a running chat and a goal continue, a stopped chat does not
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-resume-restart.mjs /path/to/dsh/lib/bin.js
npm run build:locales # after editing locales/<id>.json
npm test

Rule for new features: every feature row in Settings → Composer Plus shows a screenshot. Add the feature id to SHOT_OF in client.js and to SHOTS in index.js, and ship assets/features/<id>.webp (taken from the throwaway demo dsh, English UI, about 60 kB or less). Add the feature to the README table with the same image. test/shots.test.mjs fails when a feature has no screenshot, and test/browser-settings-shots.mjs checks the real Settings page. The full checklist for every change is in AGENTS.md.

The tests run the real client.js against a fake React/DOM and the real index.js (Host half) against a temporary git repository. The Tether gateway tests (test/tether-gateway.test.mjs) use a mock dsh host and a real TLS gateway. The iPhone app is in tether/ios (see tether/README.md and tether/AGENTS.md). node test/browser-history.mjs '<dsh web URL with ?token=…>' checks input history in a real browser against a throwaway dsh web with its own DSH_HOME.

Language packs are data-only JSON in locales/<id>.json, embedded into the single client entry by npm run build:locales (no translation service or runtime download). npm test checks every pack for full key coverage, identical placeholders and line breaks, and the system/override behaviour. For isolated real-app checks with a locally installed Playwright:

PLAYWRIGHT=/path/to/playwright node test/browser-language.mjs /path/to/dsh/lib/bin.js

License

MIT

One-click ContinueAfter a stopped, failed or cut-off turn, an empty composer shows ▶. One click resumes from the existing conversation without writing in the input or adding a visible chat message (the model receives a short hidden “continue from where it stopped” note, because some providers, such as Claude, reject a request that ends on an assistant reply). A completed turn keeps the regular Send button.One-click Continue screenshot
Resume after restartOff by default: switch it on in Settings → Composer Plus. If you quit dsh (or it closes) while a chat is working, that chat continues by itself when you open dsh again, with the same hidden note as One-click Continue. If a goal round (/goal) was running, the goal goes on with its next round (dsh pauses goals at every start until you resume them). Chats that you stopped, that finished or that failed do not continue. dsh itself has no setting for this: it only marks such a turn as interrupted.Resume after restart screenshot
Queue drag-and-dropQueued messages get a grip (⠿). Drag to reorder, or focus the grip and press ↑ / ↓. Esc cancels.Queue drag-and-drop screenshot
Copy deeplinkRight-click a chat in the sidebar → Copy deeplink. Paste the dsh-session:… link into another chat to attach that chat as read-only context.Copy deeplink screenshot
Copy project pathRight-click a project in the sidebar → Copy path copies the full path of its folder.Copy project path screenshot
Allow for this chatWhen Auto Review asks you, the approval card gets Allow for this chat: the same tool in the same chat is allowed from then on, with any arguments. A header chip lists the grants and revokes them. Grants survive a restart.Allow for this chat screenshot
Project statusA project row in the sidebar shows the same spinner / waiting / done marker as its chats, so a collapsed project still tells you a chat inside is working or needs you. Hover it for details.Project status screenshot
Active projects firstWhen a chat starts running or needs you, its project moves to the top of the sidebar with dsh's own row animation (the same move as dragging it there). Finished projects stay where they are; drag them anywhere as usual. Moves are saved to dsh's project order, so turning this off keeps the current order.Active projects first screenshot
Recent projects filterSidebar → view options (sliders icon) → Active in the last 2 hours. While it is selected, the sidebar shows only projects with a chat that was active in the last 2 hours: a chat updated in that time, a running or waiting chat, the open chat, or a finished chat that you did not open yet (dsh's green “done” dot), also after the 2 hours. Projects without such a chat are hidden, also new and empty ones. Select it again to show all projects. The choice is kept on this device.Recent projects filter screenshot
Collapse all projectsWhile a project is open in the sidebar, a button appears next to the view options (sliders icon). Click it to close every open project at once, for example 3 open projects out of 5. The button hides again when no project is open.Collapse all projects screenshot
Order by statusSidebar → view options → Order by → By status (with In one list). Finished chats come first (dsh's “done” dot, which a turn that ended with an error also gets), then running or waiting chats, then chats with an active automation (Schedule), then the rest in dsh's order. Opening a finished chat moves it down. Only the view changes: select Manual or Last updated to go back.Order by status screenshot
Background notificationsWhile dsh is in the background you get a notification when a turn finishes (first line of the reply), or when a chat really waits for you: an approval (tool name), an answer (the question) or a plan review. A request must still be open 1.5 s later, so approvals answered automatically (Auto Review grants, other plugins) stay silent, and a notification is withdrawn as soon as its request is answered. The Dock/taskbar badge counts waiting chats. Clicking opens that chat.Background notifications screenshot
11 extra UI languagesSettings → Composer Plus → Application language switches the whole dsh interface to Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt or हिन्दी (see below).11 extra UI languages screenshot
Mobile connect (iPhone)Use dsh from your iPhone with the Tether app, on the same Wi-Fi or over Tailscale. Switch it on in Settings → Composer Plus (it is off by default, because it opens a network port on this Mac). Then click Mobile connect at the bottom left of the sidebar: scan the QR code in Tether and click Approve. The phone shows your chats, sends messages, answers approvals and questions, and switches models and agents.Mobile connect screenshot
Automatic updatesWhen dsh starts, the plugin checks the latest GitHub release. If it is newer and already on npm, it installs that exact version through dsh's own plugin manager (the same path as Settings → Plugins) and notifies you. Restart dsh to load it. Settings → Composer Plus → Composer Plus updates shows the version and has Check for updates / Update now.Automatic updates screenshot
  • dsh has no project-row menu or Workspaces header slot either. Copy path finds the project row by dsh's row markup, and Collapse all projects goes into dsh's header and closes each open project with the same click as the project row. If a dsh update changes that markup, right-click shows the browser's menu and the button is not shown.

  • Built-in support is requested upstream: queue move in #773, a Continue state in #9269.