Introduction

DeepSeek Harness (DSH) is designed around the philosophy that “everything is a plugin.” In an agent development workflow, frequently switching terminals or opening external Git tools disrupts session continuity. The dsh-git plugin encapsulates core Git operations into a sidebar panel, allowing developers to complete version control tasks without leaving the current interface.

What Is This

dsh-git is a client-side plugin maintained by EasyTZ. It provides a visual Git panel for DeepSeek Harness. It does not require memorizing command-line syntax; instead, it handles operations such as staging, committing, pushing, and branch switching directly in the interface.

Installation and Activation

Before installing, ensure your environment meets the following dependencies:
* dsh version >= 0.1.1-rc.2
* git is installed on the machine and available in the system PATH
* pnpm is available

Install it from the command line:

dsh plugin --profile <name> add @easytz/dsh-git

<name> is the required profile name. It is usually web for the desktop version and tui for the TUI version. After installation, restart dsh. A Git button appears at the bottom of the sidebar.

Core Features

This plugin provides the following core capabilities:
* View changes: Displays the list of changed files in the current repository.
* Stage files individually: Stage or unstage each file separately.
* Commit and push: Write a commit message directly in the panel and push it to the remote.
* Switch branches: Quickly switch branches via a drop-down menu and view the ahead/behind count against upstream.
* Browse history: View recent commits, and click one to inspect details, including changed files and line-count statistics.
* Undo the latest commit: Rolls back the most recent commit.
* Multi-repository support: Manage multiple independent Git repositories under one workspace.

Typical Usage

  1. Open the panel
    Click the Git button at the bottom of the sidebar to open it.

  2. Select a repository
    If the current workspace contains multiple repositories, a “Repository” drop-down appears at the top of the panel. Select the target repository.

  3. Stage files
    In the “Changes” list, click + to the right of a file to stage it. For an already staged file, click − to unstage it.

  4. Commit
    Write a message in the commit box and click the Commit button.

  5. Push
    Click the Push ↑n button. n is the number of local commits ahead of the remote.

  6. Switch branches
    Use the drop-down menu in the branch row to switch branches. The number next to it shows progress relative to upstream.

  7. View history
    Click any item in “Recent commits” to open a detail window showing the full commit message and file changes.

  8. Undo a commit
    Only the latest commit has an undo button on the right. Click it once to enter a red confirmation state; click again within three seconds to perform the action:

    • For unpushed commits, reset --mixed is executed, returning the changes to the working tree.
    • For pushed commits, revert is executed, generating a reverse commit.

Notes

  • Undo limitation: Only the latest commit can be undone.
  • Push conflicts: If the remote rejects the push (for example, due to conflicts), the panel prompts you to run git pull in the terminal and does not handle it automatically.
  • Untracked files: New files are not staged automatically. You must click + for each file to stage it explicitly.
  • Caching: The browser-side plugin bundle uses a one-year immutable cache. After an upgrade, restart dsh for the changes to take effect.
  • Multi-repository scanning: The plugin scans only the immediate subdirectories of the workspace root as repositories. It automatically skips directories such as node_modules, dist, and others.

Scenarios

This plugin is suitable for developers who need to perform high-frequency Git operations inside DSH, especially those who prefer quick version control from the sidebar without frequently switching windows.

Conclusion

dsh-git simplifies Git workflows in DSH through visual controls, bringing version control closer to the actual workflow. For more details, see the plugin directory or the GitHub repository.