DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-editor-link

Editor Link

DeepSeek Harness 与 VS Code 之间的连接:通过一个经过身份验证的环回通道,在编辑器中处理审批、问题和编辑器上下文

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

npx -y @deepseek-ai/dsh plugin --profile web add github:ferrisching/dsh-editor-link#372085a3671d9f0081838965d721892e8abdf683
README兼容性版本

兼容性与来源证明

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

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

版本

0.1.1stable
2026/10/18
0.1.0stable
2026/10/17

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Terminal Bundle@deepseek-ai/dsh-experimental-terminal-bundle在多次工具调用之间保持 shell 进程运行。

README

dsh-editor-link

The link between DeepSeek Harness and your editor
Answer approvals and questions in VS Code, and let the agent see your editor.

English | 中文

Using DSH today means living in two windows: the DSH web UI and VS Code. The ecosystem has fragments — a selection inserter, a file jumper, an ACP bridge — but nobody covers the two highest-frequency actions: answering approvals where you already are, and giving the agent the editor context that Claude Code users take for granted.

dsh-editor-link is one product with two halves — a DSH plugin and a VS Code extension — talking over a token-authenticated loopback JSON-RPC channel.

📑 Table of Contents

  • ✨ Features
  • 🚀 Install
  • ⌨️ Usage
  • ⚙️ Commands
  • 🔌 Host routes
  • 🧩 How it works
  • 🛠️ Development
  • 🔐 Security and cost
  • ⚠️ Known limitations
  • 📄 License

✨ Features

  • Approvals in VS Code — a tool call needs permission and a native VS Code notification offers Allow once / Reject. No Alt-Tab.
  • Questions in the sidebar — ask_user_question renders as a card in the sidebar: click to answer single-select, tick and submit for multi-select, or type a custom answer. No QuickPick pops up outside the sidebar.
  • Editor context for the agent — the ide_context tool reads the active file, its diagnostics (file:line:col), and the current selection.
  • Selection to composer — DSH Link: Send Selection to Composer drops path:lines plus a fenced block into the DSH composer.
  • Jump to what the agent touched — a status-bar item opens the last file the agent read or wrote at its line, and file tool cards in the web UI grow a small ↗ button that does the same.
  • Sidebar panel — an activity-bar view with the live transcript, inline approvals, and a composer that sends, steers, or stops a turn.
  • Session picker that follows your folder — sessions are grouped by DSH workspace and scoped to the VS Code folder; archived and blank sessions stay hidden; switching folders re-scopes the list.
  • Model, effort, and permission pickers — switch the session's model, reasoning effort, and permission preset without opening the web UI.
  • Prompt completion — when a turn ends, the composer predicts your next message; typing cancels it, Tab accepts, ↻ rerolls, Esc dismisses.
  • Full DSH in a tab — open the complete web UI inside VS Code with the authenticated URL already applied.

Both surfaces stay live: approvals and questions also appear in the web UI, and whichever you answer first wins — late answers are refused with an explicit error.

🚀 Install

1. Install the DSH plugin (recommended)

The plugin half runs inside DSH and publishes this package to npm.

  • GUI: Plugins → Add plugin → paste dsh-editor-link → install.
  • CLI: dsh plugin --profile desktop add dsh-editor-link

The CLI only installs the package. It does not register the profile bundle, so the plugin stays unloaded until dsh-editor-link is appended to dsh.profile.bundles in ~/.dsh/profiles/<profile>/package.json. The GUI does that step for you.

2. Install the VS Code extension

Install from the VS Code Marketplace:

code --install-extension ferrisching.dsh-editor-link

Or, offline, download dsh-editor-link-extension-<version>.vsix from Releases and run code --install-extension <file>.vsix --force.

Then reload the VS Code window. The DSH view appears in the activity bar.

3. From source

git clone https://github.com/ferrisching/dsh-editor-link
cd dsh-editor-link
npm install                       # plugin tests (linkedom)
cd extension && npm install       # extension build (esbuild, @types/vscode)

Requirements

