Introduction¶
When running a session in the DSH (DeepSeek Harness) Web UI, the session’s working directory often falls within a Git repository. Developers need to confirm the current branch, dirty file counts, ahead/behind status compared to the remote, and may also need to look at recent commits and file changes. Previously, one had to switch to the terminal to run git status, git log, git diff, and then return to the browser to view the session.
dsh-git-ui places these Git statuses into the Web UI. Below is an introduction to its location, capabilities, installation method, and precautions.
What is this¶
dsh-git-ui is a Git status visualization plugin for the DeepSeek Harness (dsh) Web UI, maintained by Julyves, and is licensed under MIT.
It targets DSH scenarios where the web profile is already running, allowing the session header in the browser to directly display the Git status of the current session’s working directory. It does not replace the terminal Git workflow or expose operations like push, pull, or merge; instead, it centralizes common status viewing and change management into the Web UI.
Core Features¶
Session Header Status Capsule¶
Each session header displays a status capsule to show:
- Current branch
- Dirty file count:
+N −N ?N - Ahead / Behind information
If the session working directory is not a Git repository, the status will display as a placeholder state.
Details Popover¶
Clicking the status capsule in the session header opens a details popover. The popover shows:
- Status counts
- Recent commits
- Changed files
- Branch operations
- Inline stage / unstage / discard for changed files
Recent commits and changed files can be further entered into Git center to view more complete context.
Git center¶
Git center is a more complete Git management entry point containing four tabs:
- History
- Changes
- Records
- Settings
History is the default landing tab.
History¶
History provides commit history viewing capabilities:
- Paginated commit list
- Branch graph
- Filter tree
- Date filter
- Search
After selecting a commit, you can view the commit message, body, and changed files tree. Clicking a file in the file tree allows you to enter the Changes tab to view the diff for that file in the commit.
Changes¶
Changes displays files grouped by Git status:
- staged
- unstaged
- untracked
It supports single-file and batch operations:
- stage
- unstage
- discard
Changes also provides a commit input box.
The diff viewer supports:
- side-by-side mode
- before mode
- after mode
- Markdown rendering
- mermaid support
Records¶
Records are used to view records for each round of work and provide a three-way count:
- Local
- Session
- External
It also provides confidence badges and correction actions to adjust attribution judgments.
For dynamically constructed bash targets, Records judgments are heuristic; if uncertain, it may fall back to External with an ≈ marker. Cold sessions will be skipped, and there is an upper limit on the observation timeline.
Settings¶
Settings provide display configuration:
- display presets
- pill / popover toggle
- popover section sorting
- diff viewer options
Installation and Enablement¶
First, confirm the environment meets the requirements:
- DeepSeek Harness is running and the
webprofile is enabled - Node.js
^22.19.0 || >=24.0.0 - dsh
>= 0.1.0-rc(developer preview) gitis present on the host
After confirming the environment, add the plugin:
dsh plugin --profile web add dsh-git-ui
After execution, restart dsh web.
Typical Usage¶
- Open a session and confirm that the session’s working directory is located within a Git repository.
- View the status capsule in the session header; no extra action is needed.
- Click the status capsule to view counts, recent commits, and changed files; open Git center for complete management.
Following the steps above, you can confirm the current repository status in the Web UI, and view commits, changed files, and diffs.
Suitable Scenarios and Precautions¶
Suitable for DSH users using the dsh web profile, especially developers who want to view branch, dirty files, commit history, changed files, and related records in the browser without frequently switching terminals.
Please note the following points:
- The plugin only displays the Git status of the current session’s working directory and does not expose push, pull, or merge operations.
- Refreshing is based on polling; event push based on file watcher is a planned capability.
- The list of changed files is limited by
maxChanges, and spill-file recovery is provided for extremely large status outputs. - The browser side only sends
sessionId; the host is responsible for parsing the working directory and running Git, with path protection. - Records uses heuristic judgment for dynamically constructed bash targets and may fall back to
Externaland display≈. - Syntax highlighting and mermaid support cover language and graphics subsets, not the full set.
- The plugin will execute Git-related operations in the dsh web host environment, using the permissions available to the current dsh process and the local
git. It is recommended to check the source code, dependencies, and MIT license before installation.
Links¶
- GitHub: https://github.com/Julyves/dsh-git-ui
- The community directory page can be searched using the plugin name
dsh-git-ui.