deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
DeepSeek harness(dsh)的 VSCode 侧边栏插件。插件只做前端界面,后端能力全部复用本机 dsh web host(loopback,无实例时自动拉起)。
vibe coded by kimi k3 & GPT 5.6 & deepseek v4.
![]() |
![]() |
| 对话页面 | 设置页面右图说明 |
[VSCode Webview: React UI(会话/对话/审批/设置)]
│ postMessage 桥协议 (shared/bridge.ts)
▼
[Bridge + SidebarProvider] ◄── 广播 mux/host 事件帧、host-status
│ 透传 rpc / respond
▼
[DshClient(extension 进程, Node ≥22)]
│ │ │
│ POST /api/<method> │ POST /api/respond │ WS /api/events.mux
│ (session.create 等 unary) │ (审批/提问应答) │ + /api/events.host
▼ ▼ ▼
[HostManager: 探测 127.0.0.1:3080..3089 → 无则 spawn `dsh web`] (只连 loopback)
│ spawn / 复用 / 版本检查
▼
[dsh web host 进程]
[webserver: createServer + 'upgrade' 分发] ── /api/* 请求、WS 升级
│
[client-connection: isTrustedApiRequest 信任门 → toFetchHandler / WebSocketDownlinks]
│
[ApiProxy (apiproxy 包)]
├─ unary: session.*/workspace.*/settings.*/preset.*/llm.* → 执行业务
├─ respond: 按 rpcId 结算 pending 的审批/提问
└─ events: 订阅 ctx 事件总线,把 session/event 等转成 MuxFrame/HostFrame
│ ctx.on('session/event') 等
▼
[Session / Agent / workspace 注册表(harness 核心)]
确保dsh已经安装
npx @deepseek-ai/dsh web
/ 弹出命令建议——内置宿主命令 /goal、/compact、/plan 优先,其后跟随会话技能名(skill.list);输入中过滤,Enter/Tab 选中,Esc 关闭。发送 /-开头的一行消息即斜杠命令:宿主命令注册表支持时由宿主直接执行(不发给模型),旧版宿主则作为普通消息交给模型+ 按钮 / 拖拽 / 粘贴图片,缩略图 rail 可预览、可移除,超限整批拒绝src/extension/protocol/)npm install
npm run package # 产出 VSIX(dist/*.vsix)
code --install-extension dist/dsh-vscode-sidebar-*.vsix
或在 VSCode 中"扩展"面板 → ... → "从 VSIX 安装"。本地使用,不发布插件市场。
npm test # 单元测试(node:test,协议/store/扩展宿主纯逻辑)
npm run test:e2e # Playwright 浏览器 E2E(真实扩展宿主代码 + 真实隔离 dsh host)
E2E(tests/e2e/):真实扩展宿主代码(Bridge/DshClient/HostManager,vscode 模块经 esbuild alias 替换为 stub)跑在 Node,
Playwright 页面加载真实构建产物 media/main.js,页面与 Node 宿主经 WebSocket 桥接;每个运行自 spawn 一个隔离 dsh host
($DSH_HOME 临时目录 + 拷贝用户 settings/credentials,端口 3200 起探测空闲,结束自清理;永不触碰 3080)。
覆盖五条 TODO 修复回归(IDE 插入 / 提问后台重放 / 跨工作区隔离 / 发送置顶)+ 真实模型对话闭环(结构断言)。
目前正在让插件美观易用,无限接近与codex extention(bushi) 欢迎issue & PR
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。