Preface¶
When using DeepSeek Harness (DSH) for AI programming or Agent development, version management often requires switching to the terminal, a standalone Git client, or an IDE to clearly view commit history, branch relationships, and workspace changes. When the context is broken, the code discussions in the conversation can no longer match the repository state.
dsh-git-graph is a client-side plugin for the DSH Web GUI that embeds the commit history graph, branch filtering, file diffs, and a VSCode-style uncommitted changes panel directly into the conversation page. Below, we introduce what it does, how to install it, and how to use it daily.
What Is This¶
dsh-git-graph is open-sourced by maintainer 1841220388zzzcccxxx-star, currently at version 0.11.0 under the MIT license. This plugin provides embedded Git repository visualization within the DeepSeek Harness conversation interface: view commit history, manage branches, compare diffs, and handle workspace changes without leaving the current conversation.
It is mounted in the “Git Graph” tab on the conversation page, located next to the “Trajectory” tab. Opening a conversation displays the Git repository corresponding to that conversation’s workspace by default; conversations without a Git repository will show an empty state prompt.
Core Features¶
Commit History and Branches¶
The commit list uses a GitHub-style layout, with local and remote branches grouped separately, supporting collapsing and coloring. Branch filtering is controlled via checkboxes: checking a branch shows it, while unchecking completely hides it; when all are unchecked, the list is empty.
Clicking a commit row reveals details, including the commit message, list of changed files, and single-file diff. Ctrl+clicking selects two commits for comparison. Within commit details, you can view the history of a single file.
For large repositories, pagination is used, with 200 entries per page, allowing you to load more.
Following Conversations and Multiple Repositories¶
The graph defaults to following the current conversation’s workspace. Starting from v0.11, the top bar’s “Open” or the “Open Folder” button in the empty state allows you to browse the disk (navigating from drives to directories layer by layer, with Git markers), and select any folder to view its version control. Added repositories are persisted, and you can switch between them at any time via the top dropdown.
You can optionally configure config.repo or config.repos as an initial whitelist of accessible repositories; it works even without configuration. Repositories discovered during runtime by the conversation workspace are also automatically added to the accessible set.
Uncommitted Changes¶
A VSCode-style uncommitted changes panel is permanently positioned at the top of the graph, divided into three groups: Staged, Changes, and Untracked. Each row displays a status badge (A/M/D/R/U/?), added/removed line counts, and can be expanded to show the single-file diff (with syntax highlighting). Renames are shown as “Old → New”, and untracked files can be viewed directly.
Inline support includes staging, unstaging, and discarding; the top bar supports staging all and committing. Checking checkboxes enables batch staging, unstaging, discarding, ignoring, or committing selected items, with destructive operations prompting a confirmation dialog. Within the commit dialog, AI can generate candidate commit messages based on the diff, which you can edit before committing.
Remote and Branch Operations¶
The top bar provides fetch (git fetch) and push (git push current branch, executed after confirmation). Right-clicking a branch group title: local branches can be switched, pushed, or deleted (only after merging, with HEAD protected); remote branches can be fetched, and the remote branch name copied. Remote branch groups are always displayed, with “Synced” or “Included” status indicated.
Right-clicking a commit row supports copying the hash or message, viewing details, tagging, creating a new branch from the commit, opening the GitHub commit page, copying the repository path, and opening in the file manager.
Interaction and Status¶
Common keyboard shortcuts: Ctrl+F search, Ctrl+/ shortcuts panel, Ctrl+B collapse or expand all branch groups, ↑↓/j/k navigation, Enter view details, Esc close.
When the page is visible, workspace changes and new commits are monitored automatically every 5 seconds. Branch filtering, grouping toggles, panel collapse states, themes, etc., are saved locally and retained after refresh (keys unified to gg2-* from v0.8).
Themes support auto-follow, dark, light, and 8 style schemes. When opening the graph, it silently checks for the latest version on GitHub; if a new version is found, the top bar prompts, allowing one-click download and replacement (with automatic backup of the old version and rollback on failure), taking effect after restart.
Installation and Enablement¶
The DSH ecosystem adopts an “everything is a plugin” approach; SkillHub (https://www.skillhub.cn) is a community plugin directory, not officially affiliated with DeepSeek or幻方. Before installation, it’s recommended to read the plugin source code and MIT license. Plugins run with the permissions of the current DSH process, accessing paths and Git repositories it can read and write.
1. Add the Plugin to the Profile¶
Edit the package.json of the DSH web profile to add the dependency:
{
"dependencies": {
"dsh-git-graph": "file:./plugins/git-graph"
}
}
plugins/git-graph is the plugin source directory; adjust according to the actual path.
2. Mount the Bundle¶
Add the following to the profile’s cordis.patch.yml:
- insert:
- id: git-graph
name: dsh-git-graph
config:
repo: "C:/path/to/your/repo"
config.repo / config.repos is the optional initial repository whitelist; without configuration, you can add repositories anytime via the “Open” button in the graph page.
3. Install and Restart¶
pnpm install
Then restart dsh web (or use the one-click restart script). Open http://127.0.0.1:3080 , and click the “Git Graph” tab on any conversation page to use it.
Typical Usage¶
| Action | Description |
|---|---|
| Conversation page “Git Graph” tab | View commits and changes of the current conversation workspace |
| Top bar “Open” or empty state “Open Folder” | Browse disk, select another Git repository and add to list |
| Top repository dropdown | Switch between multiple added repositories |
| Branch group title | Collapse or expand commits under that branch |
| Branch filter checkbox | Control which branches appear in the list |
| Graph top “Uncommitted Changes” | View staged/changed/untracked, expand diff, perform staging or commit |
| Commit row | Click to view details; Ctrl+click to compare with another commit |
| Commit row right-click | Copy, tag, create new branch, open GitHub commit page, etc. |
| Top bar fetch / push | Execute git fetch or push current branch |
| Bottom status bar “Uncommitted Changes” | Click to scroll to the top changes section |
| Refresh | Reload repository data |
During development, server-side index.js changes require restarting dsh web; page web/index.html changes take effect upon refresh. On Windows, you can use sync-deploy.ps1 to sync to node_modules/dsh-git-graph/.
Use Cases and Notes¶
This plugin is suitable for developers who do AI programming within DSH and want to view commit history, branches, and workspace changes in the same interface. When you need more intuitive Git visualization than a pure command line and don’t want to frequently switch external clients, this plugin fills the gap.
Note: The plugin relies on the locally installed git and is invoked through the DSH process; read and write operations on repositories are performed under the current user’s permissions. Remote pushes, branch deletions, file restorations, etc., modify the repository—pay attention to confirmation prompts before execution. Automatic updates pull new versions from GitHub to replace local plugin files; if the environment is restricted, you can disable this or manage versions manually.
Links¶
- SkillHub directory page: https://www.skillhub.cn/plugins/1841220388zzzcccxxx-star/dsh-git-graph
- GitHub repository: https://github.com/1841220388zzzcccxxx-star/dsh-git-graph
Keeping Git status visible within DSH conversations reduces the cost of switching tools; after installing following the steps above, you can start using it from the “Git Graph” tab.