An open API service indexing awesome lists of open source software.

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

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 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](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)