DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
L

dsh-link-plugin

Link Plugin

DSH 编辑器和聊天中的链接处理:将 URL 粘贴到选中文本上,可生成一个可撤销的行内 Markdown 链接;在已发送的用户消息中,将 [label](url) 渲染为网站图标加带下划线的标签。仅处理链接,且构建时不导入宿主客户端软件包,因此 DSH 升级会使功能降级,而不是禁用插件

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

npx -y @deepseek-ai/dsh plugin --profile web add github:maximdx/dsh-link-plugin#a0d328b5293348a62a8d059ecad3511f14d1511c
README兼容性版本

说明

DSH 编辑器和聊天中的链接处理:将 URL 粘贴到选中文本上,可生成一个可撤销的行内 Markdown 链接;在已发送的用户消息中,将 [label](url) 渲染为网站图标加带下划线的标签。仅处理链接,且构建时不导入宿主客户端软件包,因此 DSH 升级会使功能降级,而不是禁用插件。

兼容性与来源证明

Link Plugin 以 dsh-link-plugin 发布,当前版本为 0.3.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.3.0stable
2026/10/24
0.2.0stable
2026/10/21

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Plugin Wallpaper Enginedsh-plugin-wallpaper-engineDSH web GUI 的 Wallpaper Engine 背景:将本地 Wallpaper Engine 壁纸渲染到聊天背景中——通过内置的 WebWallGL 引擎实时渲染 Scene 和 Web,直接播放 Video——配备 iOS 风格的液态玻璃效果,可调节模糊/遮罩/bClaude Designdsh-claude-designDeepSeek Harness 插件:来自 baoyu-design 的 claude-design 技能。智能体将画板画布写入文件,并在本地画布编辑器中打开它们。Claude Slidesdsh-claude-slidesDeepSeek Harness 插件:来自 baoyu-design 的 claude-slides 技能。代理会将可编辑的幻灯片演示文稿写入文件,并在本地幻灯片编辑器中打开。Genui@changfenhuang/dsh-genuiDeepSeek Harness 的 GenUI:通过 ```dsh-ui``` 代码围栏在助手回复中内嵌渲染交互式 UI 组件——布局、图表、绘图、表单、测验、mermaid、3D 场景,以及回传给模型的操作事件循环。随附用于教授代码围栏的主机插件

README

dsh-link-plugin

One small DSH browser plugin for links: paste a URL over selected composer text and render Markdown links in sent user messages.

Rebuilt 2026-10-24 (version 0.3.0) as a link-only plugin after the previous version — a 50k-line fork of the dsh-markdown-input composer takeover — was disabled by DSH's compatibility check when the app upgraded from 0.2.1-rc.2 to 0.2.1-rc.3 (it pinned engines.dsh: "0.2.1-rc.2" exactly, so the whole bundle was skipped at startup). The takeover composer is gone; the two link features are now built only on DSH's documented extension surfaces.

