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

git-catchup

v0.1.0

Published

Interactive AI-assisted terminal for reviewing incoming mainline changes and resolving merge conflicts safely.

Downloads

108

Readme

git-catchup

Interactive AI-assisted terminal for understanding incoming main changes, spotting risk early, and resolving merge conflicts with guidance instead of guesswork.

What It Solves

When a developer returns to a long-running branch, three things are usually unclear:

  1. What changed upstream while I was away?
  2. Which of those changes overlap with my work?
  3. What is the safest next step before I merge?

git-catchup answers those questions in one terminal workflow.

Core Features

  • Group incoming commits into readable feature clusters
  • Detect overlap between local changes and upstream files
  • Predict likely conflicts before merge
  • Preview risky diffs only
  • Apply safe commits first with --isolate
  • Launch an interactive AI-guided conflict resolver with --resolve
  • Run relevant tests when a supported runner exists

Installation

npm install
npm run build

Run locally:

node dist/index.js

AI Setup

git-catchup auto-loads .env with dotenv.

Example:

OPENAI_API_KEY=your_key_here
OPENAI_MODEL=gpt-4o-mini

Supported providers:

  • OPENAI_API_KEY
  • GEMINI_API_KEY
  • GROQ_API_KEY

AI is optional. Without it, the tool falls back to heuristic commit grouping, conflict prediction, and deterministic resolver guidance.

Commands

Default dashboard:

git-catchup

Preview risky diffs:

git-catchup --preview

Apply only safe incoming commits first:

git-catchup --isolate

Launch the interactive conflict resolver:

git-catchup --resolve

Run likely relevant tests:

git-catchup --test

Interactive Resolver

git-catchup --resolve handles two cases:

  • If a merge is already in progress, it opens the resolver on the real conflicted files
  • If no merge is active, it starts a guarded merge against the target branch and opens the resolver only if conflicts occur

Inside the resolver you can:

  • move between files and hunks
  • ask natural questions like why is this conflicting?
  • ask for suggest to get a merged proposal
  • use keep-mine, keep-theirs, or show-both
  • stage a resolved file
  • abort the guarded merge session

Dashboard Example

╭──────────────────────────────────╮
│ Git Catchup                      │
│ Post-Holiday Merge Assistant     │
╰──────────────────────────────────╯

✨ AI enabled • GPT-4o Mini

📍 feature/demo → origin/main • upstream origin/main
📅 14 days of changes | 200 commits on main
────────────────────────────────────

📦 GROUPED BY FEATURE:
├── 🔥 Hot: Notifications (23 commits)
│   └── Changes: src/notifications/notification-worker.ts ← YOUR FILE (conflict likely)
├── 💳 Payments (12 commits)
│   └── Changes: src/payments/payment-flow.ts (safe to pull)
└── 📦 Dependencies (45 commits)
    └── Changes: package-lock.json (safe to pull)

⚠️ YOUR LOCAL CHANGES:
src/notifications/notification-worker.ts (modified) → "Incoming overlap: feat: improve notification streaming"

⚠️ CONFLICT RISK:
• src/notifications/notification-worker.ts (high risk)
  Multiple incoming commits touch this file, so both your local edits and upstream changes may need manual reconciliation.

🎯 RECOMMENDED ACTIONS:
git-catchup --preview → See full diff before merging
git-catchup --isolate → Pull safe commits first
git-catchup --resolve → Launch AI-guided interactive conflict resolver
git-catchup --test → Run relevant tests automatically

Development

npm run lint
npm run build
npm test

Stress Testing

Use the included repeatable stress-test harness to create a dummy project with 20 files, a feature branch 100 commits behind main, 5 active local files, and 3 true merge conflicts:

bash scripts/setup-stress-test.sh

The exact runbook and expected observations are documented in STRESS_TEST.md.