Preface¶
When writing code and running agents in DeepSeek Harness (DSH), Git changes in the workspace often require switching to the terminal or IDE to stage, compare, and commit. While the conversation and trajectory views cover the session process, they lack a version control interface that aligns with daily development workflows.
Maintained by PivotStackIntelligence, dsh-github introduces a third “Source Control” tab into the session view ring of the DSH Web Harness, aligning its layout and interactions with VS Code’s native Git Source Control view. Below, we introduce its positioning, capabilities, and installation process.
What This Is¶
dsh-github is a Source Control and GitHub repository panel plugin for DeepSeek Harness. It provides a split layout in the session’s main area with an SCM panel on the left and a diff viewer on the right, displaying only the repository state for the current session workspace. Switching back to the conversation tab restores the chat interface.
The plugin uses the local Git configuration (SSH keys, HTTPS credential helpers, remotes, etc.), does not call the GitHub API, does not store GitHub tokens, does not implement OAuth, and does not depend on the GitHub CLI. GitHub-related links open in the browser; creating Pull Requests is done via the GitHub Compare page. Git write operations require explicit user triggers, and the repository state is re-read after each operation.
The current version is v0.2.0, licensed under MIT, and the GitHub repository has approximately 26 stars.
Core Features¶
Source Control Tab¶
In the session view ring, Source Control stands alongside Conversation and Trajectory. When active, it fills the main area without overlays and displays only the repository corresponding to the current session workspace.
Repository Header and Commit Bar¶
The repository header shows the workspace name, current branch, ahead/behind counts, GitHub link, and refresh button.
The commit bar supports multi-line commit messages, an Amend checkbox, and a Commit dropdown (Commit / Commit & Push / Commit & Sync / Undo Last Commit). A circular Sync/Publish button displays ↑n ↓n counts.
Change Groups and Diff¶
Changes are grouped into STAGED CHANGES, CHANGES, and MERGE CHANGES (untracked files are included in CHANGES), collapsible, with quantity badges. Group-level actions include stage all, unstage all, and discard all. File status badges align with VS Code: A green, M brownish-yellow, D red, R/C blue, U green, ! yellow.
The diff viewer supports side-by-side and inline modes, with line numbers and addition/deletion coloring. The file header displays old path → new path. Conflict files offer Accept Current / Accept Incoming / Accept Both. Discarding individual or all changes uses an inline confirmation popup instead of a bare window.confirm.
Commit History, Branches, and Remotes¶
The Commits section can be searched by message/author, displaying short SHA, title, author, relative date, and refs badge. Expanding a commit reveals full details and per-file diff, with options to Copy SHA, Checkout Commit, Create Branch, and Create Tag.
The Branches section highlights the current branch, supporting checkout, rename, delete, merge-into-current, and rebase-onto.
The Remotes section displays fetch/push URLs for each remote, supporting fetch, fetch (prune), add, and remove.
Tags, Stash, and Merge State¶
Tags support listing, create, push, and delete. Stashes support listing, apply, apply & drop, drop, and viewing diff. Ongoing merges or rebases can be continued or aborted from the panel.
Git Output and Auto-Refresh¶
A collapsible Git Output section shows recent git commands and their sanitized output.
Refresh occurs immediately when the tab is opened; during the active tab, polling happens every 3 seconds (pausing when switching away); it also refreshes on window focus or visibility changes. Sections like commits, branches, remotes, tags, and stashes are lazy-loaded on first expansion and then updated with each status refresh.
Environment Requirements¶
Before installation, ensure the following:
- DeepSeek Harness
>=0.1.0-rc.6 - Git available in
PATH - Git remote and credential helper configured (required for push, fetch, pull)
Building from source additionally requires Node.js >= 22.19 and pnpm >= 9.
Installation and Enabling¶
The SkillHub directory page and GitHub README provide installation instructions by building from a local directory and registering to the web profile:
pnpm install
pnpm run build
dsh plugin --profile web add .
Rebuilding the plugin requires restarting the Web Harness. After restarting, a third Source Control tab (alongside Conversation and Trajectory) will appear in the session view ring.
Typical Usage¶
Viewing and Staging Changes¶
- Open a session workspace containing a Git repository in DSH.
- Click the Source Control tab in the session view ring.
- In the CHANGES group, view unstaged and untracked files. Use
+to stage individual files or the group-level “Stage All.” - Use the right-side diff viewer to compare changes in the selected file.
Committing and Syncing¶
- Enter a commit message in the commit bar; check
Amendif needed to amend the previous commit. - Click
Commitor select Commit & Push or Commit & Sync from the dropdown. - Use the circular Sync/Publish button to view ahead/behind counts and sync with the remote.
Browsing History and Branch Operations¶
- Expand the Commits section and search past commits by message or author.
- Expand a commit to view per-file diff, and optionally Copy SHA, Checkout Commit, Create Branch, or Create Tag.
- In the Branches section, checkout, rename, merge-into-current, or rebase-onto.
Creating Pull Requests via Browser¶
The plugin does not include a built-in PR creation flow. After pushing a branch, click the GitHub link in the repository header to open the corresponding page in the browser and create a Pull Request via the GitHub Compare page.
Use Cases and Notes¶
Who It’s For
- Users developing in the DSH Web Harness who wish to stage, diff, commit, and perform branch and remote operations without leaving the session interface.
- Developers accustomed to the VS Code Git Source Control layout who want a similar experience in DSH.
Usage Notes
- The plugin runs with the current DSH process permissions, reading and writing Git repositories under the local session workspace. Before installation, review the source code and confirm the MIT license and behavioral boundaries.
- It does not replace the GitHub CLI or GitHub API integration: no token management, no OAuth, and no direct PR creation within the panel.
- Push, fetch, and pull rely on local Git credential configuration; if SSH or HTTPS credential helpers are not configured, sync operations will fail.
- Auto-refresh polls every 3 seconds while the tab is active; be mindful of performance and network overhead with large repositories or frequent tab switching.
Related Links¶
dsh-github brings a VS Code-style Source Control view into the DSH session’s main area, suitable for managing Git changes locally during agent development workflows, then completing GitHub-side collaboration via the browser.
- SkillHub directory page: https://www.skillhub.cn/plugins/PivotStackIntelligence/dsh-github
- GitHub repository: https://github.com/PivotStackIntelligence/dsh-github