open source · MIT · built for GitHub Issues

hew

Cut the issue backlog down to size.

hew is an opinionated, agentic-first CLI for tracking work in GitHub Issues. It tells you what's actually ready to work, primes an agent session with the whole tracker state in ~1200 tokens, and keeps every issue sharp with enforced conventions.

install
$ curl -fsSL https://lumberbarons.github.io/hew/install.sh | bash

installs to ~/.local/bin — never sudo · linux & macOS, arm64 & x86_64
# or, with Go:
$ go install github.com/lumberbarons/hew/cmd/hew@latest

the workflow

Ready work, one line at a time

hew sorts what's blocked, claimed, and epic-shaped out of the way. An agent loop can take the first line and just go.

hew
$ hew ready
#142 P2 bug   crash when the branch is unborn
#139 P1 bug   checksum mismatch after interrupted download
#137 P3 task  tighten test gates: per-package coverage floor
… 8 more — hew ready

$ hew start 142
started #142 — claim is yours. branch feat/fix-unborn-branch, push, then hew pr

features

Built for agents. Opinionated for humans.

Every behavior — read and write — exists so an agent session can run the loop without a human in it.

Ready work, found for you

hew ready lists only what's truly ready — unblocked, unclaimed, not an epic. Claim one and it's yours; try one that's already taken and hew points you at the next.

Prime the session

hew prime hands your agent the conventions, the ready queue, and the commands — the whole tracker state in ~1200 tokens. No URL spelunking, no raw GraphQL.

Conventions that stick

Exactly one priority, one type, template bodies, native dependencies. The write path enforces them; the read path normalizes issues filed elsewhere instead of hiding them.

Native edges, not prose

Blockers and sub-issues are real graph edges; epics are sub-issue trees. Cycle checks run client-side before every mutation — GitHub won't catch them all.

Machine-readable by default

One compact line per issue, NDJSON when you ask, no ANSI off a TTY, stable sort. Output that survives truncation and a --json that stays flat.

Batch by plan

hew apply turns a JSONL plan into issues with local IDs — dangling references and cycles rejected before anything is written.

the loop

Three moves, all of them hew

The whole day fits in a pocket — no triage meetings, no spreadsheets.

1 hew ready

See what's actually ready — sorted, filtered, one line per issue.

2 hew start <n>

Claim it. If someone beat you to it, hew hands you the next ready item.

3 branch → push → hew pr

The PR composes itself from the issue — exactly one Fixes #n. Closing it closes the issue.

hew close is for wontfix and duplicates only — work always closes through the PR.

install

Grab an axe

One line, no sudo. Auth comes from the gh CLI you already have.

install
$ curl -fsSL https://lumberbarons.github.io/hew/install.sh | bash
git — the target repo is read from the checkout
gh CLI — run gh auth login once
curl + tar — for the script
checksum-verified releases; the script nudges you if ~/.local/bin is off your PATH