Git and GitHub panel for the DSH web profile: stage/unstage/discard/diff, branches, commit, push/pull/sync, log, file browser, workflow board, and GitHub OAuth with PR creation.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:JFWaskin/dsh-git-nexus
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A single, self-contained DeepSeek Harness (DSH) web plugin that merges the
git-management features of the popular dsh-web-ui plugin (SCM change panel +
branch management) with GitHub access, a workflow board, and file browsing —
one panel instead of several plugins.
Features
- Changes (SCM) — working-tree status, per-file diff, stage / unstage / discard, commit.
- Branches — list, switch, create, delete.
- Remote — push, pull, sync (pull then push), fetch.
- Log — bounded, structured commit history.
- Files — list tracked files with search, read any text file.
- Workflow — persistent step board (Claude Code-style plan tracking).
- GitHub — OAuth Device Flow login (full
repoaccess, revocable), scope seal, PR creation.
Install
dsh plugin --profile web add "file:/absolute/path/to/dsh-git-nexus"
# then restart the web profile
dsh web
The plugin appears under Settings → Plugins and the panel pill appears in the session header of git-managed workspaces.
Compatibility
Targets DSH 0.1.0-rc.6 (web profile). The plugin ships a strict
Typert host manifest
(./typert) and mounts strict client codecs, matching the conventions of the
plugins inside the official repository.
This is a community plugin published under the dsh-plugin
topic — the channel the DeepSeek Harness
maintainers ask community extensions to use (see the project's
CONTRIBUTING.md).
GitHub OAuth
GitHub auth uses the device flow, so no long-lived PAT is written to disk. You need a GitHub OAuth App client id:
- Go to GitHub → Settings → Developer settings → OAuth Apps → New OAuth App.
- Any name / homepage / callback will do (device flow ignores the callback).
- Paste the resulting Client ID into the panel's GitHub tab, click Connect, then open the printed URL and enter the user code.
The resulting token requests the repo, workflow, read:user and user:email
scopes and is stored with 0600 permissions under
~/.dsh/storages/dsh-git-nexus/. If the gh CLI is already authenticated, the
plugin uses it automatically and no client id is required.
Security notes
- Every git/file command runs through a fresh
/bin/sh -cchild process with a 30s timeout and a 2 MiB output cap. The web profile scopes DSH'sshellservice to per-session agent realms, so the host-plane gateway executes directly instead of injecting it. - Branch names, paths, and commit messages are shell-quoted; control characters are rejected.
- GitHub tokens live only under
~/.dsh/storages/dsh-git-nexus/settings.json(mode0600).
License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-git-graph★ 10406
Git branch selector and Git graph for the dsh web GUI: switch branches and explore branch-lane and commit history from the conversation header. Retired by the author in favour of the official workspace-changes plugin: the published npm package stays installable but is no longer developed.
Akimiya-z/codex-guard#dsh★ 132
Pre-submit pull-request hygiene checks inside DeepSeek Harness: scans the current diff for TODO leftovers, hardcoded secrets, and non-conventional commit subjects.
xbzbing/dsh-git-panel★ 51
IDE-style Git panel in the DSH Web GUI: a resident tab with a three-column overview (branch/tag list, searchable commit-history graph, commit detail with changed-file tree and message) and a changes page (stats bar, uncommitted list with per-file stage/unstage/discard, commit box with amend); side-by-side diffs carry lazy highlight.js syntax highlighting, on-demand between-hunk context expansion and word-level intra-line emphasis, with image files shown as before/after panes; plus a zsh-style branch marker in the input bar. Every git command runs as an argv array through the host subprocess service, cwd locked to the repo root.
Cerbur/clutch-dsh#clutch-dsh-worktree★ 46
Adds a Worktree view to DSH Web UI that groups Sessions by Git worktree while keeping DSH as the source of truth.
DamonKoy/dsh-web-ui#dsh-git-graph★ 31
Git branch selector and Git graph in the conversation header of the dsh web GUI.
Lenonss/DSH_VsCodeMode★ 31
VSCode-style editing experience for DeepSeek Harness: a Monaco-based central file editor (tabs, Ctrl+P quick open, status bar) and interactive diff review of agent edit/write results with per-change Keep/Undo, rollback and archiving, persisted across restarts.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.