VibeMine
A multiplayer idle identity game for developers. Earn identity items while you code — the game detects what language, IDE, AI model, harness, and framework you use and drops items that represent your coding identity.
How It Works
- Code in your IDE as usual
- The extension silently tracks activity (lines, commits, saves, token usage)
- Identity shards drop based on what you're using ("TypeScript Shard", "Claude Shard")
- Upgrade items through a 5-tier chain: Shard -> Crystal -> Core -> Relic -> Rune
- Each upgrade has a break risk + polish roll
- Showcase your earned items to friends
Every item is earned by coding. Never bought, never traded, never shortcut.
Privacy & Security
VibeMine tracks your coding activity to power the game. We believe developers deserve full transparency about what data leaves their machine.
What we collect
| Data |
Example |
Why |
| Language names + line counts |
typescript: 500 lines |
Identity item drops |
| IDE name |
vscode |
IDE identity items |
| AI tool + model names |
claude_code, opus_4_6 |
AI identity items |
| Token counts |
9.5M tokens |
AI usage stats |
| Coding time, commits, pushes |
2h coding, 15 commits |
Activity scoring |
What we NEVER collect
- No file names or paths — we only know "typescript: 500 lines", not which files
- No code content or diffs —
git diff --numstat returns only line counts, never code
- No .env, secrets, or credentials —
.env files are skipped entirely
- No repository or project names — your projects stay private
- No keystrokes or editor content — we count lines from git, not what you type
How line counting works
We use git diff --numstat HEAD which outputs:
32 19 media/webview.js
3 1 src/game/types.ts
The extension reads the numbers (32 added, 19 removed) and the file extension (.js, .ts) to determine the language. The file path is discarded — only the language name and aggregated line count reach our server.
See it yourself
Open your profile in the game and check the "Your data & privacy" section. It shows the exact JSON payload stored on our server — no hidden fields, no telemetry. What you see is everything.
Tech Stack
- TypeScript (VS Code Extension API)
- Vanilla JS/CSS webview (zero frameworks)
- Supabase (PostgreSQL + RPCs + RLS)
- GitHub OAuth
- Only runtime dependency:
@supabase/supabase-js