Interactive terminal app to browse and manage your GitHub repositories. Built with Ink (React for CLIs) and the GitHub GraphQL API.
Maintained by Stealth Factory. The npm package is gh-manager-cli; the installed command is gh-manager-cli.
🌐 Website: gh-manager-cli.dev · 📦 npm: gh-manager-cli · 📜 Changelog: CHANGELOG.md
Stop clicking through GitHub's slow web interface. Managing dozens of repos on github.com means endless page loads, multiple clicks per action, and no keyboard shortcuts. gh-manager-cli replaces all of that with fast, keyboard-first terminal commands:
- Whole account loaded in the background — browse, filter, and fuzzy-search everything instantly
- Single keypress for any action — archive, delete, rename, transfer, change visibility, sync forks
- Bulk operations — act on many repos at once
- Instant updates — no page reloads
Fast, keyboard-first GitHub repo management from your terminal
# Run with npx (no install)
npx gh-manager-cli@latestThe npm package contains the application directly. See Installation for apt, global npm, Homebrew, and standalone binary options.
On first run, you'll be prompted to authenticate with GitHub (OAuth recommended). See Token & Security.
Full docs live in the wiki:
| Getting Started | Features & Usage | Development |
|---|---|---|
| 📥 Installation | 🔍 Features | 🛠️ Development |
| 🔑 Token & Security | ⌨️ Usage & Controls | 🧪 Testing |
| ❓ Troubleshooting | 🗄️ Apollo Cache · 📝 Logging | 📜 Changelog |
- Authentication — GitHub OAuth (recommended) or Personal Access Token, stored with
0600perms - Background fetch-all — your entire account cached after the first page, so filter/sort/search are instant
- Fuzzy search (
/) — instant, typo-tolerant, no network calls (powered by fuse.js) - View filters (
V) — visibility, archive, and fork filters in one modal - Repository actions — info, open, rename, transfer, copy URL, delete, archive, change visibility, star, sync fork
- Bulk Select mode (
B) — star, archive, change visibility, delete, and transfer many repos at once - Organisation & Enterprise support — switch contexts (
W), Internal visibility, ENT badge - Fork ahead/behind tracking, colour themes (
Shift+T), display density (T), collapsible key hints (H), and rate-limit monitoring
See the Features and Usage & Controls pages for the full list and every keybinding.
# Homebrew (macOS/Linux)
brew tap stealth-factory/tap https://github.com/stealth-factory/homebrew-tap && brew install stealth-factory/tap/gh-manager-cli
# apt (Linux amd64). The key stays in a private directory until it is installed.
sudo apt install ca-certificates curl gnupg
keydir=$(mktemp -d)
trap 'rm -rf "$keydir"' EXIT
curl --fail --show-error --silent --location \
https://stealth-factory.github.io/apt-repo/stealth-factory.asc \
--output "$keydir/stealth-factory.asc"
gpg --show-keys --with-fingerprint "$keydir/stealth-factory.asc"
# Compare the complete set of primary fingerprints with the set announced by
# Stealth Factory. Do not install the key if they differ.
sudo install -d -m 0755 /etc/apt/keyrings
sudo install -m 0644 "$keydir/stealth-factory.asc" /etc/apt/keyrings/stealth-factory.asc
printf '%s\n' 'deb [arch=amd64 signed-by=/etc/apt/keyrings/stealth-factory.asc] https://stealth-factory.github.io/apt-repo stable main' \
| sudo tee /etc/apt/sources.list.d/stealth-factory.list
sudo apt update
sudo apt install gh-manager-cli
# npm global install
npm install -g gh-manager-cli@latest
gh-manager-cliPre-built binaries (no Node.js required) and build-from-source instructions are on the Installation page.
Got an idea or hit a bug? Open an issue — feature requests and bug reports are very welcome.
- 💡 Feature requests / bugs → GitHub Issues
- 📜 What's shipped recently → CHANGELOG.md
- 🛠️ Want to contribute code? → CONTRIBUTING.md and the Development guide
If you find gh-manager-cli useful, consider supporting its development:
💖 GitHub Sponsors — support directly through GitHub ☕ Buy Me a Coffee — one-time coffee donations
Your support helps maintain and improve this project. Thank you! 🙏
MIT



