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¶
-
Open the panel
Click the Git button at the bottom of the sidebar to open it. -
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. -
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. -
Commit
Write a message in the commit box and click the Commit button. -
Push
Click the Push ↑n button.nis the number of local commits ahead of the remote. -
Switch branches
Use the drop-down menu in the branch row to switch branches. The number next to it shows progress relative to upstream. -
View history
Click any item in “Recent commits” to open a detail window showing the full commit message and file changes. -
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 --mixedis executed, returning the changes to the working tree. - For pushed commits,
revertis executed, generating a reverse commit.
- For unpushed commits,
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 pullin 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.