npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ossdive

v0.3.1

Published

<img src="branding/ossdive-logo.png" width="72" alt="ossdive logo" />

Readme

ossdive

Homebrew npm Release

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.ts

CLI 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 mcp

TUI 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 install

Collector

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 collect

Environment 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 run

MCP Server

Query collected projects in natural language from Claude Desktop or Claude Code.

bun run mcp
# or via CLI:
ossdive mcp

Claude 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.