dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
面向 DeepSeek Harness 用户的本地优先、插件友好、Cursor 式 AI coding workbench。
Unofficial community project · source preview · 不是 DeepSeek 官方 Desktop,也不代表官方背书。
English · 市场调研 · 路线图 · 架构 · AI Agent 开发指南
DeepSeek Harness 已经是一个强大的、可组合的 Agent runtime:模型负责推理,Harness 负责工具、技能、会话、权限、沙箱和工作区。DHD 不重写它,而是把它放进一个开发者可以每天使用的本地工作台:
打开仓库 → 选择上下文 → Agent 执行 → 审阅变更 → 运行测试 → 提交或回滚
我们希望 DHD 成为 Harness-native 的 Agent IDE control plane,而不是一个只能打开网页的 Electron 窗口:
当前仓库是 0.1.0 source preview,不是已经完成签名/公证的安装包。
| 状态 | 能力 |
|---|---|
| 已实现并手工验证 | Electron Host 启停、文件树/编辑、搜索(含 fallback)、PTY(含 fallback)、Git 基础面板、workspace sync、统一退出清理 |
| 已实现但缺少外层自动化回归 | Monaco 多 Tab、命令面板、MCP/Rules 入口、行内编辑、窗口布局 |
| 上游能力 | Harness preset、Trajectory、工具卡、Skills、MCP、Session、subagent/fork/workflow/实验性 Agent Teams(在 iframe 中) |
| 早期 native vertical slice | workspace sync 后 Main-owned AgentRuntime、structured context/prompt、tool/approval/change events;真实 provider/model review loop 未完成 |
| 计划中 | per-turn before/after diff、provider/agent roster、worktree 隔离、完整 runtime 捆绑、签名/公证和自动更新发行 |
重要限制:
<iframe>;workspace sync 后会尝试建立同一 Host/Session 的 native controls,但它不是已完成的原生 dsh-client 嵌入。change-projection 目前只显示 changed paths。defaultModel、defaultPreset 和 sandboxMode 的桌面设置不能自动等同于 Host effective settings。pnpm test:contract 覆盖 capability、IPC/preload、Host IPC/Session fixture 和上游 Desktop 静态兼容门,typecheck 和 build 不等于真实 provider/model 验证。完整、绑定版本的支持矩阵见 docs/support-matrix.md。
^22.19.0 或 >=2410.14.0(根 workspace 锁定版本;Harness 子模块使用自己的 pnpm 版本)git clone --recursive git@github.com:davidtan2008/deepseek-harness-desktop.git
cd deepseek-harness-desktop
pnpm install
cd harness && pnpm install && pnpm run build && cd ..
pnpm doctor:env
pnpm dev
如果 Electron 下载困难:
export ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
pnpm install
打开一个项目后,右侧会显示 Harness Agent surface;左侧是工作台。Host 启动失败时,优先查看终端输出和 用户指南 的故障排查,而不是直接修改 harness/。
flowchart LR
User[用户] --> Main[Electron Main]
Main -->|spawn / adopt| Host[DeepSeek Harness Host]
Main -->|typed preload IPC| UI[React Workbench]
UI --> Editor[Monaco + Explorer + Search]
UI --> Terminal[xterm + PTY]
UI --> Git[Git panel]
UI --> Agent[Agent iframe\nHarness Web UI]
Host --> Session[Session / Tools / Skills / MCP / Sandbox]
Main --> AgentRuntime[Native Session transport]
AgentRuntime --> Host
Main --> Platform[FS / watcher / credentials / updater]
当前关键边界:
packages/shared/src/api.ts 的白名单 API。DHD_HARNESS_ROOT → 仓库 harness/ → 兼容旧目录 → 打包资源;也可用 DHD_HARNESS_URL 采用外部 Host。| 能力 | 现状 | 说明 |
|---|---|---|
| 文件树 / 多 Tab / Monaco | ✅ | 基础编辑、保存和二进制检测;冲突/LSP 仍在路线图 |
| 文件与内容搜索 | ✅ | ripgrep 优先、进度、取消、JS fallback;失败不会伪装成无匹配 |
| 集成终端 | ✅ | node-pty → Python/script/管道 fallback,Tab 切换保持会话 |
| Git | ✅ | status/diff/stage/commit/push/pull/branch 基础能力 |
| Harness Agent | ✅(上游) | iframe 中使用完整 Web UI;native Session controls 为早期 vertical slice,真实 provider/model review loop 尚未完成 |
| Agent review | ⚠️ | changed paths + 当前/前后 diff + 固定项目 test command;watcher 冲突、test-result-to-turn 和 per-hunk review 未完成 |
Cmd/Ctrl+K | ⚠️ | 直接模型调用的初版,不等同于 Harness turn/审批/diff |
| MCP / Rules / Skills | ⚠️ | 基础配置/入口;完整插件管理、恢复和市场未完成 |
| 多 Agent 原生控制面 | ⏳ | 复用上游 subagent/Team,桌面投影和 provider negotiation 计划中 |
| 签名发行 | ⏳ | 当前只提供源码和本地打包配置 |
| 我想知道 | 文档 |
|---|---|
| 产品为什么这样定位、竞品有什么优点 | 市场与生态调研 |
| 当前代码如何启动、通信、清理资源 | 架构文档 |
| 当前 Node/Harness/平台依赖和 bundled 状态 | Runtime Manifest |
| 评估上游 Desktop Host 复用方案 | Upstream-first Evaluation · Host IPC Transport |
| 下一阶段做什么、什么算完成 | 路线图 |
| 我是 AI coding agent,如何安全接手任务 | AI Agent 开发指南 · llms.txt |
| 当前哪个平台/能力真实可用 | 支持矩阵 |
| 如何安装、配置和排障 | 用户指南 |
| 如何贡献和升级 Harness | 贡献指南 |
| GitHub 搜索和社区策略 | GitHub 增长策略 |
| 安全边界和漏洞报告 | 安全策略 |
DHD 的长期方向是公开、版本化、可替换的 capability contract,而不是让插件猜 Electron 私有对象:
packages/shared/src/protocol.ts:IPC channel 和事件真源。packages/shared/src/api.ts:Renderer 可见 API 真源。packages/shared/src/capabilities.ts:能力发现 manifest。docs/adr/:进程边界、transport 和 capability negotiation 决策。当前还没有承诺稳定的第三方 Desktop extension API。请先阅读 AI Agent 开发指南 和 Harness 插件开发文档。
| 变量 | 作用 |
|---|---|
DHD_HARNESS_ROOT | 指定 Harness 源码根目录 |
DHD_HARNESS_URL | 采用 loopback dsh web URL;外部 Host 不由桌面终止(远程 URL 需显式 DHD_ALLOW_REMOTE_HOST=1,不建议) |
DHD_ALLOW_REMOTE_HOST | 仅用于明确允许非 loopback Host 的危险开发/诊断场景 |
DHD_ALLOW_UNBUNDLED_RUNTIME=1 | 仅本地诊断 packaged app 的外部 runtime;正式发行禁止 |
DHD_NODE | 指定启动 Host 的 Node |
DSH_HOME | Harness profile、Session 和凭证目录 |
DHD_USER_DATA | 隔离 Electron 设置和 userData(开发多实例) |
DHD_WORKBENCH_PORT | 隔离 Vite renderer 端口(开发多实例) |
DHD_ALLOW_MULTIPLE=1 | 仅开发/测试时允许绕过单实例锁 |
RIPGREP_PATH | 指定 ripgrep 可执行文件 |
pnpm docs:check
pnpm upstream:check
pnpm typecheck
pnpm test:contract
pnpm build
git diff --check
发行前额外运行 runtime staging、closure smoke 和 fail-closed gate(签名、公证及跨平台安装证据仍未完成):
pnpm runtime:prepare
pnpm smoke:runtime-closure
pnpm smoke:packaged-host
pnpm release:check
涉及 Host、PTY、搜索、窗口、打包或多 Agent 的改动,还需要对应的真实流程验证;请在 PR 中写明实际执行的命令和未覆盖的平台。Harness gitlink、锁文件和版本号应由单独、可回滚的提交更新。
deepseek-ai/deepseek-harnessDHD 使用 MIT。上游 Harness、Electron、Monaco、xterm、node-pty 和其它依赖遵循各自许可证;发布前必须生成完整的第三方 notices 和 runtime manifest。