Private development tracker with Supabase backend.
Track your coding time, languages, and projects completely privately using your own self-hosted or managed Supabase instance.
100% Private & Open Source — You own your data. Heartbeats and stats are sent directly to your own Supabase database. No external servers or third-party trackers are involved.
- Coding Time Tracking: Automatically records how long you spend coding in different languages. Sends a heartbeat every 30 seconds while you're actively coding. Auto-pauses after 1 minute of inactivity.
- Language Detection: Detects 150+ languages from your active editor tab.
- Project & Branch Awareness: Uses Git to automatically detect which project and branch you are working on.
- Machine-Specific Identity: Safely tracks activity across multiple computers.
- Status Messages: Set a custom status message ("What are you working on?") that gets saved directly to your Supabase database.
- Live Sidebar Dashboard: View your coding time today, active project details, and a dynamic Language Leaderboard with filters (Today, Week, Month, All Time).
- Status Bar Integration: Displays your coding time for today (e.g.
2h 15m) right in the VS Code status bar. - Offline Resilience: Recovers gracefully from connection issues.
CodeBeats requires a Supabase instance to store your data.
Before connecting the extension, you need to set up the database tables.
- Open your Supabase project dashboard.
- Go to the SQL Editor.
- Copy the contents of the
schema.sqlfile (included in this extension's directory or available via the login screen link). - Run the script to create the required tables (
projects,heartbeats,daily_stats,status_messages) and Row Level Security (RLS) policies.
- Open the CodeBeats sidebar in VS Code (the clock/tracker icon in the activity bar).
- Enter your Supabase Project ID (or full URL) and your API Key (anon public key).
- Click Connect.
- The extension will verify the connection and confirm that the database schema is correctly set up.
Accessible from the Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
| Command | Description |
|---|---|
CodeBeats: Set Status Message |
Set your status message (saved to Supabase) |
CodeBeats: Show Coding Time |
Show your coding time today |
CodeBeats: Debug |
Toggle debug logging |
CodeBeats: Open Log File… |
Open the CodeBeats log file |
CodeBeats: Open Config File… |
Open the local configuration file |
| Setting | Default | Description |
|---|---|---|
codebeats.trackingEnabled |
true |
Enable or disable heartbeat tracking |
codebeats.inactiveGraceMinutes |
10 |
Minutes to keep counting after the last editor activity (set to 0 to disable) |
- Direct Connection: The extension communicates only and directly with the Supabase URL you provide.
- Secure Credentials: Your Supabase URL and API Key are stored securely using VS Code's native
SecretStorage(macOS Keychain, Windows Credential Manager, Linux libsecret) — never in plain text. - No Source Code Tracking: Files outside any Git repository are not tracked beyond their language. We never read your source code, file contents, keystrokes, or commit messages.
- VS Code 1.80+ (Also works with Cursor, Windsurf, VSCodium, Positron, Antigravity, and other VS Code forks)
- A Supabase project (cloud or self-hosted)