dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
把 DSH 接进 VS Code:审批用原生通知回答,ask_user_question 在侧边栏卡片里作答,ide_context 工具读取当前文件、诊断与选区,选区可插入 DSH 输入框,侧边栏提供实时转录、按工作区限定的会话列表以及模型与权限控制。
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.
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.ide_context tool reads the active file, its diagnostics (file:line:col), and the current selection.DSH Link: Send Selection to Composer drops path:lines plus a fenced block into the DSH composer.↗ button that does the same.Tab accepts, ↻ rerolls, Esc dismisses.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.
The plugin half runs inside DSH and publishes this package to npm.
dsh-editor-link → install.dsh plugin --profile desktop add dsh-editor-linkThe CLI only installs the package. It does not register the profile bundle, so the plugin stays unloaded until
dsh-editor-linkis appended todsh.profile.bundlesin~/.dsh/profiles/<profile>/package.json. The GUI does that step for you.
Install from the VS Code Marketplace:
code --install-extension ferrisching.dsh-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.
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)
| Component | Requirement |
|---|---|
| DSH | 0.2.0-rc.2, 0.2.1-rc.1, 0.2.1-rc.2 verified |
| VS Code | 1.85 or newer |
| Node | 20 or newer (plugin side) |
ide_context; select code and run Send Selection to Composer to hand over an excerpt instead.| Command | What it does |
|---|---|
DSH Link: Send Selection to Composer | Push the selection into the DSH composer as path:lines plus a fenced block |
DSH Link: Open Last File Touched by the Agent | Jump to the last file the agent read or wrote |
DSH Link: Open Active Session in Browser | Open 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.
| Method | Path | Purpose |
|---|---|---|
GET | /editor-link/events | Server-sent events to the browser half (composer.insert, editor/reveal) |
POST | /editor-link/open | Mirrors the ↗ button on file tool cards: { filePath, line } |
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.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.client/) subscribes to /editor-link/events and decorates file tool cards; the extension calls back through the host when a card button is clicked.-32002 instead of silently succeeding..
├── 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
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.MIT — see LICENSE.