dsh-git-workbench
Manifest valid★ 1Git and GitHub pull-request workbench for DeepSeek Harness, with agent tools and an integrated Web UI.
dsh-git-workbench
Git and GitHub pull-request workflows for DeepSeek Harness, exposed both as model tools and as an integrated Web sidebar workbench.
Status: experimental. DeepSeek Harness is currently a developer preview and its plugin interfaces may change. This release targets the exact
0.1.0-rc.6DSH package line.
What it provides
- Repository status, staged/unstaged diffs, history, and local branches
- Stage, unstage, safe restore, commit, branch create/switch/safe-delete
- Fetch, fast-forward pull by default, and push without force options
- GitHub pull requests: list, view, create, edit, checkout, merge, and comment
- A DSH Web sidebar panel for changes, text-file editing, commits, branches, history, and pull requests
- Model-facing tools for the same workflows:
git_status,git_diff,git_log,git_stage,git_commit,git_branch,git_sync, andgithub_pr
This project aims for Git/GitHub workflow parity with coding agents such as Codex. It does not claim to reproduce unrelated proprietary Codex features.
Requirements
- Node.js
^22.19.0or>=24 - DeepSeek Harness
0.1.0-rc.6 - Git on
PATH - GitHub CLI on
PATHand authenticated withgh auth loginfor pull-request features
The plugin never stores GitHub tokens. Authentication remains owned by Git and gh.
Install from GitHub
Until an npm release exists, install from a GitHub repository:
dsh plugin --profile web add github:FlutterSoul/dsh-git-workbench
Git-source installation runs this package's prepare build. pnpm 10 and later intentionally reject that on the first attempt. Review the repository, then copy the exact package key printed by DSH into $DSH_HOME/profiles/web/pnpm-workspace.yaml and retry. With pnpm 11.19 or later, the repository-scoped form is:
allowBuilds:
'dsh-git-workbench@git+https://github.com/FlutterSoul/dsh-git-workbench.git': true
This grants build permission only to this Git repository; do not disable pnpm's build safeguards globally. For reproducible installations, append a trusted commit or tag to the GitHub specifier.
Start DSH Web:
dsh --profile web
The Git entry appears in the sidebar footer. It follows the current task's registered workspace.
Configuration
The bundle inserts the plugin with defaults through cordis.patch.yml. Configure its Loader entry in the DSH profile when non-default values are needed:
| Option | Default | Purpose |
|---|---|---|
gitBinary | git | Git executable |
ghBinary | gh | GitHub CLI executable |
commandTimeoutMs | 120000 | Per-process timeout |
maxOutputBytes | 4194304 | Maximum captured command output |
maxFileBytes | 1048576 | Maximum file size accepted by the editor |
maxRequestBytes | 2097152 | Maximum Web API request body |
defaultRemote | origin | Default fetch/pull/push remote |
defaultPullMode | ff-only | ff-only, rebase, or merge |
pushBeforePrCreate | true | Push the head before creating a PR |
mutationApproval | all | Model-tool approval policy: all, destructive, or none |
allowedRoots | [] | Additional absolute roots the browser UI may operate in |
The UI accepts registered DSH workspaces by default. allowedRoots is for deployments that intentionally expose additional workspace trees.
Safety model
- Commands use
spawnwithshell: false; arguments are never concatenated into a shell command. - Git and GitHub CLI interactive prompts and pagers are disabled.
- Mutations are serialized per repository.
- Model-initiated mutations request approval by default. A missing approval service fails closed.
- Browser calls require same-origin requests and are constrained to registered/configured workspaces.
- Text-file saves use an expected SHA-256 hash, preventing silent overwrite after concurrent edits.
- Force push, forced branch deletion,
git clean, arbitrary Git arguments, and arbitrarygharguments are not exposed. - “Discard” only calls
git restore --worktreefor explicit tracked paths; it never deletes untracked files.
UI button clicks are direct user actions. The UI asks for confirmation before discard, branch deletion, and merge.
Development
pnpm install --ignore-scripts
pnpm check
pnpm pack --dry-run
For a local DSH profile:
dsh plugin --profile web add ./path/to/dsh-git-workbench
npx @deepseek-ai/dsh web
The test suite creates disposable Git repositories and does not contact GitHub. Live PR verification requires a repository and authenticated gh account under your control.
Architecture
DSH agent tools ─┐
├─ GitWorkbench ── git / gh child processes
DSH Web panel ─ API ┘
│
└─ sidebar.footer.action client slot
src/git.ts owns all Git/GitHub operations and path validation. src/tools.ts is the model-facing adapter. src/api.ts is the constrained same-origin Web adapter. src/client/ contains the sidebar UI.
Scope and limitations
- Text editing is UTF-8 only. Binary files and files over
maxFileBytesremain diff-only. - GitHub operations currently use GitHub CLI and GitHub-hosted pull requests; other forges are not implemented.
- Conflict resolution is shown through status and file editing, but no semantic merge editor is included.
- The plugin does not create repositories, rewrite history, manage credentials, or bypass branch protection.
License
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.3.3 | — | — |
| 0.3.4 | — | — |
Comments
Loading…
From the same category
by awesome-dsh-plugin
A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
★ 18.3k
CC0-1.0
Python
Oct 10, 2026
by 0xsline
DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.
★ 1.2k
CC0-1.0
Python
Oct 10, 2026
by pax-beehive
Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub
★ 450
MIT
TypeScript
Oct 6, 2026
by xiajiajun516
DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.
★ 176
MIT
TypeScript
Oct 8, 2026
dsh plugin --profile web add dsh-config-managerby yjh051108
推荐组件(非必须):DeepSeek Harness 运行时注入器;已随 dsh-routing-suite 单仓库化保留,本仓库继续维护/发布。
★ 164
TypeScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby jigjoy-ai
A CLI that turns a goal into a pull request - and a sandbox for testing concurrent AI coding agents on the Mozaik runtime.
★ 124
MIT
TypeScript
Oct 2, 2026