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.
- Install the package: Go to the web profile directory and install using pnpm.
cd ~/.dsh/profiles/web
pnpm add dsh-git-dashboard
- Configure the Bundle: Edit the profile’s
package.json, adddsh-git-dashboardto thedsh.profile.bundlesarray, 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"
]
}
}
}
- Handle dependency linking: If the Host reports that packages such as
@deepseek-ai/dsh-typert-protocolcannot 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`.
- Verify and restart: Run the configuration check command, confirm the output includes
# == dsh-git-dashboard, then restartdsh 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-hostconfiguration 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.