Dedicated read-only Git Graph view beside Chat and Trajectory: commit topology, local/remote/tag refs, HEAD and working-tree status, search, filtering, first-parent mode, refresh, and load more.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:WhitePlusMS/dsh-git-graph
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Git Graph for the DeepSeek Harness web interface. Open a dedicated Git Graph view beside Chat and Trajectory to inspect the current workspace's Git history; refreshing the graph does not create a conversation message or write to the trajectory.

Features
- A dedicated
Git Graphentry beside Chat and Trajectory. - Commit topology with branch, merge, and parent relationships.
- Local branch, remote branch, tag, and HEAD reference labels.
- The clean or dirty working-tree state in the graph header.
- Full-range search across commit hashes, subjects, authors, email addresses, and reference names.
- Branch-name glob filters (e.g.
main,release-*), reference-kind filtering, and an option to include all refs. - Date, author-date, and topological commit ordering, plus a first-parent mode for the mainline history.
- Selecting a commit expands its details inline below the commit's row: hash, author, committer, date, parents, signature status, and references, with a layout aligned to vscode-git-graph.
- File changes in tree or list view: folder icons with compacted single-child folders, change-type colouring, and
(+added|−deleted)stats. - Click a file to view its line-by-line diff with old/new line numbers and add/remove highlighting.
- Expand the
Uncommitted Changesrow to inspect working-tree files and their per-file diffs. - Compare file changes between any two commits.
- A metadata strip listing the repository's tags and stashes.
- An in-results find bar with case sensitivity, regex, and previous/next navigation.
- A display settings panel: date/author/hash columns, date format, and graph style, persisted per repository.
- Keyboard support:
↑/↓to move the selection,Ctrl+Fto find,Ctrl+Shift+Ffor settings. - Refresh the current repository without creating a conversation message or tool trace entry.
- Load more commits as needed, up to 500 commits.
- Display an empty state instead of an error when the current directory is not a Git repository or the repository has no commits yet.
The current release is read-only. It does not create, delete, rename, merge, rebase, push, pull, fetch, create tags, stash, or reset Git data.

Open Git Graph
After installing the plugin and restarting DSH Web, click Git Graph in the view switcher beside Chat and Trajectory.
The page reads the current session workspace. Refresh operations call the plugin's Typert Remote directly; they are not rendered as conversation tool cards and do not append refresh events to the trajectory.
Git data and path handling
The Host reads Git data through fixed subprocess arguments without using a shell. It reads repository status, HEAD, and bounded commit history, and loads commit details, file contents, file diffs, working-tree changes, and commit comparisons on demand.
The model tool supports the following parameters:
git_graph({
path?: string, // Repository directory; defaults to the current session workspace
max_commits?: number, // 1..500, defaults to 100
all?: boolean, // Include all reachable refs, defaults to true
first_parent?: boolean, // Follow only the first parent, defaults to false
glob?: string[], // Branch-name glob filters (OR); overrides --all when provided
search?: string, // Full-range search: hash, subject, author, email, ref name, date
sort?: string // Commit ordering: date, author-date, or topological; defaults to date
})
The provided path is used only as the Git subprocess working directory and is never interpolated into a shell command; file-read requests are validated to stay inside the repository. If the path is not a Git repository, the page displays an empty state instead of a repository error. A Git repository with no commits is handled the same way.
Install or update
Install version v0.0.2 from GitHub:
dsh plugin --profile web add https://github.com/WhitePlusMS/dsh-git-graph/archive/refs/tags/v0.0.2.tar.gz
Use the same command to update an existing installation. Restart dsh web after installation so the Host entry and browser client load the new version.
Uninstall
Remove the current package from the web profile:
dsh plugin --profile web remove dsh-git-graph
Development
pnpm install
pnpm run typecheck
pnpm test
pnpm run build
The build writes the standalone Host and browser artifacts to lib/. Profile installation uses these generated artifacts and does not require a Harness monorepo checkout.
Reference and inspiration
This project was created with reference to the following open-source project: vscode-git-graph. We would like to express our thanks to its authors and contributors.
License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-git-graph★ 8121
Git branch selector and Git graph for the dsh web GUI: switch branches and explore branch-lane and commit history from the conversation header.
Akimiya-z/codex-guard#dsh★ 138
Pre-submit pull-request hygiene checks inside DeepSeek Harness: scans the current diff for TODO leftovers, hardcoded secrets, and non-conventional commit subjects.
Cerbur/clutch-dsh#clutch-dsh-worktree★ 29
Adds a Worktree view to DSH Web UI that groups Sessions by Git worktree while keeping DSH as the source of truth.
lehhair/dsh-diff-viewer★ 27
PiUI-style diff viewer replacing the stock DiffBlock for write/edit tool calls.
DietCokewithSugar/dsh-user-experience★ 20
Finds potential UX issues in your project: automatically reviews React/TypeScript code, pinpoints each problem, and gives concrete suggestions.
DamonKoy/dsh-web-ui#dsh-git-graph★ 19
Git branch selector and Git graph in the conversation header of the dsh web GUI.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.