The dual-channel design is the honest answer to a real limitation: hooks catch file and git activity but not plan-mode entry or which language you are in, and MCP catches those but is not available for every event. Splitting collection and merging into one log is why the achievement set works the same across clients that support very different amounts of instrumentation.
A local tracker that turns coding-agent activity into a Steam-style achievement dashboard. It collects on two channels: a hook CLI that fires on tool events from clients that expose hooks, and an MCP server that captures what hooks cannot see. Both write to the same event log under `~/.agent-achievements/`, and one engine evaluates 217 achievements across 11 categories against it.
- An MCP server exposing 7 tools over stdio, covering the events hooks miss: image reads, the language of the file being worked on, plan-mode entry, user messages, automode start, plus achievement configuration and an explain call
- A dashboard with an XP bar, level, streak, a GitHub-style activity heatmap of the last four months, rarity breakdown and a showcase — opened with `agpa dashboard`
- 217 achievements across 11 categories, with terminal popups, desktop notifications and 8-bit sounds on unlock
- Coverage across clients: Claude Code, Kilo Code, OpenCode and OpenClaw get both hook auto-tracking and MCP tracking; Hermes, Cursor and VS Code get MCP tracking only, since they expose no hook API
- Up to 4 profiles to keep work, personal and experimental sessions apart, and `agpa demo` to fill the dashboard with sample data before any real unlocks
Nothing — no account, no key, and no network calls; everything stays on your machine. Node.js 18 or higher. Install with `npm install -g @eiainano/agpa` then `agpa init`, which detects your installed clients and writes both the plugin and the MCP configuration. Manual MCP setup runs `npx -y @eiainano/agpa agpa-mcp` over stdio. The published server entry is `agpa` 0.1.3.
One command — npm install -g @eiainano/agpa
