← 返回列表
未验证
在网页端跑命令、开 worktree 并一键提 PR
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/26 · 已提供中文文档
DeepSeek Harness 插件——扩展 DSH Web 界面的双面 cordis 包:命令面板、git worktrees、一键 PR、cron 定时任务
综合分
27.8
GitHub 分
27.8
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add steve-magne/dsh-plugins该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-plugins
DeepSeek Harness(DSH)的插件——扩展 harness web surface(http://127.0.0.1:3080)的双面 cordis 包。有意将其排除在产品仓库之外:harness 工具链按自身节奏演进,不得触发产品发布或继承产品质量门禁。
插件
| 插件 | 它为 web surface 添加的功能 |
| --- | --- |
| @dsh-plugins/command-deck | 右侧停靠侧边栏:保存 shell 命令,在主机上运行它们,流式输出其输出,一键停止 |
| @dsh-plugins/worktree-launcher | 为每个新聊天会话物化一个隔离的 git worktree(/.dsh/worktrees/dsh-word-word-word,基于最新的 main),并在编辑器中提供默认开启的开关 |
| @dsh-plugins/create-pr | 通过 Worktree 开关旁的“Create PR”按钮一键创建 GitHub PR:确定性的 git/gh 管道,一次 LLM 调用生成 conventional-commit 消息,以及一个 CI 看门狗,在失败时唤醒所属会话进行修复 |
| @dsh-plugins/scheduled-tasks | 设置模态框中的“Scheduled Tasks”页面:cron 调度的提示(工作区、模型、cron、提示),每次触发都会从最新的 main 切出一个隔离的 worktree,在其中运行一次无人值守的 LLM 迭代,然后推送分支并打开 GitHub PR |
| @dsh-plugins/agent-terminal | “Agent Terminal”覆盖层:交互式接管控制台——在 harness 主机上分配终端(可用时使用 PTY),查看其实时输出,向其输入,并中断它们 |
| @dsh-plugins/voice-input | 编辑器工具行中的麦克风开关:通过浏览器 Speech API 或仅限回环的本地 ASR 服务器(whisper.cpp 风格)进行设备端语音听写 |
| @dsh-plugins/issue-starter | “Issues → Sessions”覆盖层:预览 GitHub issue,从最新的 base 切出一个隔离的 worktree,并启动一个限定于该 worktree 的实时 agent 会话(包含提示) |
| @dsh-plugins/mission-control | “Mission Control”覆盖层:一个 GitHub-Copilot-app 风格的 My Work 分诊收件箱——审查请求、你打开的 PR、分配给你的 issue——每一项都可以移交给在隔离 worktree 中运行的 agent 会话 |
| @dsh-plugins/changes-lens | “Changes Lens”覆盖层:一个 Copilot-app 风格的 Changes canvas,适用于任何 checkout——分支/同步状态、带 +/- 统计的已暂存/未暂存/未跟踪清单、有上限的统一 diff,以及固定在 refs/dsh-changes-lens/ 下的恢复快照 |
| @dsh-plugins/merge-pilot | “Merge Pilot”覆盖层:一个 Copilot-app 风格的 Agent Merge——注册任意 PR,主机端监督器会监视 CI + 审查,在失败日志或审查者反对时唤醒你的会话,然后在条件满足时合并(squash/merge/rebase) |
仓库布局
packages//
├── package.json # "dsh": {"client": {"platform": "web"}} + exports["./client"]
├── README.md # 插件专属文档(安装、配置、API)
├── lib/index.js # 宿主端 —— cordis 插件(apply/inject),ESM
└── lib/client.js # 浏览器端 —— 懒加载 CJS 工厂打包产物,无需构建步骤
将插件安装到 DSH 配置档
两个产物,均位于本仓库之外:
1. 从配置档的插件树(harness Loader 的 node 解析基准)建立符号链接:
mkdir -p ~/.dsh/profiles/web/node_modules/@dsh-plugins
ln -s "$PWD/packages/command-deck" \
~/.dsh/profiles/web/node_modules/@dsh-plugins/command-deck
2. 在配置档的用户补丁层(~/.dsh/profiles/web/cordis.patch.yml)中追加一条 Loader 条目:
- insert:
- id: command-deck
name: '@dsh-plugins/command-deck'
config: {}
然后重启 harness —— web 界面没有配置热重载,因此新条目仅在启动时挂载。卸载 = 移除这两个产物 + 重启。
市场与 npm 发布
本仓库带有 GitHub 主题标签
dsh-plugin,这正是新兴的 DSH 市场所抓取的内容:dshfind 每日同步该主题,deepseekplugin.org 对其建立索引,而诸如 YELEBAI/dsh-plugin-marketplace 之类的经过验证的注册表每两小时扫描一次 topic:dsh-plugin,随后验证清单和 loader 条目以实现一键安装。
每个包都可以在 @dsh-plugins 作用域下独立发布到 npm。每个清单都通过 repository.directory 指回此处,因此市场列表会直接深链到该插件的子文件夹,而其 keywords 以 dsh-plugin / deepseek-harness 开头,以便基于 npm 搜索的发现。发布单个插件(需要在 npmjs.com 上拥有 @dsh-plugins 作用域):
cd packages/command-deck
npm publish # publishConfig 已强制为公开访问
git tag command-deck-v0.1.0 && git push origin command-deck-v0.1.0 # 注册表固定精确引用
将发布标记为 -v,以便 GitHub 源安装可以固定到精确的引用,而不是移动的 main。
测试
每个插件都在没有 cordis 的情况下自测(在真实子进程 / 打桩的浏览器界面上使用打桩服务):
pnpm test # 运行每个包的测试套件
提交前守卫
每次提交都会经过 scripts/marketplace-guard.mjs
(通过 .githooks/pre-commit,在全新克隆上使用
git config core.hooksPath .githooks 激活)。它保证 DSH 扫描和市场所读取的文件存在 —— 每个插件的 package.json、
README.md、lib/index.js、lib/client.js;根目录的 LICENSE.md、
pnpm-workspace.yaml、本 README 中的列表行 —— 规范化每个清单
将其转换为规范的市场形态(repository.directory、keywords 前缀、
files 白名单、publishConfig、exports 契约),重新暂存它
修复的内容(仅暂存文件,绝不扫入无关的进行中工作),检查
三方身份 package name ↔ client registration id,并对每个随附的 lib/.js 运行
node --check。任何它无法推导出的内容都会
作为硬错误报告,而不是被脚手架化生成。使用
node scripts/marketplace-guard.mjs [--fix] 独立运行它。
有关此处每个插件都必须遵循的架构契约,请参阅 AGENTS.md。
许可证
MIT。扫码进群