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

devin-bugs

v0.6.0

Published

CLI to extract unresolved bugs from Devin AI code reviews

Readme

devin-review-cli

CLI to extract unresolved bugs from Devin AI code reviews. Pulls flagged bugs from any PR that Devin has reviewed and outputs them in your terminal or as JSON.

$ devin-bugs owner/repo#46

  1 bug in owner/repo#46

  BUG  lib/apply/assist.ts:124-136   WARNING
  Reverting packet to 'ready' after credits charged creates an unrecoverable retry loop
  In prepareApplyAssist, when createApplication fails with a non-P2002 error,
  the packet is reverted to 'ready' but credits have already been charged...

Install

Requires Bun (v1.0+).

git clone https://github.com/xCatalitY/devin-review-cli.git
cd devin-review-cli
bun install

Usage

# GitHub PR URL
devin-bugs https://github.com/owner/repo/pull/123

# Shorthand
devin-bugs owner/repo#123

# Devin review URL
devin-bugs https://app.devin.ai/review/owner/repo/pull/123

Options

--json          Output as JSON (for piping)
--all           Include analysis/suggestions, not just bugs
--watch         Poll until Devin review completes, show progress
--raw           Dump raw API response (debug)
--no-cache      Force re-authentication
--login         Just authenticate, don't fetch anything
--logout        Clear stored credentials
--help, -h      Show help

Examples

# Get bugs as JSON for scripting
devin-bugs owner/repo#46 --json | jq '.bugs[].title'

# Include all flags (bugs + analysis suggestions)
devin-bugs owner/repo#46 --all

# Pipe to another tool
devin-bugs owner/repo#46 --json | jq '.bugs[] | select(.severity == "severe")'

# Skip browser, use token directly
DEVIN_TOKEN=eyJ... devin-bugs owner/repo#46

Authentication

On first run, the CLI opens your browser to a local page with instructions:

  1. Log in to app.devin.ai with GitHub
  2. Paste a one-liner in the browser console (auto-copied from the instruction page)
  3. The token is sent back to the CLI and cached

Subsequent runs use the cached token automatically. Tokens are stored at ~/.config/devin-bugs/token.json.

For CI or headless environments, set DEVIN_TOKEN as an environment variable.

Exit codes

| Code | Meaning | |------|---------| | 0 | Success | | 1 | Error (API failure, network error, etc.) | | 10 | Authentication required (non-interactive context) |

How it works

The CLI reverse-engineers Devin's internal PR review API:

  1. Authenticates via Devin's Auth0-based auth system
  2. Fetches the review digest from GET /api/pr-review/digest
  3. Parses review threads for Devin's "lifeguard" bug flags
  4. Filters to unresolved, non-outdated items
  5. Outputs formatted results

API endpoints used

| Endpoint | Purpose | |----------|---------| | GET pr-review/digest?pr_path=... | Full review data with flags, threads, checks | | GET pr-review/info?pr_path=... | PR metadata | | GET pr-review/jobs?pr_path=... | Review job status |

JSON output schema

interface Output {
  status: {
    status: "completed" | "running" | "no_review" | "failed";
    message: string;
    stages?: { completed: string[]; total: string[] };
  };
  bugs: Bug[];
}

interface Bug {
  filePath: string;       // "lib/apply/assist.ts"
  startLine: number;      // 124
  endLine: number;        // 136
  side: "LEFT" | "RIGHT";
  title: string;          // Short description
  description: string;    // Full explanation
  severity: string;       // "severe" | "warning" | "info"
  recommendation: string; // Suggested fix
  type: "lifeguard-bug" | "lifeguard-analysis";
  isResolved: boolean;
  isOutdated: boolean;
  htmlUrl: string | null;  // Link to GitHub comment
}

Project structure

src/
  cli.ts          Entry point, arg parsing, orchestration
  auth.ts         Browser-based auth + token caching
  api.ts          Devin API client with retry on 401
  filter.ts       Bug extraction from digest response
  format.ts       Terminal (ANSI) and JSON formatters
  parse-pr.ts     PR URL/shorthand parser
  types.ts        TypeScript interfaces
  config.ts       Paths and constants

Disclaimer

This tool uses Devin's internal API, which is not officially documented or supported. It may break if Devin changes their API. Use at your own risk.

License

MIT