ossdive
v0.3.1
Published
<img src="branding/ossdive-logo.png" width="72" alt="ossdive logo" />
Readme
ossdive
Automatically collects and curates open-source projects from Hacker News. Projects with HN score ≥ 50 and GitHub stars ≥ 100 are synced to SQLite every 6 hours, queryable via CLI and MCP server.
Install
# Homebrew (recommended)
brew install jongjinchoi/ossdive/ossdive
# npm
npm install -g ossdive
# Run directly from source
bun run cli/index.tsCLI Usage
# Interactive TUI (default)
ossdive
# List with filters
ossdive list --lang rust --min-stars 500 --since 30d
ossdive list --show-hn --sort stars
ossdive list --min-score 200 --no-tui # plain text output
# Search
ossdive search auth
ossdive search "machine learning" -n 50
# Get details
ossdive get microsoft/VibeVoice
# Trending on HN (last 7 days by default)
ossdive trending
ossdive trending --since 30d --no-tui
# Compare repos side by side
ossdive compare vercel/ai langchain-ai/langchainjs
# Find similar projects
ossdive similar vercel/ai
# Hot projects — rapidly increasing HN engagement vs last 3 days
ossdive hot
ossdive hot --since 7d --no-tui
# Bookmarks — save and manage favourite projects
ossdive bookmark add vercel/ai
ossdive bookmark list # interactive TUI (d to remove)
ossdive bookmark list --no-tui
ossdive bookmark remove vercel/ai
# Stats
ossdive stats
# Sync DB manually
ossdive update
# Start MCP server
ossdive mcpTUI Key Bindings
| Key | Action |
|---|---|
| ↑ / ↓ (or k/j) | Move cursor |
| Tab | Toggle GitHub / HN link mode |
| Enter | Open selected link in browser |
| d | Remove bookmark (bookmark list only) |
| q / Esc | Quit |
Setup (from source)
bun installCollector
Fetches data from the HN Algolia API and GitHub API, storing results in ossdive.db.
# Resume from last collected point
bun run collect
# Backfill from a specific date
COLLECT_SINCE=2025-01-01 bun run collectEnvironment variables (.env.local):
GITHUB_TOKEN=ghp_... # raises rate limit from 60 to 5,000/h
COLLECT_SINCE=2025-01-01 # backfill start date for first runMCP Server
Query collected projects in natural language from Claude Desktop or Claude Code.
bun run mcp
# or via CLI:
ossdive mcpClaude Desktop Setup
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ossdive": {
"command": "ossdive",
"args": ["mcp"]
}
}
}When running from source:
{
"mcpServers": {
"ossdive": {
"command": "bun",
"args": ["/Users/jongjinchoi/Documents/projects/ossdive/mcp/index.ts"],
"env": {
"OSSDIVE_DB": "/Users/jongjinchoi/Documents/projects/ossdive/ossdive.db",
"GITHUB_TOKEN": "ghp_..."
}
}
}
}
GITHUB_TOKEN을 설정하면 GitHub API rate limit이 60/h → 5,000/h으로 올라갑니다.get_repo_readme/get_repo_files/get_repo_file툴에서 소스코드를 자주 조회할 경우 권장합니다.
Available Tools
| Tool | Description |
|---|---|
| list_projects | List projects with filters and sorting (lang, min_stars, min_score, since, is_show_hn, sort_by: hn_score|stars|last_commit_at|collected_at|hn_created_at) |
| search_projects | FTS5 full-text search (relevance ranked) across repo name, HN title, and description |
| get_project | Get details for a specific project by "owner/repo" |
| get_stats | Collection stats: total count, language breakdown, top starred |
| get_trending | Projects recently trending on HN, ranked by score + comments (since, limit) |
| get_hot | Projects with rapidly increasing HN engagement vs N days ago (since default: 3d) |
| compare_projects | Side-by-side comparison of 2–4 repos (repos: ["owner/repo", ...]) |
| find_similar | Find projects similar to a given repo by language, size, and keyword overlap |
| add_bookmark | Save a project to your bookmark list |
| remove_bookmark | Remove a project from bookmarks |
| list_bookmarks | List all bookmarked projects with current stats |
| get_repo_readme | Fetch the README of any GitHub repo ("owner/repo") |
| get_repo_files | List files/directories in a repo path (shallow, one level) |
| get_repo_file | Read source of a specific file in a repo (path within repo) |
Example queries:
"What Rust projects appeared on HN this week?"
"Show me Show HN projects with over 500 stars"
"Find projects related to auth"
"Give me ossdive collection stats"
"List Rust projects from HN this week, sorted by post date"
"Show me the README for this Go project and tell me if there's a TypeScript equivalent"
"Read the main source file of vercel/ai and explain the architecture"DB Sync
On startup, the CLI automatically downloads the latest ossdive.db from GitHub Releases (db-latest) to ~/.ossdive/ossdive.db. Subsequent runs within 1 hour use the cached version.
