前言¶
在 DeepSeek Harness(DSH)里跑智能体会话时,工作区文件与 Git 状态往往要切到外部编辑器或终端才能查看、修改和提交。浏览器里的 DSH Web UI 本身并不自带完整的项目树、代码编辑器和 PyCharm 式 Git 面板。社区插件 dsh-code-git-workbench 在右侧 Sidebar 增加 Code 与 Git 两个页面,把懒加载文件树、CodeMirror 编辑器和分支树、提交图、diff 等能力收进同一会话界面,且无需 Node.js 构建步骤,也不依赖 VS Code 运行时。
下面介绍插件定位、能力、安装方式与典型用法;事实以仓库 README 与 package.json 为准。
这是什么¶
dsh-code-git-workbench 由维护者 DazzzleKK 发布,分类为客户端插件,当前包版本 0.6.0(MIT 许可证)。它在 DeepSeek Harness Web UI 上注册 host 与 client 两半代码:host 提供 /code-git 静态 UI 与 JSON API,client 在 Sidebar 注册 Code、Git 页类型,并调整头部 subagent 目录里「运行中」条目相对 idle 条目的排序。
Git 面板的 HTML/CSS/JS 与 companion 项目 pycharm-git-log 同源共享;两个仓库在运行时彼此独立。插件简介:Code editor and PyCharm-style Git workbench for the DeepSeek Harness Web UI.
核心功能¶
Code 页¶
- 针对 Harness workspace 的懒加载目录树;
.git目录在树中隐藏。 - 多标签页:每个标签独立保存文档、光标、滚动与 dirty 状态。
- CodeMirror 5(vendored):行号、括号匹配、自动闭合、
Ctrl+F增量搜索;支持 JS/TS、Python、JSON、Markdown、HTML/CSS、YAML、SQL、shell、PowerShell 及类 C 语言等模式。 - 工作区选择器位于树头,列出所有 Harness workspace;若会话目录不是 Git 仓库,Code 会落在第一个是仓库的 workspace,选择按会话记忆。
- 自动保存(行为对齐 PyCharm 描述):末次编辑空闲 2 秒、切到其他应用或隐藏 DSH 窗口、关闭文件标签、切换 workspace(先写回所有 dirty 标签)、离开页面、点击 DSH 其他标签(如 Git)导致编辑器失焦等场景会触发;在文件标签间切换不会强制保存。
Ctrl+S仍可手动保存;成功写入后状态栏显示Auto-saved。 Ctrl+R重载当前文件;工具栏提供 Save、Reload。- 文件以 UTF-8 读写;大于 2 MB 或二进制文件拒绝展示。
Git 页¶
- 仓库选择器:每个是 Git 仓库的 workspace 可选。
- PyCharm 风格:本地/远程 分支树、过滤、当前分支、ahead/behind;checkout、checkout + rebase、merge、rebase、compare、push、rename、delete、tag 等;斜杠分支名在 Local/Remote 内各自展开为文件夹;可星标分支,收藏置顶,偏好按 Git 仓库存在 browser profile。
- 提交日志:彩色 graph、ref 徽章、作者与时间;可过滤与「load more」。
- 提交详情:完整 message、parents、文件与
+/-;checkout、branch、cherry-pick、merge、rebase、reset(soft/mixed/hard)、revert、tag。 - 文件行打开内置 diff;文件上下文菜单含「Compare with working tree」。
- Fetch all、pull、push;无 upstream 时 push 回退为
--set-upstream origin。 - 分支上下文菜单可对指定分支执行 Pull ‘
’ into Current 。 - 工具栏 diff:Working tree changes(staged / unstaged / untracked 及计数);
[staged]为 index vs HEAD,[unstaged]为 working tree vs index。 - 远程分支超过 40 个时自动折叠。
Subagent 目录排序¶
头部 descendant-count 按钮打开的 subagent 目录中,每次渲染后把 running 行移到 idle 行之上(按树层级);仅为 DOM 增强,不修改 host 状态。
安全与 API 边界¶
Host 对每个请求调用 ctx.connection.requestRejection(req),继承 Harness Host/Origin 围栏与浏览器认证。路径解析限制在会话注册的 workspace 与所选 root 内;Git 通过 execFile 无 shell 执行,并设置 GIT_TERMINAL_PROMPT=0。
主要路由包括:GET /code-git/api/context、/tree、/file(GET/PUT),以及 GET/POST 一系列 /code-git/api/git/*(state、status、worktree-diff、commit、diff、action 等)。详见仓库 README 架构一节。
环境要求¶
- 带 bundled plugin CLI 的 DeepSeek Harness(README 写明在 0.2.1-rc.2 / DSH 44.x desktop build 上测试)。
- Git 页需要本地 Git 仓库。
- 安装与运行插件 不需要 Node.js。
安装与启用¶
官方方式是将仓库克隆到固定目录,再以 link 形式注册到 desktop profile(不是 dsh plugin add github:owner/repo 这类凭名称拼接的命令)。完全退出并重新打开 DSH;仅重载窗口不够,host 半在进程启动时加载。
Windows¶
$repo = "C:\path\to\dsh-code-git-workbench"
$cli = "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"
& $cli plugin --profile desktop add "link:$repo"
macOS / Linux¶
应用自带的 dsh CLI 路径因安装布局而异;若 CLI 已在 PATH 上:
dsh plugin --profile desktop add link:/absolute/path/to/dsh-code-git-workbench
若要在 browser profile 使用,可先 dsh --profile web,安装时改用 --profile web。
更新与卸载¶
更新:在仓库目录 git pull 后重启 DSH,无需编译。
卸载示例(Windows,README 给出):
& $cli plugin --profile desktop remove dsh-code-git-workbench
之后同样需要重启应用。
典型用法¶
- 打开一个会话。Code / Git 默认从会话 workspace 起步;Code 可切换到任意 Harness workspace,Git 可切换到任意 Git 仓库 workspace。
- 打开右侧 Sidebar(desktop 构建为
Ctrl+Alt+B,或使用侧边栏按钮)。 - 点击
+,选择 Code 或 Git;引导页也会列出这两个页面。 - 需要更大编辑区域时,使用面板全屏控件。
在 Code 中切换 workspace 前会自动保存 dirty 标签;在 Git 中执行 VCS 操作前,若刚从 Code 切走,失焦触发的自动保存可覆盖「操作前落盘」的常见需求。Git 页依赖当前选中仓库与 DSH 会话注册的工作区路径,操作前确认仓库选择器指向预期 root。
适用场景与注意¶
适合:希望在 DSH 会话内直接浏览 workspace 文件、轻量编辑(含自动保存策略)并在同一 UI 完成分支、提交、diff、fetch/pull/push 等 Git 操作的开发者;偏好 PyCharm 式 Git 日志而非纯命令行的用户。
注意:
- 插件 host 半在 DSH 进程内运行 Git 与文件读写,权限与当前 DSH 进程一致;安装前请阅读源码与 MIT 许可证,自行评估信任边界。
- 大文件与二进制文件无法在 Code 页打开;Git 操作在无 TTY 提示环境下执行,需本地 Git 凭据与 remote 配置已就绪。
- 社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系;星标与目录元数据以各站点为准(目录线索中星标为 0)。
结尾¶
dsh-code-git-workbench 把 Code 编辑与 PyCharm 风格 Git 工作台嵌入 DSH 右侧 Sidebar,无构建步骤、不依赖 VS Code,适合在智能体会话旁同步改代码和管理版本库。进一步了解可查看目录页与上游仓库:
- 目录页:https://www.skillhub.cn/plugins/DazzzleKK/dsh-code-git-workbench
- GitHub:https://github.com/DazzzleKK/dsh-code-git-workbench