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

devquest

v0.5.0

Published

A gamified terminal wrapper that rewards real development work with XP, levels, and achievements

Downloads

58

Readme

DevQuest

CI npm version node

DevQuest is a gamified terminal wrapper for real development work. It adds light RPG flavor and rewards for successful commands, with an ADHD-friendly focus on momentum: minimal friction, no extra prompts, and no noisy output unless you opt in. It runs commands exactly as you would run them, and only adds XP and progress tracking when it is safe to do so.

Installation

npm install -g devquest

Or, for local development:

npm link

Commands

DevQuest works by wrapping the commands you already run. Anything that is not a built-in subcommand is executed unchanged, and XP is awarded on success.

Built-in subcommands:

devquest status          # Show your class, level, and XP bar
devquest stats           # Show lifetime stats and streaks
devquest achievements    # List all achievements and unlock state
devquest summary         # End the current session and show its summary
devquest reset-session   # Clear the current session counters
devquest help            # Show usage
devquest version         # Show version (also --version, -v)

Wrap any command to earn XP when it succeeds:

devquest git commit -m "fix login bug"
devquest npm test

dq is installed as a shorter alias for devquest:

dq npm test

Quest Mode (opt-in)

Base XP, levels, classes, and most achievements are always tracked. Quest Mode is an optional, opt-in session mode that adds endurance (duration) bonuses and streak tracking on top.

Turn it on and off, and check status:

devquest quest on
devquest quest off
devquest quest status

XP Rules (high level)

  • XP is awarded only when wrapped commands succeed (exit code 0).
  • No XP is awarded on failures.
  • Action XP: commit +50, push +75, test +100, merge +150, deploy +500.
  • Out of the box, DevQuest recognizes: git commit, git push, git merge, gh pr merge, npm test, npm run test, pnpm test, yarn test, bun test, npx vitest, npx jest, pytest, cargo test, go test, and npm run deploy / pnpm run deploy / yarn deploy.
  • In Quest Mode, long-running successful commands earn a duration bonus:
    • 2+ minutes: +25 XP
    • 5+ minutes: +50 XP
    • 15+ minutes: +100 XP

Configuration

Create ~/.devquest/config.json (or $DEVQUEST_HOME/config.json) to add your own actions, change XP values, or turn on quiet mode:

{
  "actions": {
    "commit": { "xp": 25 },
    "docs": { "xp": 30, "patterns": [["npm", "run", "docs"]] }
  },
  "quiet": false
}
  • Each action has an xp value and a list of patterns; a pattern is the leading tokens of a command. The most specific matching pattern wins.
  • Overriding a built-in action is partial: setting only xp keeps its default patterns, and vice versa.
  • Invalid entries are skipped with a warning; a broken config never breaks the wrapped command.
  • Quiet mode ("quiet": true or the DEVQUEST_QUIET=1 environment variable, which wins over the file) suppresses all XP messages and popups while still tracking progress. DEVQUEST_QUIET=0 forces output back on.

Levels, Classes, and Achievements

  • Levels: Total XP maps to a level on a rising curve (each level costs more than the last).
  • Classes: Your class is inferred from how you work. The dominant signal across your commits and tracked actions (bug fixes, refactors, frontend, backend, database, tests, deploys) picks a class such as Debug Dragon, Frontend Mage, or Test Cleric; a balanced spread makes you a Full Stack Druid.
  • Achievements: One-off unlocks for milestones (first XP, XP thresholds, time of day, streaks, long sessions, bug-fix commits, and more).

Streaks

  • Quest streak (daily): Counts a day when Quest Mode is ON and you earn XP from at least one successful action. It increments once per calendar day and resets if you miss a day.
  • Test streak (per quest): Counts consecutive successful test actions within a single Quest Mode session. It resets on test failure or when Quest Mode is turned off.

Usage Examples

devquest quest on
devquest npm test
devquest quest status
devquest quest off

Safety Guarantees

  • Commands run unmodified, with arguments passed through exactly as written (including quoting on Windows).
  • Exit codes are preserved. If the command itself cannot be found, devquest exits 127 (the shell convention) with a clear message.
  • The wrapped command's stdout is untouched: all XP messages, banners, and popups go to stderr, so pipes and redirection behave exactly as they would without devquest.
  • Interactive commands work normally.

DevQuest requires Node.js 20 or newer.

Local-first

DevQuest is free and local-first. Your progress is stored on your machine, and there is no required account or external service.