gh-repo-dashboard

module
v1.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 15, 2026 License: MIT

README

gh-repo-dashboard

demo

See the status of every git and jj repository under a directory in one dashboard, with GitHub pull request and CI state beside the local status. Fetch, prune, and delete merged branches across all of them at once.

Install

# GitHub CLI extension
gh extension install kyleking/gh-repo-dashboard
# Homebrew
brew install --cask kyleking/tap/gh-repo-dashboard
# from source
go build -o gh-repo-dashboard ./cmd/gh-repo-dashboard

Quick start

Pass the directories that hold your repositories:

gh repo-dashboard -depth 2 ~/Developer

Move with j and k, press v to expand the repo under the cursor without leaving the list, enter to open it, and ? for the keymap. Set scan_paths in the config file once and gh repo-dashboard launches from anywhere with no arguments.

Run it inside a repository and it opens that repo directly, listing each branch with its pull request, CI checks, and which sibling checkout or worktree currently holds it. ! offers the verbs for whatever is selected: switch branch, push with --follow-tags, open a pull request, squash-merge one, apply a stash, or open a notes file in $EDITOR. Anything that reaches the remote or destroys work asks for confirmation first.

What it does not do

  • Commit, stage, rebase, or resolve conflicts. The writes it does make are fetch, remote prune, deleting a branch, applying or dropping a stash, switching branch, pushing, and creating or squash-merging a pull request
  • Replace a single-repo client. Use lazygit or gitui for staging, hunk-level work, and history surgery
  • Replace gh. Pull request data comes from the gh CLI, and every non-GitHub column still works when gh is missing or logged out
  • Edit your notes files itself. It reads them, and hands one to $EDITOR on request so the writing stays yours
  • Run as a server or daemon. --cli and --script are one-shot headless runs

Full docs: ./docs

License

MIT

Directories

Path Synopsis
cmd
gh-repo-dashboard command
Package main implements gh-repo-dashboard: K9s-inspired Bubble Tea TUI for managing multiple git and jj repositories
Package main implements gh-repo-dashboard: K9s-inspired Bubble Tea TUI for managing multiple git and jj repositories
internal
app
Package app implements the Bubble Tea TUI model, update, and view for gh-repo-dashboard.
Package app implements the Bubble Tea TUI model, update, and view for gh-repo-dashboard.
batch
Package batch runs repo operations (fetch, prune, cleanup) over multiple repos concurrently.
Package batch runs repo operations (fetch, prune, cleanup) over multiple repos concurrently.
cache
Package cache provides a generic in-memory TTL cache used to avoid redundant gh/git/jj calls across TUI refreshes.
Package cache provides a generic in-memory TTL cache used to avoid redundant gh/git/jj calls across TUI refreshes.
cli
Package cli implements the non-interactive --cli mode that prints repo summaries as JSON instead of launching the TUI.
Package cli implements the non-interactive --cli mode that prints repo summaries as JSON instead of launching the TUI.
config
Package config loads the optional TOML config file, applied below flags and above built-in defaults.
Package config loads the optional TOML config file, applied below flags and above built-in defaults.
copier
Package copier reads a repo's .copier-answers.yml and compares its installed template commit against the template's latest upstream semver tag.
Package copier reads a repo's .copier-answers.yml and compares its installed template commit against the template's latest upstream semver tag.
discovery
Package discovery walks configured base paths to find git and jj repositories.
Package discovery walks configured base paths to find git and jj repositories.
filters
Package filters implements repo list filtering, fuzzy search, and sorting.
Package filters implements repo list filtering, fuzzy search, and sorting.
github
Package github wraps the gh CLI to fetch pull request and workflow run data.
Package github wraps the gh CLI to fetch pull request and workflow run data.
models
Package models defines the domain types shared across the repo dashboard: repos, branches, pull requests, and the filter/sort state used to display them.
Package models defines the domain types shared across the repo dashboard: repos, branches, pull requests, and the filter/sort state used to display them.
ui/markdown
Package markdown renders GitHub markdown bodies as terminal lines.
Package markdown renders GitHub markdown bodies as terminal lines.
ui/styles
Package styles defines the Catppuccin-derived color palette and lipgloss styles shared across the TUI's views.
Package styles defines the Catppuccin-derived color palette and lipgloss styles shared across the TUI's views.
ui/table
Package table fits a set of columns into an available terminal width and pads cells to it.
Package table fits a set of columns into an available terminal width and pads cells to it.
vcs
Package vcs abstracts git and jj repository operations behind a common Operations interface.
Package vcs abstracts git and jj repository operations behind a common Operations interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL