dsh-plugin-copy-session-id
Manifest validCopy a Session's ID straight from the DeepSeek Harness sidebar Session menu.
dsh-plugin-copy-session-id
Copy a Session's ID in DeepSeek Harness, from either of two places: a Session row's ⋯ menu in the sidebar, or the copy button in the header of the Session you have open. One click puts the full id (session-e7797998-430a-4d2c-aba6-6d7f441f4f70) on your clipboard, with the host's own top-centre toast confirming it.
侧边栏会话菜单、以及当前会话标题栏,都能一键复制会话 ID
中文说明(点开)
两个入口,同一个动作:
- 侧边栏会话行的
⋯菜单最后多出一行 复制会话 ID(用宿主自己的MenuItemButton与Toast,样式、悬停态、↑/↓/Tab/Esc 键盘行走和焦点归位都和内置行一致); - 会话标题栏右侧(那排工具的
⋯左边)多出一个复制图标,复制的是当前打开的这个会话。
第二个入口是为子代理会话准备的:它们的 ID 只能这样拿——sidebar.workspaces 会把带 origin: 'subagent' 的行整个隐藏,所以子代理会话在侧边栏里根本没有座位。标题栏的 ⋯ 下拉本身没有插槽(它的选项由 session-log-export 写死),因此插件只能作为它旁边的同级控件出现。
这是个纯界面插件:Host 半边是空的 apply,不写文件、不发请求——ID 本来就在浏览器侧,会话标题栏和会话行都拿得到 sessionId。
复制的是会话 ID,不是标题。浏览器拒绝剪贴板写入时会显示「复制失败,请手动复制会话 ID」,而不是绿色成功提示。
安装:DSH「添加插件」里填 github:kjx-talesofai/dsh-plugin-copy-session-id#v0.2.1(本地目录要用绝对路径),装完重启桌面端。卸载就是反过来,在插件列表里移除再重启。
Install
DSH → Add plugin:
github:kjx-talesofai/dsh-plugin-copy-session-id#v0.2.1
dsh plugin --profile desktop add github:kjx-talesofai/dsh-plugin-copy-session-id#v0.2.1
Then restart the desktop app: the plugin row is what makes the harness serve the browser half into the page. A local checkout works too, with an absolute path. Upgrading is uninstall-then-install.
Requires DSH Desktop ≥ 0.2.0-rc.1 (the peerDependencies range on @deepseek-ai/dsh that the harness enforces). Verified by hand on macOS (Apple Silicon) · DSH Desktop 0.2.0-rc.2; re-checked on 0.2.1-rc.2, where the menu row still registers and takes its seat at order 500.
How it works
| Slots | sidebar.workspaces.session.menu.item, order 500, with separatorBefore — after the shipped archive (400); and conversation.session.header.utilities, order -5 — between open-in-app (-10) and the header's own ⋯ menu (0) |
| Feedback | shell.overlay, rendered with the host's Toast — one shared toast for both surfaces (the menu row unmounts with the menu) |
| Host atoms | @deepseek-ai/dsh-client-ui-primitives — MenuItemButton, Button, Toast, writeClipboard, the icons |
| Build | none — client.js is the shipped artifact, written in the loader's window.__ModuleLoader__.load({ id, factory }) format |
Development
npm test # node:test — no install needed, and nothing to build
tests/plugin.test.mjs runs client.js through node:vm against a recording context: both surfaces, both rendering paths, every clipboard settle path (success, false, rejection, no Clipboard API), the locale seat and the effect disposers. It does not cover the rendered menu or the real clipboard write — those were confirmed by hand on the configuration above. tools/asar.mjs is a dev-only ASAR reader for inspecting the installed dsh packages, and is not part of the published tarball.
License
MIT © 2026 Jiaxin Kou
Built by Jiaxin Kou · GitHub
Comments
Loading…
Similar plugins
by Unintendedz
Archive, cross-session read, and copy-ID tools for DeepSeek Harness conversations.
★ 0
MIT
JavaScript
Sep 10, 2026
dsh plugin --profile web add dsh-session-toolsby uu88s
DSH Web plugin: copy a DSH session id, or hand the whole session over to codex so `codex resume <id>` restores it.
★ 0
MIT
JavaScript
Sep 27, 2026
dsh plugin --profile web add @uu88s/dsh-session-handoffby xingyingyuzhui
Session row menu extras for DeepSeek Harness: pin sessions, copy session id, export structured Markdown, and permanently delete sessions.
★ 4
↓ 375/wk
MIT
JavaScript
Sep 10, 2026
dsh plugin --profile web add dsh-session-actionsby shaomingbo
Copy canonical cross-session references from the DeepSeek Harness Web session header.
★ 0
MIT
JavaScript
Sep 24, 2026
dsh plugin --profile web add dsh-session-reference-copyby gausszhou
dsh session IDs for opencode, zero config.
★ 20
↓ 54/wk
MIT
JavaScript
Sep 14, 2026
dsh plugin --profile agent add @gausszhou/dsh-opencode-session-idby xiaozhiaixue
在DSH会话区底部显示会话ID,点击一下就能复制
★ 0
MIT
JavaScript
Aug 31, 2026
dsh plugin --profile web add dsh-session-id-footer