A GitHub CLI extension that turns native issue dependencies into an execution sequence — a topological ordering of "waves" you can actually work or dispatch against.
GitHub shipped issue dependencies (GA, Aug 2025) and marks blocked issues with
a "Blocked" badge — but it has no view that answers "given all these
blocked-by links, what's the order of work?". gh-seq computes it.
A wave is the set of open issues whose blockers are all already satisfied (closed, or scheduled in an earlier wave):
- Wave 1 — everything startable right now (parallelizable).
- Wave 2 — unlocks once wave 1 is done. And so on.
- Cycles — any issues caught in a dependency loop are reported, not hidden.
It reads blockedBy straight from the API, so it's a pure read-only view —
nothing to keep in sync.
gh extension install NickCrew/gh-seq # or: gh extension install . (from a clone)Requires python3 and an authenticated gh (auth is inherited; no token
handling). For Project access, your gh token needs the read:project scope:
gh auth refresh -s read:project.
# Sequence one repository's open issues
gh seq --repo OWNER/NAME
# Sequence a whole Project board (cross-repo; org- or user-owned)
gh seq --project 8 --owner OWNER
# Scope to one value of a single-select field (e.g. an "Initiative")
gh seq --project 8 --owner OWNER --field Initiative --value "Platform Hardening"
# Machine-readable output
gh seq --project 8 --owner OWNER --jsonA flat topological sort hides parallelism. Waves make it explicit: everything
in a wave can be started together, which maps directly onto dispatching
parallel work. Dependencies are evaluated across repositories, so a board-level
sequence respects a cross-repo blocked-by link that no single-repo tool sees.
gh-seq only reads dependencies. To create and manage them, pair it with
gh-issue-dependency.
MIT