Git utilities for monitoring and managing PRs from the terminal. Built on the GitHub CLI (
gh).
pnpm add -g @finografic/gliOr clone and link locally:
pnpm install && pnpm link --globalgli <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
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).
Same output as gli live, but prints once and exits — no live repaint loop.
gli status # Print PR status snapshot and exitInteractively 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 oneFeatures:
- 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
Interactively checkout a branch from one of your open PRs.
gli selectManage 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 $EDITORConfig 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) |
- GitHub CLI installed and authenticated (
gh auth login)
pnpm install # Install dependencies (sets up git hooks)
pnpm dev # Dev mode
pnpm build # Build
pnpm test:run # Tests
pnpm lint # LintSee docs/DEVELOPER_WORKFLOW.md for the complete workflow.