前言¶
在 DeepSeek Harness(DSH)里做日常开发,会话、工作区、模型对话往往占满主界面;而本地 Git 状态、待审 MR/PR、工单审批、日志排查和 skills 管理,又要分别打开终端或各平台页面。工具链本身未必缺——git、gh、glab、aliyun 等 CLI 多半已经装好并完成登录——缺的是把它们收进同一入口、且不把凭据再托管给插件的一类集成方式。
下面介绍社区客户端插件 dsh-workbench(npm 包名 @samanhappy/dsh-workbench):在 DSH Web UI 侧栏增加 Workbench 入口,用本机已安装的 CLI 驱动面板内容;插件为静态 bundle,不存凭据,也不介入会话审批或 steering。
这是什么¶
dsh-workbench 由维护者 samanhappy 发布,在 DSH 插件目录 中归类为客户端插件。一句话定位:一个侧栏工作台,把本地 Git、GitLab MR / GitHub PR 与其 Issues、阿里云 DMS 工单审批、阿里云 SLS 日志查询、PingCode 工作项(只读)以及 DSH skills 管理,收进同一面板。
架构上,host 半注册同源路由并调用本地 CLI,client 半在 DSH 内渲染 UI;用户无需为使用插件而本地构建(包内自带预构建的 index.js 与 lib/client.js)。许可证为 MIT;当前 npm 版本为 0.9.0(以 package.json 为准)。README 标明针对 DSH 桌面应用 0.2.2-rc.1 做过测试,并基于 @deepseek-ai/dsh-client-ui-* 0.1.6-alpha.2 合约包构建。
核心功能¶
Workbench 页面¶
| 页面 | 能力概要 |
|---|---|
| Home | 默认落地页:跨工作区需关注的会话(运行中 / 待处理 / 近 24 小时活跃)、统计卡片(运行会话、待审 MR、待批 DMS、未读 GitHub 通知等)及最新未读通知。 |
| Repository | Git | MR/PR | Issues | Auto-review 子导航;工作区与平台由 Git remote 自动识别。 |
| Git | 本地变更(暂存 / 未暂存 / 冲突)与 diff 预览、暂存与提交(含可配置模型与语言的 AI 提交说明)、历史图与搜索、分支 / 标签 / 远程、检出与分支管理、合并、pull(仅 fast-forward)、push(不 force)、commit-and-push。 |
| MR / PR | 我的 / 待我审 / 全部列表、含完整 diff 的详情、一键在新会话中 AI 审阅、按仓库后台 auto-review、批准、合并(可选 squash / 删源分支)、评论、关闭、在浏览器打开。 |
| Issues | 全库列表(搜索、标签、经办人、状态、排序、分页);详情含评论与关联 MR;编辑;批量关闭 / 重开;“Handle” 在新会话中先分析 Issue。 |
| 助手消息动作 | 已定稿消息上的 “Submit MR/PR” 在当前会话创建 MR/PR;“Git” 打开工作区提交对话框。 |
| Notifications | GitHub 跨仓库未读通知;打开即标记已读并跳转 GitHub(入口在 Home,无顶层独立 Tab)。 |
| Skills | 浏览 DSH skill 根目录下已安装 skills,阅读 SKILL.md 与支持文件;启用 / 禁用 / 卸载 / 检查更新;搜索 skills.sh 并一键安装。 |
| Settings | 按用户的功能开关、侧栏快捷方式、审阅模型、Git 提交语言,以及审阅、Issue 处理、Git 提交、MR/PR 提交等可编辑提示词。 |
功能开关按用户、按浏览器生效:关闭某页会隐藏入口并停止加载该页数据,属于 UI 与请求裁剪,不是权限边界。
可选集成(非安装硬性依赖)¶
各集成仅在使用对应页面或动作时才会被调用;缺少 CLI 时页面内提示,不影响其余模块。
| 集成 | 作用 | 前置条件 |
|---|---|---|
| GitLab / GitHub | MR/PR、Issues、auto-review、GitHub 通知 | 已安装并登录 glab 和 / 或 gh;自托管 GitLab 须已被 glab auth status 识别。 |
| 阿里云 DMS | 工单审批、订单详情与 SQL | 已登录 aliyun CLI;RAM 读与审批权限;页面可设 Region(多租户可设 Tid)。 |
| 阿里云 SLS | 日志与 trace 查询、SQL/JSON 详情、trace 下钻与水印图 | 已登录 aliyun CLI;RAM 日志读权限;目标 Project/Logstore 已建索引;须在插件行配置中设置 slsEnvironments(无默认 project)。 |
| PingCode | 工作项、评论、筛选(只读) | python3 与本地 pingcode skill 目录(含 scripts/api_call.py 与配置好的 .env)。 |
| skills.sh | 安装 / 更新 / 发现 skills | 本地 node + npx(首次会拉取 skills 包);仅浏览本地 skills 可不依赖。 |
安装与启用¶
环境要求:DSH 已安装且 dsh 在 PATH 中。README 测试目标为 macOS 与 Linux;Windows 未测试。使用插件本身不要求 Node.js;Skills 页安装 / 更新 / 搜索需要本机 Node.js(含 npx),开发基线为 >= 22.15.0。
任选一种方式将插件加入 web profile:
# 1. npm(推荐)
dsh plugin --profile web add @samanhappy/dsh-workbench
# 2. GitHub
dsh plugin --profile web add github:samanhappy/dsh-workbench
# 3. 本地路径
dsh plugin --profile web add /path/to/dsh-workbench
dsh plugin 会把包链入 profile 并写入 bundle 列表。完成后重启 DSH;首次启动侧栏会出现 Workbench,打开后默认进入 Home。可选集成需自行安装并登录对应 CLI;SLS 须在 profile 中该插件行的配置里设置 slsEnvironments,完整 YAML 示例见仓库 docs/installation.md。
典型用法¶
- 日常入口:打开 Workbench → Home,查看待审 MR、DMS 待批与 GitHub 未读通知,再跳进 Repository 或具体模块。
- 单仓库闭环:在 Repository 子页完成本地 Git 提交与 push,在同一页的 MR/PR 列表审阅 diff;需要时在助手消息上使用 “Submit MR/PR” 或 “Git” 动作,与当前 DSH 会话衔接。
- Issue 驱动会话:Issues 详情中 “Handle” 会新开会话并先分析 Issue,适合把平台 Issue 当作 DSH 任务的起点。
- 运维侧查日志 / 批工单:已配置
aliyun与slsEnvironments后使用 SLS 页查询;DMS 页处理审批(权限由 RAM 与 CLI 登录态决定,不由插件保管)。 - Skills 治理:在 Skills 页管理本机已装 skills;需要时用
npx路径从 skills.sh 搜索并安装。
以上步骤均依赖你本机 CLI 的登录态与网络可达性;插件不替代各平台的账号体系。
适用场景与注意¶
适合谁:已在 DSH Web 中集中使用智能体会话,同时重度依赖本地 Git 与 GitHub/GitLab、或需在桌面环境里顺带处理 DMS/SLS/PingCode/skills 的开发者与值班同学。若你只有少数 CLI、且不需要侧栏聚合,可只启用部分页面并在 Settings 中关闭其余功能开关。
安全与权限:README 明确不存储凭据;数据经你已登录的 CLI(及 PingCode skill 自有的 .env)读取。插件以当前 DSH 进程的用户权限调用本机命令与同源 host 路由;安装前建议查看 GitHub 仓库 源码与 MIT 许可证,确认符合组织策略。DSH 插件目录(如 skillhub.cn)为社区站点,与 DeepSeek / 幻方无官方从属关系;生态理念是「一切皆插件」,本插件是其中一枚客户端扩展。
兼容性:较新的 DSH 或 UI 扩展点可能仍可用,但合约包版本变化可能导致不兼容;升级 DSH 后若面板异常,应对照 README 中的 DSH 与合约包版本说明。
结尾¶
dsh-workbench 把分散在终端与各 Web 控制台里的高频操作,收敛到 DSH 同一侧栏,并坚持「CLI 已登录即用、插件不碰凭据」的边界。若要查看简介与分类,可打开插件目录页 https://www.skillhub.cn/plugins/samanhappy/dsh-workbench;安装命令、集成条件与配置细节以 https://github.com/samanhappy/dsh-workbench 的 README 与 docs/installation.md 为准。