What it does

  1. Paste a URL over selected text — select repo in the DSH composer, press Cmd/Ctrl+V with https://github.com/… on the clipboard: the selection becomes [repo](https://github.com/…) as one undoable edit. Plain text, non-URL pastes, image/file pastes, and pastes outside the composer are untouched. If the host refuses the edit, the native paste happens instead (nothing is swallowed).
  2. Links in sent user messages — a user message containing [repo](https://github.com/…) renders the link as a small site icon plus an underlined repo label (GitHub, npm, GitLab, YouTube, X, Figma, Notion, Bilibili, Zhihu, Wikipedia, LinkedIn, Google, Reddit, Discord, Telegram, WeChat, Stack Overflow, Medium, Hugging Face, Substack — other hosts get a generic link glyph). In a sent bubble it is a normal external anchor; queue previews show a static span. Model input and copy/clipboard keep the Markdown source.

Why it should survive DSH upgrades

The old breakage was structural, not a bug in one line. The new design removes the coupling that made every host update a porting project:

Risk in the previous buildWhat this build does instead
Exact engines.dsh pin → DSH's compatibility preflight skips the whole bundle on any version changeNo engines.dsh and no @deepseek-ai/dsh* peer dependencies at all. The preflight can never disable it; the plugin loads and checks at runtime.
1.9 MB fork of the host composer (CodeMirror takeover + host React primitives)43 KB hand-written bundle, no require() of host client packages; React from the browser seed table is the only import.
Leaning on host components (LinkIconMedium, UserTextRun) that change without noticeOwn inline SVG icons and markup; styling uses theme tokens / currentColor, so a renamed token only changes appearance.
One import error killed every feature and could blank the composerTwo features register independently and are each guarded; a missing service or slot disables that feature only and prints a clear [dsh-link-plugin] warning.

Only these documented host surfaces are used (all verified against DSH 0.2.1-rc.3):

  • conversation.input.overlay list slot (composer) + its standard provide-channel props useInput / inputActions.captureInsertion() / inputActions.insertText();
  • uiConversation.userText.register() rule registry;
  • conversation.user.text.node keyed slot.

If DSH ever renames one of them, tools/compat-check.mjs says which one, the plugin keeps working for everything else, and the fix is one small guarded registration in lib/client.js — not a rebase of a 50k-line fork.

Target / compatibility

  • Built and tested against DSH 0.2.1-rc.3 (macOS desktop). The plugin declares no upper version bound by design; drift is detected, not assumed.
  • Runs on the native DSH composer. There is intentionally no live Markdown-rendering composer takeover in this version.
  • User messages render inline links only — other Markdown (**bold**, headings, code blocks) stays plain text in user bubbles.
  • Composer links are not clickable while editing; sent-bubble links open in a new window.

Install into a profile

cp -R <this-dir> ~/.dsh/profiles/<profile>/plugins/dsh-link-plugin
# ~/.dsh/profiles/<profile>/package.json:
#   "dependencies": { "dsh-link-plugin": "file:./plugins/dsh-link-plugin" }
#   "dsh": { "profile": { "bundles": [ ..., "dsh-link-plugin" ] } }
cd ~/.dsh/profiles/<profile> && pnpm install

Or ask the DSH agent to install this directory as a bundle (plugin_manager → install_bundle with the absolute directory) — that path handles the package and profile copy for you.

Replacing an existing install: the profile keeps its own copy of the package under node_modules/. pnpm can consider an unchanged file: spec "already up to date" and leave that stale copy in place, so after editing/replacing the plugin directory use the precise refresh:

cd ~/.dsh/profiles/<profile>
rm -rf node_modules/dsh-link-plugin && pnpm install

A stale copy keeps loading old JavaScript and is exactly what tools/compat-check.mjs flags.

Verification

node tests/smoke.mjs            # dependency-free unit/smoke test
node tools/compat-check.mjs     # after every DSH app update; see below

tools/compat-check.mjs reads the installed DSH app (default /Applications/DeepSeek Harness.app, override --app / DSH_APP, or --host-modules <dir> for npm installs) and checks:

  • the DSH runtime version and the plugin manifest (an exact version pin is a hard FAIL — that is the failure mode this rewrite removes);
  • the host client surfaces above, searched in the installed conversation / chat / renderer / web-shell bundles;
  • that lib/client.js imports no host client packages;
  • whether the profile's installed copy is stale compared with the repo.

Exit code 0 = PASS (or PASS with warnings), 1 = FAIL with the exact missing surface. Run it right after a DSH update; it is the “did the host move under us?” alarm.

The real end-to-end check (paste + Enter + sent-bubble render on DSH 0.2.1-rc.3) was run on 2026-10-24 in an isolated dsh web instance with headless Chrome over the Chrome DevTools Protocol: 15/15 assertions passed (plugin row in the boot graph, no compatibility-skip line, clean console, paste-to-link in the composer, brand-icon link in the sent bubble, generic icon for unknown hosts, native fallback for non-URL pastes). Screenshots:

Paste a URL over selected composer text

Sent user message with a brand-icon link

Re-run the same flow after a host update if compat-check reports a warning; the harness and its instructions live in tests/e2e/README.md. It is developer tooling only and is not shipped inside the plugin package.

Upgrade procedure after a DSH update(中文)

  1. 更新 DSH 后运行 node tools/compat-check.mjs。
  2. PASS → 插件继续工作(不会再因为版本号被 DSH 直接禁用)。
  3. MISSING xxx → 只列出宿主改了哪个接口;插件仍能加载,受影响的功能会自我禁用并在控制台打印 [dsh-link-plugin] 警告,不会白屏、不会拖垮输入框。按报告改 lib/client.js 中对应的一个注册点即可。
  4. 如果改过 lib/client.js,在 profile 目录执行 rm -rf node_modules/dsh-link-plugin && pnpm install 刷新副本(只跑 pnpm install 可能被判为“已是最新”而跳过);compat-check 会检测“profile 里还是旧代码”。

File map

PathRole
lib/client.jsBrowser half: both features, hand-written lazy-CJS bundle (no build step).
lib/index.jsHost half: inert ESM no-op required for bundle discovery.
cordis.patch.ymlBundle patch: inserts the enabled Loader row.
tests/smoke.mjsDependency-free harness (fake module table/React/ctx).
tests/e2e/Developer-only real-UI acceptance harness (isolated dsh web + headless Chrome CDP); not shipped.
tools/compat-check.mjsPost-upgrade host-surface verifier.
docs/verify/Screenshots from the last end-to-end run.
archive/takeover/Historical 0.2.x takeover fork + rebuild scripts (not shipped; kept for provenance and possible future reuse).

License

MIT for this plugin. Brand glyph path data is from Simple Icons (CC0 1.0). The archived takeover build retains its upstream MIT notices; see THIRD_PARTY_NOTICES.md.