devquest
v0.5.0
Published
A gamified terminal wrapper that rewards real development work with XP, levels, and achievements
Downloads
58
Maintainers
Readme
DevQuest
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 devquestOr, for local development:
npm linkCommands
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 testdq is installed as a shorter alias for devquest:
dq npm testQuest 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 statusXP 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, andnpm 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
xpvalue and a list ofpatterns; a pattern is the leading tokens of a command. The most specific matching pattern wins. - Overriding a built-in action is partial: setting only
xpkeeps its default patterns, and vice versa. - Invalid entries are skipped with a warning; a broken config never breaks the wrapped command.
- Quiet mode (
"quiet": trueor theDEVQUEST_QUIET=1environment variable, which wins over the file) suppresses all XP messages and popups while still tracking progress.DEVQUEST_QUIET=0forces 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 offSafety 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.
