Skip to content

takoyaro/gitvoyager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 · Usage · Keys · 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. Optional: claude CLI for AI features (auto-detected on startup).

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

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 19 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)

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.

[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 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

make build      # → bin/gitvoyager
make test       # go test ./... -v -race
make clean      # rm -rf bin/

Or with Task: task build, task test, etc.

License

MIT

About

Terminal-native GitHub discovery TUI — surface underdogs, track rising stars, and build taste profiles without leaving the terminal

Topics

Resources

License

Stars

Watchers

Forks

Contributors