dshbase

Plugin directory / Developer / dsh-git-branch

dsh-git-branch

Verified · install-tested on dsh hanyueqiang

✓ Actively maintained Builds on 6 official DSH packages

View on GitHub ↗ ← Back to plugin directory

1Stars
0Forks
0Open issues
—Language
2026-08-16Last push
Cross-platformPlatform

What it does

A plugin in the Developer category for DeepSeek Harness.

✅
Our take
Works — verified, early-stage project

A plugin in the Developer category for DeepSeek Harness. It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

dsh-git-branch

English | 中文

Show the current workspace git branch right after the composer mode controls (access mode / plan) in the DeepSeek Harness (DSH) Web UI. It renders only when the workspace is inside a git repository, and it refreshes automatically when you switch branches in another tool.

Where it appears

The composer tool row is laid out as [+ commands] [access mode] [plan] ← branch chip. This plugin registers into the conversation.input.left slot — the additive seat immediately after the resident mode chrome — so the branch chip sits right next to the mode controls.

  • Branch: ⎇ main
  • Detached HEAD: ⎇ detached @ a1b2c3d
  • Not a git repository: nothing renders
  • Click the chip: refresh immediately (tooltip explains)

Install

The package is a DSH bundle (it ships its own cordis.patch.yml), so dsh plugin add both installs the dependency and activates it — no manual config:

# from npm
dsh plugin --profile web add dsh-git-branch

# or a local checkout (development)
dsh plugin --profile web add ./dsh-git-branch

Then restart the profile and refresh the page:

# restart dsh web, then reload the browser tab

How it works: package.json declares dsh.bundle.patch = ./cordis.patch.yml, which - inserts one git-branch plugin row. dsh plugin add detects dsh.bundle and adds the package to dsh.profile.bundles; on the next boot that patch layer takes effect, the host loads the host half, and the client half is served to the browser automatically.

Optional host config

To change the command name, override the row (same id) in your own profile cordis.patch.yml:

- id: git-branch
  name: dsh-git-branch
  config:
    commandName: git-branch   # optional; default is git-branch

Unknown config keys fail at load.

Client refresh constant

See the top of src/client/index.tsx (or lib/client.js):

  • POLL_INTERVAL_MS = 60000: slow safety-net poll; <= 0 disables it.

How it works

  • host: lib/index.js registers the /git-branch command; the handler walks up from session.header.cwd to the nearest .git (worktrees and submodules included), parses HEAD, and returns the result as JSON in the command's text field.
  • client: lib/client.js registers the conversation.input.left chip, fetches the branch through ctx.remote.commands.execute, and registers a conversation.chat.commandview entry for git-branch that renders null, hiding the transport command from the transcript.

Refresh triggers (see DESIGN.md): mount / session-or-workspace switch → immediate; window focus → immediate; visibilitychange → visible → immediate; chip click → immediate; 60s poll → fallback.

Layout

dsh-git-branch/
├── package.json          # dsh.bundle + dsh.client + peerDependencies
├── cordis.patch.yml      # bundle patch: inserts the git-branch plugin row
├── LICENSE
├── src/
│   ├── index.ts          # host half (TypeScript source)
│   └── client/index.tsx  # client half (TypeScript source)
├── lib/
│   ├── index.js          # host half (prebuilt)
│   ├── index.d.ts
│   ├── client.js         # client half (prebuilt, window.__ModuleLoader__ format)
│   └── client.d.ts
├── DESIGN.md             # git-branch refresh-rules design
├── README.md             # English (this file)
└── README.zh.md          # 中文

License

MIT

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-git-branch for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:hanyueqiang/dsh-git-branch

Headless (CLI) profile:

dsh plugin --profile headless add github:hanyueqiang/dsh-git-branch

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Developer

Browse all 7819 plugins →