Ever wonder how much money you've made while fixing that one annoying bug? Now you'll know.
PayMood turns your VS Code status bar into a real-time earnings ticker. Set your hourly rate, hit the timer, and watch your income grow — one keystroke at a time.
✨ What it does
- 💵 Live earnings — See your running total right in the status bar as you code.
- ⏱️ Smart time tracking — Separately tracks Coding time (active edits) and Thinking time (focused but not typing), because staring at the screen counts too.
- 📊 Dashboard — Open the PayMood panel to see today's breakdown: time spent, money earned, and your settings at a glance.
- 🌐 Shared preferences — Schedule/pay settings are saved globally and shared across your workspaces.
- 🔄 Persists across windows — Close a window, open another — your daily totals stay intact until midnight.
- 🪟 Multi-window aware — Running multiple VS Code windows? PayMood syncs timer state automatically.
🚀 Quick start
- Install the extension from the VS Code Marketplace.
- Open the Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) and run PayMood: Open Dashboard. - Enter your hourly rate and work hours, then start the timer.
- Watch the money roll in. 🤑
🎮 Commands
| Command | What it does |
|---|---|
PayMood: Open Dashboard |
Open the earnings & settings panel |
PayMood: Toggle Status Bar |
Show or hide the status bar ticker |
PayMood: Reset Today Activity |
Clear today's coding & thinking totals |
PayMood: Reset Settings |
Restore all settings to defaults |
🧠 How time tracking works
- Coding time — counted while a VS Code window is focused and you've made a text edit within the last ~90 seconds.
- Thinking time — counted while a window is focused but outside that recent-coding window. (Yes, planning counts.)
- Both totals persist for the full local day and reset at midnight.
- Multi-window sync uses last-write-wins, so your totals stay consistent no matter how many windows you have open.
🛠️ Development
From the repo root:
cd vscode-extension
npm install
npm run build
Then open the repo in VS Code and run the Run Extension launch config to start an Extension Development Host.
- Entry point:
src/extension.ts - Storage helpers:
src/storage.ts - Build output:
dist/extension.js(esbuild vianpm run build) - Webview assets (CSS/JS):
media/ - Webview security: strict CSP with nonce-based script loading
📝 Release notes
-
v0.1.10 — Clarified settings semantics: dashboard now explicitly labels settings as globally shared across workspaces.
-
v0.1.9 —
Coding todayandThinking todaynow persist as full local-day totals and no longer reset when a window goes inactive or closes. AddedPayMood: Reset Today Activitycommand.