dshbase

Plugin directory / Developer / dsh-client-ui-git-branch

dsh-client-ui-git-branch

Verified · install-tested on dsh dsh-mixxed

✓ Actively maintained 2 contributors Pure TypeScript

View on GitHub ↗ ← Back to plugin directory

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

What it does

A customized DeepSeek Harness git branch UI plugin.

✅
Our take
Works — verified, early-stage project

A customized DeepSeek Harness git branch UI plugin. 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-client-ui-git-branch

English | 锟斤拷锟斤拷

A dsh (DeepSeek Harness) out-of-tree plugin that adds a git branch selector to the chat
composer, immediately left of the model seat (conversation.input.right).

Install

  1. Install the plugin from npm (published as @dsh-mixxed/dsh-client-ui-git-branch):

    dsh plugin --profile web add @dsh-mixxed/dsh-client-ui-git-branch
    

    The package declares dsh.bundle (its bundled cordis.patch.yml), so dsh plugin add
    automatically appends it to the profile's dsh.profile.bundles layer stack and the plugin
    mounts on the next boot 锟斤拷 no manual cordis.patch.yml editing.

    Upgrading an install that predates the bundle declaration: remove the legacy ui-git-branch
    row from $DSH_HOME/profiles/<name>/cordis.patch.yml 锟斤拷 the bundle layer now supplies it, and
    leaving both would mount the id twice.

  2. Restart the profile (new plugins are discovered at boot) and refresh the browser page. In a
    session whose workspace is a git repository, the branch chip appears left of the model seat.

Building from source (development / offline)

pnpm install
pnpm run typecheck
pnpm test
pnpm run build
npm pack          # produces dsh-mixxed-dsh-client-ui-git-branch-<version>.tgz
dsh plugin --profile web add ./dsh-mixxed-dsh-client-ui-git-branch-<version>.tgz

Features

  • Composer seat left of the model selection, same chip/menu chrome as the model seat
  • Shows only when git is installed and the session workspace is a git repository
  • Fuzzy branch search (substring or in-order subsequence), with a clear button
  • List shows at most 5 rows; more branches scroll inside the list (no page-level scrolling)
  • Current branch marked in a distinct color (brand blue + check icon)
  • Upstream tracking facts (VSCode-style): every branch shows its remote short name
    (origin/main) with colored ahead/behind commit counts (锟斤拷2 amber / 锟斤拷3 green) and a red
    gone marker when the upstream ref was deleted; local-only branches show nothing. The trigger
    chip carries the same badge when the current branch is out of sync
  • Local / Remote groups 锟斤拷 see Branch groups
  • New branch action: a dialog asks for the branch name, then creates the branch from HEAD and
    checks it out (git switch -c); invalid names are flagged live, collisions surface git's message
  • Branch switching with conflict detection: failures pop a transient toast carrying git's stderr
  • Full zh / en i18n and automatic multi-theme support through --dsw-* design tokens
  • Detached-HEAD safe (trigger falls back to HEAD); unborn-HEAD repos still list the current branch

Branch groups

The list is split under two sticky headings:

  • Local branches 锟斤拷 every local branch. Tracked branches keep their upstream mapping
    (master 锟斤拷 origin/master, with ahead/behind counts).
  • Remote branches 锟斤拷 only branches that exist remotely but have no local counterpart
    (origin/HEAD symrefs and bare remote refs are excluded).

Behavior:

  • The fuzzy search spans both groups at once; a group with no matches collapses away.
  • Clicking a remote branch creates a local tracking branch and switches to it
    (git switch --track origin/feature 锟斤拷 local feature tracking origin/feature); the branch
    then moves into the local group.
  • Clicking a local branch switches the work tree (git switch); a blocked switch 锟斤拷
    typically uncommitted changes that would be overwritten 锟斤拷 pops a toast with git's own message.

Verify

dsh --profile <name> --dump-config | Select-String ui-git-branch

The composed config shows the ui-git-branch row, and
$DSH_HOME/profiles/<name>/package.json lists @dsh-mixxed/dsh-client-ui-git-branch under
dsh.profile.bundles (auto-appended by dsh plugin add).

After the restart, the composer shows the branch chip; opening it reveals the grouped list, the
search box, and the New branch action.

Development

pnpm run typecheck   # strict tsc over src + tests
pnpm test            # vitest: host logic (fake runner) + real-git integration + jsdom component tests
pnpm run build       # esbuild dual output 锟斤拷 lib/index.js (node ESM) + lib/client.js (browser CJS closure)

Test profile used during development: git-branch-dev (independent of the user's web profile),
booted with dsh --profile git-branch-dev --port 3800.

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-client-ui-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:dsh-mixxed/dsh-client-ui-git-branch

Headless (CLI) profile:

dsh plugin --profile headless add github:dsh-mixxed/dsh-client-ui-git-branch

Test report

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

When to use it

Extend the agent's coding surface — give it a new tool, workflow, or integration so it handles a dev task it couldn't before.

Who it's for

Developers who want dsh to behave like a teammate on real codebases — editing, running, and verifying changes rather than just answering.

For developers — extending it

The tool/command surface is the seam: expose more of the SDK, add smarter context wiring, or tighten the loop between code changes and verification.

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

Share this badge

More in Developer

Browse all 7797 plugins →