Introduction

When working with the DeepSeek Harness (DSH) WebUI, checking what has changed in the current repository, committing, and pushing usually requires switching back to the terminal to run git status and git commit. Switching back and forth easily interrupts your current workflow.

dsh-git-component solves this problem: it hangs a floating panel on the right side of the WebUI to display workspace changes in real-time. Commit and push operations are completed directly within the panel; if the commit message is left blank, it can be automatically generated. Below is an introduction to the plugin’s positioning, features, installation, and usage.

What is this

dsh-git-component is the Git plugin for the DeepSeek Harness Web GUI, maintained by nieyunliang, released under the MIT license, and currently version 0.1.1.

It floats on the right side of the window (376px wide, transparent card style), categorizes current changes into three groups: “Staged / Unstaged / Untracked”, and supports three operations: Commit, Commit & Push, and Push. When the commit message is left empty, it automatically generates a Chinese commit message using the current default model.

Core Features

View Changes

  • A floating panel on the right side, which can be collapsed into a small Git branch icon in the top-right corner and expanded when needed.
  • Three groups: Staged / Unstaged / Untracked. It uses the porcelain v1 output of git status for precise parsing and correctly classifies renamed files.
  • Clicking a filename displays the diff inline, up to 400 lines.
  • Auto-refreshes every 15 seconds.

Commit and Push

  • Three operations: Commit, Commit and Push, Push (push current branch to upstream).
  • Automatically executes git add -A to stage all changes before committing.
  • When the commit message is left blank, clicking commit automatically generates a Chinese commit message (max 60 characters, single line) using the current default model, then commits.
  • Supports Ctrl/⌘+Enter shortcut for quick commit in the panel.

Session Following and Execution

  • Git commands are executed in the working directory of the current session. The plugin automatically uses git rev-parse --show-toplevel to locate the repository root; the panel reloads automatically when switching sessions or workspaces.
  • Operations are executed via the host’s shell service, following session sandbox policies, and does not relax current file permission modes; also sets GIT_TERMINAL_PROMPT=0 to prevent git from prompting for interaction.

Installation and Enablement

Requirements: web profile (providing webServer and shell services), Node ≥ 22, Git ≥ 2.x. The plugin has zero runtime dependencies and does not introduce other packages.

Install from GitHub (git source, recommended):

dsh plugin --profile web add github:nieyunliang/dsh-git-component

After installation, the webui process needs to be restarted to take effect—Node’s module cache does not hot-replace old code.

Regarding build scripts: This plugin has no build script. Git source installation usually does not require extra prepare/allowBuilds configuration; if pnpm still prompts that the build script is blocked, add the corresponding key to allowBuilds in the profile’s pnpm-workspace.yaml and retry.

Typical Usage

  1. After restarting, open the WebUI, and a Git panel appears on the right (the small branch icon in the top-right corner can expand/collapse).
  2. The panel displays the three groups and changed files of the current repository; click a file to view the diff.
  3. Commit: Fill in the commit message and click “Commit” or “Commit and Push” (or simply Ctrl/⌘+Enter); git add -A is automatically executed to stage all changes before committing.
  4. Empty commit message: Click commit to automatically generate an AI commit message and commit.
  5. The “Push” button pushes the current branch to upstream.

If doing local development and debugging, and you want to install or reinstall from the source code directory, execute the command in the parent directory of the plugin:

dsh plugin --profile web add ./dsh-git-component

Then use the following command to confirm that git-component appears in the config, and restart the webui process:

dsh --profile web --dump-config | grep git-component

Scenarios and Notes

Suitable for people driving development session by session in the WebUI: watching the agent modify code while verifying changes and committing, without having to switch back and forth to the terminal.

A few points to note:

  • The risks of git operations in the panel are equivalent to typing equivalent commands in the terminal, especially the automatic git add -A which stages all changes before committing—please confirm the file list in the panel before committing.
  • The plugin runs with the permissions of the current dsh process, executes according to session sandbox policies, and does not relax file permission modes; however, before installing any third-party plugins, it is recommended to check the source code and license. This project uses the MIT license.
  • When installing from a local source code directory, the command must be executed in the parent directory of the plugin.

Summary

dsh-git-component puts viewing changes, diffs, committing, and pushing into a single panel on the right side of the WebUI, combined with AI auto-generation of commit messages, reducing the switching between terminal and interface. Installation requires just one command plus one restart.