v0.1.0 — zero config, single binary

Your git branches.
All accounted for.

cuscus audits every local branch — age, ahead/behind, merged status — and prints it in one clean table. No config. No clutter.

terminal
$ go install github.com/iamkorun/cuscus/cmd/cuscus@latest
Pre-built binaries → View on GitHub →
~/projects/my-app
$ cuscus BRANCH AGE AHEAD BEHIND STATUS ------------------------ -------- ----- ------ ------- * main just now 0 0 CURRENT feat/auth-refactor 3d ago 2 0 FRESH feat/dark-mode 6d ago 5 1 FRESH release/v2.1 18d ago 0 4 STALE feat/old-experiment 1mo ago 1 19 STALE chore/bump-deps 2mo ago 0 0 MERGED wip/that-thing 3mo ago 3 0 STALE
■ CURRENT — checked out ■ FRESH — active, within threshold ■ STALE — no commits beyond threshold ■ MERGED — fully merged into base

Everything you need. Nothing you don't.

Built for developers who live in the terminal.

One-glance table

Branch name, age, ahead/behind counts, and health status — all in a single aligned table. No grep, no piping, no mental math.

Safe cleanup

--clean prints git branch -d/-D commands — never runs them. You review, then pipe. Nothing is deleted without your explicit action.

JSON + pipe-friendly

Machine-readable output with --json. Auto-disables ANSI when piped or NO_COLOR is set. Plays well with jq and CI scripts.

Zero config, instant start

Auto-detects main, master, and trunk. Run it in any git repo with no setup. Single static binary — no runtime, no dependencies.

Install

Requires Go 1.21+. Or grab a pre-built binary.

$ go install github.com/iamkorun/cuscus/cmd/cuscus@latest
Download a pre-built binary from the Releases page.

Linux / macOS / Windows — x86_64 and ARM64 supported.
No runtime required. Extract and put in your PATH.
# Coming soon
$ brew install iamkorun/tap/cuscus

Usage examples

# Increase the stale threshold to 30 days

$ cuscus --days 30 BRANCH AGE AHEAD BEHIND STATUS ---------------- ------- ----- ------ ------ * main just now 0 0 CURRENT feat/search 22d ago 3 0 FRESH chore/ci 2mo ago 0 0 MERGED

# Print cleanup commands, review, then pipe

$ cuscus --clean git branch -d chore/bump-deps git branch -D release/v2.1 # STALE — force delete git branch -D wip/that-thing # STALE — force delete $ cuscus --clean | sh # Only when you're sure

# Filter stale branches with jq

$ cuscus --json | jq '.[] | select(.status == "STALE") | .branch.name' "release/v2.1" "wip/that-thing"
🌿

Why "cuscus"?

The cuscus is a marsupial native to the rainforests of Papua New Guinea and northern Australia. It spends its entire life in the tree canopy, gripping branches with its prehensile tail and curved claws — never losing track of where it is.

That's the tool: something that clings to your git tree, accounts for every branch, and notices when one has been sitting dead on the vine for too long.