In the development workflow of DeepSeek Harness (DSH), agents running in a web profile often find it difficult to directly inspect the Git status of the current repository. The dsh-git-dashboard plugin provides a solution by displaying branch information and a workspace change summary in the session header, allowing developers to stay aware of code status without leaving the workspace.

This is an out-of-repository, read-only Git workspace dashboard for DeepSeek Harness, maintained by Sombrer0-1 under the MIT License.

Core Features

The plugin provides the following capabilities:

  • Session header information: Display the current branch or detached HEAD status, along with the total number of changed files.
  • Workspace dashboard: Show counts for staged, unstaged, untracked, and conflicted files, and display file-level change statistics (+N/−M, relative to HEAD).
  • Flexible tagging: Support marking the same file as both “staged” and “unstaged” at the same time.
  • Preview and Diff: Click a file to view a unified diff preview (including untracked files). If a file is too large, binary, or in conflict, the system explains why.
  • Branch comparison: Support selecting a base branch to view ahead/behind status and a file summary.
  • Open file: When on loopback and allowed by the Host, click a file to open it in the local folder.

Installation and Enabling

Installing this plugin requires a Node.js environment (version requirement ^22.19 || >=24) and a local git installation.

  1. Install the package: Go to the web profile directory and install using pnpm.
    cd ~/.dsh/profiles/web
    pnpm add dsh-git-dashboard
  1. Configure the Bundle: Edit the profile’s package.json, add dsh-git-dashboard to the dsh.profile.bundles array, and ensure it is placed after @deepseek-ai/dsh-base.
    {
      "dsh": {
        "profile": {
          "bundles": [
            "@deepseek-ai/dsh-base",
            "@deepseek-ai/dsh-web-app",
            "dsh-git-dashboard"
          ]
        }
      }
    }
  1. Handle dependency linking: If the Host reports that packages such as @deepseek-ai/dsh-typert-protocol cannot be found, run the dependency linking script in the plugin directory.
    cd ~/.dsh/profiles/web/node_modules/dsh-git-dashboard
    node scripts/link-runtime-deps.mjs
This script links the Host-side peer dependencies into the profile's `node_modules`.
  1. Verify and restart: Run the configuration check command, confirm the output includes # == dsh-git-dashboard, then restart dsh web.

Configuration

The plugin supports configuration through cordis.patch.yml. Default values are:

Field Default Meaning
command git Git executable path
timeoutMs 2000 Timeout per git command (milliseconds)
maxStatusBytes 1048576 stdout limit for git status
maxNumstatBytes 524288 stdout limit for numstat
maxFiles 100 Maximum number of files shown in the list
maxBranches 100 Branch list limit
maxDiffBytes 262144 Byte limit for single-file diff preview
maxDiffChangedLines 500 Line limit for changed lines in single-file preview (insertions + deletions)

Security and Notes

  • Network and permissions: The plugin uses the Gateway’s existing trusted-host configuration and does not separately configure loopback-only. It exposes repository names, branch names, paths, and line-count statistics to authorized clients. Use it on loopback only when possible; if it is reachable over LAN with a trusted host, assess the exposure surface yourself.
  • Resource limits: To prevent performance issues, the default limit for changed lines in a single-file preview is 500 lines, and the default diff output limit is 256 KiB (adjustable via the configuration items above).

Ecosystem and Feedback

The plugin aims to enrich the DSH plugin ecosystem by providing developers with more intuitive code status monitoring. For more details, visit the plugin directory or view the source repository.