committree
v0.2.3
Published
Beautiful, readable git commit-graph trees in your terminal — and exportable as SVG. A focused alternative to 'git log --graph'.
Downloads
573
Maintainers
Readme
committree
Beautiful, readable git commit-graph trees in your terminal — and exportable as SVG.
A focused, zero-dependency alternative to git log --graph. Cleaner glyphs,
stable per-lane colors, and a layout that stays narrow on busy histories.
● a1b2c3d Release v2.0.0
│
◆ b2c3d4e Merge branch 'feat/tree-graph'
│╲
●│ c3d4e5f Fix lane overflow on wide repos
││
│● f6e5d4c Add Unicode node glyphs
││
│● 9a8b7c6 Color palette per lane
╱
● d4e5f6a Tidy lane state machine
│
● e5d4c3b Initial graph layout engine
│
◉ 1a2b3c4 Initial commitEvery commit is connected: continuous vertical lanes, a ╲ where a branch
forks off a merge, and a ╱ where a feature branch joins back. Run it yourself
with committree --demo.
Install
npm install -g committreeOr run it once without installing:
npx committreeUsage
committree # graph for current branch
committree -n 20 # last 20 commits
committree --all # all branches
committree --format short # hash + author + date + subject
committree --no-color # pipe-friendly, no ANSI
committree --svg > g.svg # export the graph as an SVG image
committree --demo # sample graph, no repo neededGlyphs
| Glyph | Meaning |
|-------|---------|
| ◉ | root commit (no parents) |
| ● | normal commit |
| ◆ | merge commit (2+ parents) |
| │ | branch line (continuous lane) |
| ╲ | branch forking off to the right |
| ╱ | branch joining back to the left |
Each lane gets a stable color so you can follow a branch visually.
Export to SVG
Use --svg to render the graph as a standalone SVG document — great for
embedding in READMEs, docs, slides, or blog posts:
committree --svg > graph.svg
committree --svg --format short > graph.svg # include author + dateThe SVG uses a dark theme (#0d1117 background), per-lane colors matching the
terminal output, and is fully self-contained (no external fonts or assets).
Why?
git log --graph works, but its output is noisy and the layout sprawls on
long-lived feature branches. committree keeps the graph compact and the
connectors unambiguous. It's the view you want when reading history, not the
view git gives you by default.
License
MIT
