Skip to content

finografic/gli

Repository files navigation

💻 @finografic/gli - git CLI, Live PR dashboard

Git utilities for monitoring and managing PRs from the terminal. Built on the GitHub CLI (gh).

Installation

pnpm add -g @finografic/gli

Or clone and link locally:

pnpm install && pnpm link --global

Commands

gli <command>

  live    Live-updating PR status dashboard - ⭐ FEATURE
  status  Snapshot of PR status (same output as live, exits)
  rebase  Interactively rebase branches that are behind
  select  Interactively checkout a branch for one of your PRs
  config  Manage multi-repo configuration

gli live

Live-updating terminal dashboard for PR status monitoring (like htop, but for your PRs).

gli live    # Start live dashboard (refreshes every 60s)

Perfect for keeping a terminal panel open to monitor your pull requests in real-time. Shows:

  • PR list with status indicators, including build and approval columns plus unresolved comments (💬 N) when present
  • Clickable PR numbers and repo names
  • Config path footer

The refresh interval defaults to 60s and is configurable via gli config edit (liveInterval).

gli status

Same output as gli live, but prints once and exits — no live repaint loop.

gli status    # Print PR status snapshot and exit

gli rebase

Interactively rebase branches that are behind the default branch. Combines the best of both worlds: shows full PR status, steps through each branch, prompts for force-push confirmation.

gli rebase                  # Select a branch to rebase
gli rebase --all            # Rebase all stale branches (step-through)
gli rebase --all -y         # Rebase all, auto-accept prompts
gli rebase -i               # Interactive rebase (manual pick/squash/edit)
gli rebase -s               # Auto-squash multiple commits into one

Features:

  • Shows ALL PRs (not just stale) for full context
  • Force-push confirmation after each successful rebase
  • Step-through flow with [1/3] progress indicators
  • Abort handling: continue to next branch or exit
  • Interactive mode (-i) for manual commit editing
  • Auto-squash (-s) for cleaning up commit history
  • Returns to the branch you started on when finished
  • Yes-mode (-y) — auto-accepts rebase and force-push prompts

gli select

Interactively checkout a branch from one of your open PRs.

gli select

gli config

Manage the multi-repo configuration stored at ~/.config/finografic/gli.config.json.

On first run, the config file is written with all default values so every option is visible and editable.

gli config watch     # Add a repo to the config (prompts for path and GitHub URL)
gli config list      # List configured repos
gli config remove    # Remove a repo interactively
gli config edit      # Open config in $EDITOR

Config options (all shown in the generated config file):

Key Default Description
liveInterval 60 Refresh interval in seconds for gli live
jira.baseUrl (unset) Global Jira browse URL for branch ticket links
jira.issuePrefix (unset) Optional Jira key prefix filter (e.g. SBS)
prs.title.display false Show PR title column
prs.title.maxChars 40 Max title characters to display
prs.title.sliceStart 0 Skip N chars from title start (e.g. ticket prefix)

Prerequisites

  • GitHub CLI installed and authenticated (gh auth login)

Development

pnpm install        # Install dependencies (sets up git hooks)
pnpm dev            # Dev mode
pnpm build          # Build
pnpm test:run       # Tests
pnpm lint           # Lint

See docs/DEVELOPER_WORKFLOW.md for the complete workflow.

License

MIT © Justin Rankin / @finografic

About

Git CLI, Live PR Dashboard

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors