Terminal-based Git repository discovery platform. Because clicking through GitHub's web UI is so 2015.
RepoScout lets you search, discover, and manage repositories across GitHub, GitLab, and Bitbucket without leaving your terminal. Think of it as GitHub CLI on steroids - with semantic search, trending discovery, health scoring, dependency analysis, and a TUI that doesn't look like it escaped from the 80s.
- Multi-platform search - Search GitHub, GitLab, and Bitbucket simultaneously
- Code search - Search code snippets with syntax highlighting
- Semantic search - Natural language queries using AI embeddings (finally, search that understands what you actually want)
- Trending repos - Discover daily/weekly/monthly trending repositories
- Discovery mode - Browse New & Notable, Hidden Gems, Topics, and Awesome Lists
- Beautiful TUI - Modern terminal interface with ratatui
- 10+ themes - Customizable color themes with full RGB support
- Preview modes - Stats, README, Activity, Dependencies, Package info
- Fuzzy filtering - Filter results in real-time
- Keybindings help - Press
?for comprehensive help
- Smart caching - SQLite + FTS5 for offline access and fast searches
- Health scoring - Repository quality metrics (0-100 score)
- Dependency analysis - View dependencies for 13 package managers
- Package detection - Auto-detect package managers with install commands
- Bookmarks - Save repos with tags and notes
- Portfolio/Watchlist - Organize repos into custom collections
- Export - JSON, CSV, and Markdown export
- GitHub notifications - View and manage notifications
- Token management - Secure storage for API tokens
- Search history - Track and replay past searches
git clone https://github.com/shreeshjha/RepoScout.git
cd RepoScout
cargo build --releaseBinary will be at target/release/reposcout
# Launch interactive TUI
reposcout tui
# Search for repositories
reposcout search "rust tui" --language rust --min-stars 100
# Search for code
reposcout code "async fn main" --language rust
# Semantic search (natural language)
reposcout semantic "machine learning image classification"
# Find trending repositories
reposcout trending --period weekly --language python
# Show repository details
reposcout show "ratatui/ratatui"
# Manage bookmarks
reposcout bookmark add "tokio-rs/tokio" --tags "async,runtime"
reposcout bookmark listLaunch with reposcout tui, then:
/- Enter search modeM- Cycle search modes (Repository/Code/Trending/Semantic/Discovery)j/k- Navigate up/downTAB- Cycle preview tabsb- Bookmark repositoryR- Fetch READMEd- Fetch dependenciesT- Open theme selector?- Show all keybindingsq- Quit
- Repository - Search repos by name, description, topics
- Code - Search code content across repositories
- Trending - Browse trending repos by time period
- Semantic - Natural language search using AI
- Discovery - Explore curated categories
- Portfolio - View your watchlists
- Notifications - GitHub notifications
# Repository search with filters
reposcout search <query> [OPTIONS]
-n, --limit <N> # Results to show (default: 10)
-l, --language <LANG> # Filter by language
--min-stars <N> # Minimum stars
--max-stars <N> # Maximum stars
--pushed <DATE> # Filter by push date
-s, --sort <BY> # Sort: stars, forks, updated
-o, --export <FILE> # Export to .json/.csv/.md
# Code search
reposcout code <query> [OPTIONS]
-l, --language <LANG> # Filter by language
-r, --repo <OWNER/REPO> # Search in specific repo
-p, --path <PATH> # Filter by path
-e, --extension <EXT> # Filter by extension
# Semantic search
reposcout semantic <query> [OPTIONS]
--hybrid # Combine semantic + keyword
--min-similarity <0-1> # Similarity threshold
# Trending repositories
reposcout trending [OPTIONS]
-p, --period <P> # daily, weekly, monthly
-v, --velocity # Sort by star velocity
# Bookmark management
reposcout bookmark list|add|remove|export|import|clear
# Cache management
reposcout cache stats|clear|cleanup
# Search history
reposcout history list|search|clear
# Notifications (GitHub)
reposcout notifications list|mark-read|mark-all-readSet tokens via environment variables or CLI flags:
export GITHUB_TOKEN="ghp_your_token"
export GITLAB_TOKEN="your_gitlab_token"
export BITBUCKET_USERNAME="username"
export BITBUCKET_APP_PASSWORD="app_password"Or configure in TUI with Ctrl+S.
Config at ~/.config/reposcout/config.toml:
[platforms.github]
token = "ghp_your_token"
[platforms.gitlab]
token = "your_gitlab_token"
url = "https://gitlab.com"
[platforms.bitbucket]
username = "your_username"
app_password = "your_app_password"
[cache]
ttl_hours = 24
[ui]
theme = "Default Dark"reposcout/
├── crates/
│ ├── reposcout-cli/ # Command-line interface
│ ├── reposcout-core/ # Core logic, search, health scoring
│ ├── reposcout-tui/ # Terminal UI (ratatui)
│ ├── reposcout-api/ # API clients (GitHub, GitLab, Bitbucket)
│ ├── reposcout-cache/ # SQLite caching layer
│ ├── reposcout-semantic/ # Semantic search with embeddings
│ └── reposcout-deps/ # Dependency parsing
RepoScout can detect and analyze dependencies for:
- Cargo (Rust) - crates.io
- npm (JavaScript) - npmjs.com
- PyPI (Python) - pypi.org
- Go - pkg.go.dev
- Maven/Gradle (Java) - maven.org
- RubyGems (Ruby) - rubygems.org
- Composer (PHP) - packagist.org
- NuGet (.NET) - nuget.org
- Pub (Dart/Flutter) - pub.dev
- CocoaPods (iOS) - cocoapods.org
- Swift PM - swift.org
- Hex (Elixir) - hex.pm
# Run tests
cargo test
# Format code
cargo fmt
# Lint
cargo clippy
# Run locally
cargo run -- tui
cargo run -- search "your query"Good question. Here's why RepoScout exists:
- GitHub CLI is great but limited - Only works with GitHub
- Web interfaces are slow - Context switching between terminal and browser sucks
- Offline mode matters - Airplane coding, slow connections, API rate limits
- Discovery is hard - Finding quality repos matching your needs shouldn't require 20 browser tabs
- Semantic search changes everything - Search by what you want to do, not just keywords
- I wanted to build something cool in Rust - Most honest reason
PRs welcome! Just make sure:
- Code is formatted (
cargo fmt) - Lints pass (
cargo clippy) - Tests pass (
cargo test) - Commit messages are descriptive
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Built with:
- ratatui - TUI framework
- tokio - Async runtime
- reqwest - HTTP client
- rusqlite - SQLite bindings
- fastembed - Embeddings
- clap - CLI parsing
- syntect - Syntax highlighting
Made with ☕ and late-night coding sessions