ComponentRequirement
DSH0.2.0-rc.2, 0.2.1-rc.1, 0.2.1-rc.2 verified
VS Code1.85 or newer
Node20 or newer (plugin side)

⌨️ Usage

  1. Start DSH. The bridge connects on its own; the status-bar item appears the first time the agent touches a file.
  2. Open the DSH view in the VS Code activity bar. Sessions load for the DSH workspace that contains your VS Code folder.
  3. Ask something in the composer. When a tool needs permission, answer it in the notification — the web UI card disappears at the same time.
  4. Mention "@ the file I'm looking at" and the agent gets it through ide_context; select code and run Send Selection to Composer to hand over an excerpt instead.

⚙️ Commands

CommandWhat it does
DSH Link: Send Selection to ComposerPush the selection into the DSH composer as path:lines plus a fenced block
DSH Link: Open Last File Touched by the AgentJump to the last file the agent read or wrote
DSH Link: Open Active Session in BrowserOpen the running DSH web UI in your browser

The sidebar toolbar also exposes model, reasoning effort, permission preset, a + menu (/goal, /plan, /feedback, /compact, /export plus a file picker and the permission/model pickers), and the send/stop control.

🔌 Host routes

MethodPathPurpose
GET/editor-link/eventsServer-sent events to the browser half (composer.insert, editor/reveal)
POST/editor-link/openMirrors the ↗ button on file tool cards: { filePath, line }

🧩 How it works

  • Host plugin (lib/) opens a loopback TCP listener on ports 7410–7419 and writes a discovery file (~/.dsh/editor-link/<pid>.json, mode 0600) carrying the port and a token.
  • VS Code extension (extension/) reads the discovery file, keeps one JSON-RPC 2.0 connection per DSH process and multiplexes every call over it, and answers the approval/request and user-questions/request waterfalls from native UI.
  • Browser half (client/) subscribes to /editor-link/events and decorates file tool cards; the extension calls back through the host when a card button is clicked.
  • Approvals race all surfaces. The first answer wins; later answers are rejected with -32002 instead of silently succeeding.

🛠️ Development

.
├── lib/                  host plugin (bridge, forwarding, panel RPC, ide capture)
├── client/               web UI half (SSE listener, tool-card buttons)
├── cordis.patch.yml      bundle patch — required for `dsh plugin add`
├── test/                 node:test suites (81 cases)
├── extension/            VS Code extension (TypeScript + esbuild)
│   ├── src/              extension host and sidebar webview
│   └── test/             runtime smoke test (vm.Script parse + linkedom DOM)
├── scripts/              real-cordis integration harness
└── docs/                 design notes, verified seams, verification log
npm test                 # plugin suites
npm run test:extension   # build + extension smoke test
DSH_BUNDLE_DIR=/path/to/dsh node scripts/integration-cordis.mjs   # real cordis harness

🔐 Security and cost

  • The bridge listens on loopback only, requires the token from the discovery file on every request, and rotates when DSH restarts.
  • No telemetry, no outbound network calls, no credentials stored in the repository or the discovery file beyond the per-process token.
  • Prompt completion and session titles spend model tokens: completion pins the shallowest reasoning effort the model advertises and caps the reply at 80 tokens.

⚠️ Known limitations

  • Multiple VS Code windows on one host are untested.
  • With more than one DSH process running, requests go to the instance that connected first: the session list, approvals and questions all belong to it. There is no per-session routing between hosts yet.
  • A question answered in VS Code stays visible in the DSH web/desktop client as a reply card until it is dismissed there. The answer itself is recorded — the tool result and the session projection both settle — but the client only closes its own card when that client submits the answer.
  • Windows and WSL paths are untested; the discovery and path logic assume POSIX paths.
  • The SSE route is loopback-only and unauthenticated; it carries no secrets but is not suitable for exposing.
  • Verification targets DSH 0.2.0-rc.2, 0.2.1-rc.1 and 0.2.1-rc.2; other versions may move the seams this plugin relies on.

📄 License

MIT — see LICENSE.