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 web profile is enabled
  • Node.js ^22.19.0 || >=24.0.0
  • dsh >= 0.1.0-rc (developer preview)
  • git is 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

  1. Open a session and confirm that the session’s working directory is located within a Git repository.
  2. View the status capsule in the session header; no extra action is needed.
  3. 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 External and 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.