DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Copy File Path — DSH Plugin for DeepSeek Harness
← Plugins
C

dsh-copy-file-path

Copy File Path

DSH plugin: adds 复制相对路径 / 复制绝对路径 (copy relative / absolute path) to the delivered-file card menu of the dsh web UI. / dsh Web 交付文件卡片的「⋯」菜单增加复制相对路径与复制绝对路径。

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:Meowrium/dsh-copy-file-path#b32dccb51a4b1d974f5b8bc735d7ad17cca6122f
READMECompatibilityVersions

Compatibility and provenance

Copy File Path is published as dsh-copy-file-path and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
9/19/2026

Versions

0.1.0stable
9/19/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/19/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in productivity-workflow.

Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-baseClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.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 包。Agent Teams@nanmicoder/dsh-agent-teamsAgentTeams for DeepSeek Harness: multi-agent team collaboration (captain, members, tasks with dependencies, messaging) driven by natural language, with a tree monitor in the web GUI

README

dsh-copy-file-path

中文说明 / Chinese README

Adds Copy relative path and Copy absolute path to the delivered-file card menu of the DeepSeek Harness (dsh) web UI.

At the end of a turn, dsh shows the files that turn delivered as cards. Each card has an Open button and a ⋯ menu holding Open in default app and Show in File Explorer / Open containing folder. This plugin appends two more rows to that menu:

RowCopies
复制相对路径 / Copy relative paththe path relative to the session workspace
复制绝对路径 / Copy absolute paththe absolute host path

A click copies the value and shows a short confirmation pill with what was copied.

⋯  ┌──────────────────────────┐
   │ ↗  Open in default app   │  ← shipped by dsh-client-ui-deliverables
   │ ▤  Show in File Explorer │
   │ ⧉  Copy relative path    │  ← this plugin
   │ ⧉  Copy absolute path    │  ← this plugin
   └──────────────────────────┘

Install

dsh plugin --profile web add github:Meowrium/dsh-copy-file-path

Then restart dsh web and hard-refresh the page (Ctrl+Shift+R) — the host mounts the bundle at startup and the browser shell rebuilds its client modules.

Why this needs a plugin

Those menu rows are a hard-coded items array inside @deepseek-ai/dsh-client-ui-deliverables, rendered by the @deepseek-ai/dsh-client-ui-primitives Menu (a role="menu" list portalled to document.body). There is no slot, registry or hook for extra rows, and a shadowing plugin would have to reimplement the whole card.

So this plugin post-processes the DOM instead — the same technique as dsh-mermaid: no core patch, no monkey-patching of React internals. It watches for that portal, and while a delivery card's chevron is expanded (aria-expanded="true") it clones the last row, relabels it, gives it a copy icon and owns the click. The injected rows are plain DOM: the click handler stops propagation so the React root never sees the event, and the popup is dismissed through the same outside-pointerdown path a real click elsewhere would use.

Where the two paths come from

Nothing is guessed and nothing is rewritten — every value is taken from what dsh itself already has:

ValueSource
Absolute paththe card's preview-button title, i.e. exactly what dsh resolves and opens (resolveWorkspacePath(cwd, file.path)). Copied verbatim, separators untouched.
Relative paththe path the turn declared to the present tool, recovered from the card's own aria-labels ({path} 的更多文件操作 / More file actions for {path}). If the declaration was itself absolute, it is recomputed against the workspace root.
Workspace rootderived from that (absolute, declared) pair — exact by construction. The client session store (sessions.list) is only the fallback, for cards whose labels carry no declared path.

If a value cannot be established, that row is simply not offered — an unusable path is never copied.

Compatibility

  • dsh web UI with delivered-file cards. Tested against 0.1.6-alpha.1 on Windows; not verified against older lines (the dsh.client / bundle shape is shared with the 0.1.5 line, but that is untested here).
  • No runtime dependencies. The browser half uses the DOM plus the optional locale and sessions client services: inject is empty, so the plugin still loads — English labels and card-derived workspace root — when either service is absent.

Tests

Both harnesses run without a dsh instance:

node test/paths.test.mjs        # 35 assertions on the path helpers

test/fixture.html reproduces the delivery card plus the primitives menu portal (structure read from the shipped 0.1.6-alpha.1 code), loads lib/client.js through a stub module loader and runs 23 checks in a real browser: injection and label language, both copied values, menu dismissal, no event leakage into the React container, a negative control (an unrelated popup gets nothing), idempotence, and full teardown. Open the file in a browser — results render on the page and in document.title.

Limitations

  • Only the delivered-file card menu is covered. The "Files changed" chips and the sidebar file tree have no menu of their own, so they are untouched.
  • The menu belongs to a shipped component: a future dsh release that changes the card markup may need this plugin updated. The detector degrades by injecting nothing rather than by mislabelling an unrelated menu.
  • Copies text only: no file is read, opened or transmitted, and there is no host access at all (the host half is deliberately inert).

Uninstall

dsh plugin --profile web remove dsh-copy-file-path

License

MIT