Bundle
dsh-git-nexus
DSH web plugin: unified Git + GitHub + workflow + files panel (branch, stage/unstage, diff, commit, push/pull/sync, log, files, GitHub OAuth full access, workflow board).
- Source
- JFWaskin
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 15 hours ago
Readme
# dsh-git-nexus 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 `repo` access, revocable), scope seal, PR creation. ## Install ```bash 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](https://github.com/deepseek-ai/deepseek-harness) 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](https://github.com/topics/dsh-plugin) — the channel the DeepSeek Harness maintainers ask community extensions to use (see the project's [CONTRIBUTING.md](https://github.com/deepseek-ai/deepseek-harness/blob/master/CONTRIBUTING.md)). ## GitHub OAuth GitHub auth uses the [device flow](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#device-flow), so no long-lived PAT is written to disk. You need a GitHub **OAuth App client id**: 1. Go to GitHub → Settings → Developer settings → OAuth Apps → New OAuth App. 2. Any name / homepage / callback will do (device flow ignores the callback). 3. 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 -c` child process with a 30s timeout and a 2 MiB output cap. The web profile scopes DSH's `shell` service 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` (mode `0600`). ## License MIT
Install
dsh plugin --profile web add github:JFWaskin/dsh-git-nexus
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-git-nexus from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.