https://github.com/takoyaro/gitvoyager
Terminal-native GitHub discovery TUI — surface underdogs, track rising stars, and build taste profiles without leaving the terminal
https://github.com/takoyaro/gitvoyager
bubbletea claude-code cli developer-tools github github-search go terminal tui
Last synced: 8 days ago
JSON representation
Terminal-native GitHub discovery TUI — surface underdogs, track rising stars, and build taste profiles without leaving the terminal
- Host: GitHub
- URL: https://github.com/takoyaro/gitvoyager
- Owner: takoyaro
- License: mit
- Created: 2026-04-07T04:40:20.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-08T01:58:41.000Z (3 months ago)
- Last Synced: 2026-04-08T02:15:46.285Z (3 months ago)
- Topics: bubbletea, claude-code, cli, developer-tools, github, github-search, go, terminal, tui
- Language: Go
- Homepage:
- Size: 143 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gitvoyager
**Discover GitHub's hidden gems without leaving your terminal.**
A keyboard-driven TUI that finds underdog repos, tracks rising stars,
and learns what you like — powered by `gh` CLI and local SQLite.
[Install](#install) · [Usage](#usage) · [Keys](#keys) · [Config](#config)
---
## Why
GitHub search is noisy. Trending lists reward fame over signal.
GitVoyager flips the model: multi-signal scoring surfaces repos that are
*active, young, and under-appreciated* — the projects you'd find if you had
infinite time to browse.
- **9 discovery presets + Hot Space** — Underdogs, Zero-Day Gems, Fresh Signal, Hidden Gems, Craft, Rising Stars, Agent-Ready, Contributor Magnets, Trending — plus a dynamic Hot Space preset fueled by live topic acceleration data
- **Signal Board** — see which topics are accelerating right now, before you even search
- **Quality grades** — A/B/C/D letter grades from intrinsic signals (README quality, CI, license, project structure) scored without cloning
- **Watchlist with star velocity** — track repos over time, see who's growing
- **AI-powered summaries** — optional Claude integration for README digests and trend analysis
- **Taste profile & surprise picks** — learns your preferred languages and topics, serves personalized discoveries
- **Zero browser required** — search, read READMEs, clone, compare — all in the terminal
## Install
Requires **Go 1.25+** and an authenticated **[`gh` CLI](https://cli.github.com)**.
Optional: **[`claude` CLI](https://docs.anthropic.com/en/docs/claude-code)** for AI features (auto-detected on startup).
```bash
git clone https://github.com/takoyaro/gitvoyager.git
cd gitvoyager
make install
```
Binary lands in `$GOPATH/bin` — make sure that's on your `PATH`.
## Usage
```bash
gitvoyager # interactive search prompt
gitvoyager -q "mcp server" # jump straight into results
gitvoyager rust web framework # positional args work too
gitvoyager data stats # aggregate discovery stats (JSON)
gitvoyager data repos --table # browse stored repos in a table
```
On first launch you'll land on the discovery home screen. The Signal Board
shows accelerating topics, and your Surprise Pick is waiting. Type a query or
press 1–9 to fire a preset (0 for Hot Space).
Press S for a new surprise pick based on your taste profile.
## Keys
### Browsing
| Key | Action | | Key | Action |
|-----|--------|-|-----|--------|
| j / k | Navigate | | o | Open in browser |
| Enter / l | Select | | c | Clone repo |
| h / Esc | Back | | w | Watch / unwatch |
| Tab | Switch pane | | W | Open watchlist |
| Space | Peek overlay | | s | Cycle sort mode |
| / | Search | | f | Filter results |
| a | Advanced search | | x | Exclude repo |
| y / Y | Yank URL / clone cmd | | C | Compare repos |
| X | Exclusion manager | | ← / → | Cycle language filter |
| ? | Help | | q | Quit |
### AI (requires [`claude` CLI](https://docs.anthropic.com/en/docs/claude-code))
| Key | Action |
|-----|--------|
| A | Summarize README |
| n | Natural language search |
| t | "Why is this trending?" |
## Scoring
Every result gets scored client-side across multiple dimensions:
| Score | What it rewards |
|-------|-----------------|
| **Discovery** | Stars + forks + issues + recency, normalized by repo age — young active repos rank higher |
| **Underdog** | Fork-to-star and issue-to-star ratio — finds repos with disproportionate community engagement |
| **Freshness** | Quality signals (description, license, language) + push recency + youth — gates the Fresh Signal preset |
| **Intrinsic** | README quality, CI presence, license, CONTRIBUTING guide, project structure — 0–10 score from GraphQL probes, no clone needed |
| **Topic Heat** | Acceleration ratio of a repo's topics over time — boosts repos in fast-growing problem spaces |
## Config
Optional. Defaults are sane. Lives at `$XDG_CONFIG_HOME/gitvoyager/config.toml`.
```toml
[search]
default_limit = 30
default_sort = "stars"
[clone]
default_directory = "" # empty = cwd
protocol = "ssh" # or "https"
[claude]
enabled = true
model = "haiku" # haiku | sonnet | opus
[exclusions]
keywords = ["awesome-list"] # hide repos matching name/description
topics = ["hacktoberfest"] # -topic: qualifiers in GitHub search
owners = [] # -user: qualifiers in GitHub search
[local]
enabled = false
scan_paths = ["~/Projects"] # detect deps → map to GitHub repos
```
See [`internal/config/config.go`](internal/config/config.go) for all options.
## Data
All data follows XDG conventions:
| Path | Contents |
|------|----------|
| `$XDG_CONFIG_HOME/gitvoyager/` | `config.toml` |
| `$XDG_DATA_HOME/gitvoyager/` | `gitvoyager.db` (SQLite, WAL mode) |
No telemetry. Network calls go through `gh` CLI and, when AI features are enabled, the `claude` CLI.
## Building
```bash
make build # → bin/gitvoyager
make test # go test ./... -v -race
make clean # rm -rf bin/
```
Or with [Task](https://taskfile.dev): `task build`, `task test`, etc.
## License
[MIT](LICENSE)