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-forward pull, 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.0 or >=24
  • DeepSeek Harness 0.1.0-rc.6
  • Git in PATH
  • GitHub CLI in PATH and gh auth login completed 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:

  1. Execute dsh --profile web.
  2. Enter the workspace currently registered for the task.
  3. Find the Git entry in the sidebar footer.
  4. In the panel, view changes, branches, history, text file editing, and PRs.
  5. 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 spawn with shell: 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 arbitrary gh parameters.
  • Discard only calls git restore --worktree for 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 login completed.

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 maxFileBytes are 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