diffhub
v1.0.0
Published
Git diff viewer for cmux: review your branch in a browser split
Maintainers
Readme
DiffHub
Git diff viewer for cmux. Opens in a browser split and shows HEAD versus the working tree by default (touched), with status-bar scopes for merge-base and staged/unstaged views, split/unified diffs, and inline comments. A watcher marks updates; refresh is manual (r).
Install
npm install -g diffhubOr run without installing:
npx diffhubUsage
Run inside any git repository:
diffhubOpens http://localhost:2047 and shows HEAD versus the working tree. Use --base to pick the comparison branch (main, master, develop, or dev, auto-detected). Switch scopes in the status bar: all, committed, staged, unstaged, touched.
# Use a different base branch
diffhub --base develop
# Point at a repo in another directory
diffhub --repo ~/projects/my-app
# Use a different port
diffhub --port 3000
# Don't open the browser automatically
diffhub --no-openFeatures
- Working-tree diff — defaults to
touched(git diff HEADplus untracked); status bar switchesall/committed/staged/unstaged/touched - Split and unified views — toggle with
s, keyboard-navigable withj/k - Inline comments — add
[must-fix],[suggestion],[nit], or[question]notes on any diff line; copy all comments as a formatted prompt - Copy path — file headers expose a copy-path control
- Manual refresh — watches local file changes and marks updates available; press
ror the status-bar refresh control - File sidebar — filter files with
/ort, see per-file+/-stats at a glance
Development notes
- The standalone CLI injects
DIFFHUB_REPOinto the Next.js server process. - Local development can also point at a repo through
DIFFHUB_REPOor the/tmp/diffhub-active-repopointer file used bydiffhub-point. - The app ships a standalone Next.js build via
bin/diffhub.mjs, notnext start.
Keyboard shortcuts
| Key | Action |
| ----------- | ------------------------------------ |
| j / k | Next / previous file |
| s | Toggle split / unified view |
| c | Collapse or expand the selected file |
| Shift+C | Collapse all files |
| Shift+E | Expand all files |
| / or t | Focus file filter |
| r | Refresh the diff |
| F2 | Toggle the Diff stats panel |
Options
| Flag | Default | Description |
| --------------------- | ------- | --------------------------- |
| -p, --port <port> | 2047 | Port to serve on |
| -r, --repo <path> | cwd | Path to the git repository |
| -b, --base <branch> | auto | Base branch to diff against |
| --no-open | — | Skip automatic browser open |
Requirements
- Node.js 20.11+ or Bun 1.0.23+
- A git repository (
git rev-parse --show-toplevelmust succeed)
License
MIT
