Introduction¶
The plugin ecosystem of DeepSeek Harness emphasizes “everything is a plugin”; the community directory is an independent site with no official affiliation to DeepSeek/FanHua. For developers running agents in DSH, common needs are not just executing a single Git command, but putting repository state, diff, commits, branches, and GitHub PR operations into the same workspace: models can read the state and perform controlled operations, and the Web side can also view changes, edit text files, and follow up on PRs.
dsh-git-workbench addresses this scenario by exposing Git and GitHub pull-request workflows as model tools and a DSH Web sidebar panel. Below is an introduction to its positioning, capabilities, installation methods, and precautions.
What is this¶
dsh-git-workbench is a DeepSeek Harness workflow plugin maintained by FlutterSoul under the MIT license.
The project status is experimental, with the current target being the 0.1.0-rc.6 DSH package line; DeepSeek Harness is still in the developer preview phase, so the plugin interface may change. It primarily solves the Git/GitHub daily workflows that DSH agents and Web users need to complete.
Core Features¶
Repository and Commits¶
The plugin provides the following repository operation capabilities:
- Repository status, staged/unstaged diffs, history, and branches.
stage,unstage, safe restore, commit.- Branch creation, switching, safe deletion.
fetch, default fast-forwardpull,push, and does not provide a force option.
GitHub PR¶
For GitHub pull requests, the plugin supports:
- Listing PRs.
- Viewing PRs.
- Creating PRs.
- Editing PRs.
- Checkout PRs.
- Merging PRs.
- Commenting on PRs.
Current GitHub operations are completed via the GitHub CLI and GitHub-hosted PRs.
Web Panel and Model Tools¶
In DSH Web, the plugin provides a sidebar panel covering:
- Changes.
- Text file editing.
- Commits.
- Branches.
- History.
- PRs.
At the same time, tools exposed to the model include:
git_status
git_diff
git_log
git_stage
git_commit
git_branch
git_sync
github_pr
These tools target the same set of Git/GitHub workflows as the Web panel.
Installation and Setup¶
Environment Requirements¶
Before use, the following must be met:
- Node.js
^22.19.0or>=24 - DeepSeek Harness
0.1.0-rc.6 - Git in
PATH - GitHub CLI in
PATHandgh auth logincompleted for PR functionality
The plugin does not store GitHub tokens; authentication is still held by Git and gh.
Installation from GitHub¶
The following command is used to install the plugin from a GitHub repository:
dsh plugin --profile web add github:FlutterSoul/dsh-git-workbench
Installing from a Git source triggers the package’s prepare build. pnpm 10 and above will reject this build on the first attempt; at this point, the package key printed by DSH needs to be written to:
$DSH_HOME/profiles/web/pnpm-workspace.yaml
and then retry.
If using pnpm 11.19 and above, you can use a repository-level allowBuilds configuration:
allowBuilds:
'dsh-git-workbench@git+https://github.com/FlutterSoul/dsh-git-workbench.git': true
Starting DSH Web¶
Start the Web side after installation:
dsh --profile web
After starting, the Git entry point will appear in the sidebar footer, following the currently registered workspace for the task.
Local DSH Profile Installation¶
If installing from a local path, you can use:
dsh plugin --profile web add ./path/to/dsh-git-workbench
npx @deepseek-ai/dsh web
Development Checks¶
Developers can execute in the repository:
pnpm install --ignore-scripts
pnpm check
pnpm pack --dry-run
Typical Usage¶
After the installation steps above, you can use the following workflow:
- Execute
dsh --profile web. - Enter the workspace currently registered for the task.
- Find the Git entry in the sidebar footer.
- In the panel, view changes, branches, history, text file editing, and PRs.
- Perform stage, commit, branch switching, or PR operations when modifications are needed.
In the UI, discard, deleting branches, and merging will first require confirmation. Text file saving uses expected SHA-256 to prevent silent overwrites after concurrent edits.
Configuration¶
Non-default configurations can be set in the Loader entry of the DSH profile. Listed configuration items include:
gitBinary
ghBinary
commandTimeoutMs
maxOutputBytes
maxFileBytes
maxRequestBytes
defaultRemote
defaultPullMode
pushBeforePrCreate
mutationApproval
allowedRoots
Among them, maxFileBytes is related to text editing capabilities: files exceeding this limit can only view diffs. Browser requests require the same origin and are limited to registered or configured workspaces.
Security Model¶
The plugin’s security constraints include:
- Commands use
spawnwithshell: false. - Parameters are not concatenated into shell commands.
- Interactive prompts and pagers for Git and GitHub CLI are disabled.
- Changes are serialized per repository.
- Changes triggered by the model require approval by default; fail closed if approval service is missing.
- Browser requests require the same origin and are limited to registered or configured workspaces.
- Text saving uses expected SHA-256 to prevent concurrent overwrites.
- Does not expose force push, force delete branch,
git clean, arbitrary Git parameters, or arbitraryghparameters. - Discard only calls
git restore --worktreefor explicitly tracked paths and does not delete untracked files.
Applicable Scenarios and Notes¶
Suitable for the following scenarios:
- Using DeepSeek Harness
0.1.0-rc.6. - Wanting to integrate Git/GitHub workflows into DSH agents.
- Wanting to view changes, edit text files, handle branches, and PRs in DSH Web.
- Using Git and GitHub CLI with
gh auth logincompleted.
Please note:
- Project status is experimental, and DSH plugin interfaces may change.
- The plugin runs with the permissions of the current DSH process.
- Source code and license should be checked before installation.
- Text editing only supports UTF-8.
- Binary files and files exceeding
maxFileBytesare diff-only. - GitHub operations are currently only via GitHub CLI and GitHub-hosted PRs.
- The plugin does not include a semantic merge editor.
- The plugin does not create repositories, rewrite history, manage credentials, or bypass branch protection.
Links¶
Directory page:
https://www.skillhub.cn/plugins/FlutterSoul/dsh-git-workbench
GitHub repository:
https://github.com/FlutterSoul/dsh-git-workbench