{"id":50766822,"url":"https://github.com/regisx001/codebeats","last_synced_at":"2026-06-11T14:30:48.373Z","repository":{"id":358172609,"uuid":"1235688197","full_name":"regisx001/codebeats","owner":"regisx001","description":"Private development tracker with Supabase backend. Track your coding time, languages, and projects completely privately using your own self-hosted or managed Supabase instance. ","archived":false,"fork":false,"pushed_at":"2026-05-16T03:04:29.000Z","size":621,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-16T05:16:44.751Z","etag":null,"topics":["bun","developement","developer-tools","extension","nodejs","supabase","tracking","vscode"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/regisx001.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-11T15:00:30.000Z","updated_at":"2026-05-16T03:04:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/regisx001/codebeats","commit_stats":null,"previous_names":["regisx001/codebeats"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/regisx001/codebeats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2Fcodebeats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2Fcodebeats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2Fcodebeats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2Fcodebeats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/regisx001","download_url":"https://codeload.github.com/regisx001/codebeats/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2Fcodebeats/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34204177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bun","developement","developer-tools","extension","nodejs","supabase","tracking","vscode"],"created_at":"2026-06-11T14:30:42.745Z","updated_at":"2026-06-11T14:30:48.366Z","avatar_url":"https://github.com/regisx001.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eCodeBeats for VS Code\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003ePrivate development tracker with Supabase backend.\u003c/strong\u003e\u003cbr/\u003e\n  Track your coding time, languages, and projects completely privately using your own self-hosted or managed Supabase instance.\n\u003c/p\u003e\n\n---\n\n\u003e **100% Private \u0026 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.\n\n---\n\n## Features\n\n- **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.\n- **Language Detection:** Detects 150+ languages from your active editor tab.\n- **Project \u0026 Branch Awareness:** Uses Git to automatically detect which project and branch you are working on.\n- **Machine-Specific Identity:** Safely tracks activity across multiple computers.\n- **Status Messages:** Set a custom status message (\"What are you working on?\") that gets saved directly to your Supabase database.\n- **Live Sidebar Dashboard:** View your coding time today, active project details, and a dynamic Language Leaderboard with filters (Today, Week, Month, All Time).\n- **Status Bar Integration:** Displays your coding time for today (e.g. `2h 15m`) right in the VS Code status bar.\n- **Offline Resilience:** Recovers gracefully from connection issues.\n\n---\n\n## Setup \u0026 Installation\n\nCodeBeats requires a Supabase instance to store your data. \n\n### 1. Database Setup\nBefore connecting the extension, you need to set up the database tables.\n1. Open your Supabase project dashboard.\n2. Go to the **SQL Editor**.\n3. Copy the contents of the `schema.sql` file (included in this extension's directory or available via the login screen link).\n4. Run the script to create the required tables (`projects`, `heartbeats`, `daily_stats`, `status_messages`) and Row Level Security (RLS) policies.\n\n### 2. Connect the Extension\n1. Open the **CodeBeats** sidebar in VS Code (the clock/tracker icon in the activity bar).\n2. Enter your **Supabase Project ID** (or full URL) and your **API Key** (anon public key).\n3. Click **Connect**. \n4. The extension will verify the connection and confirm that the database schema is correctly set up.\n\n---\n\n## Commands\n\nAccessible from the Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`):\n\n| Command | Description |\n|---------|-------------|\n| `CodeBeats: Set Status Message` | Set your status message (saved to Supabase) |\n| `CodeBeats: Show Coding Time` | Show your coding time today |\n| `CodeBeats: Debug` | Toggle debug logging |\n| `CodeBeats: Open Log File…` | Open the CodeBeats log file |\n| `CodeBeats: Open Config File…` | Open the local configuration file |\n\n---\n\n## Settings\n\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `codebeats.trackingEnabled` | `true` | Enable or disable heartbeat tracking |\n| `codebeats.inactiveGraceMinutes` | `10` | Minutes to keep counting after the last editor activity (set to `0` to disable) |\n\n---\n\n## Privacy \u0026 Security\n\n- **Direct Connection:** The extension communicates *only* and directly with the Supabase URL you provide.\n- **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.\n- **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.\n\n---\n\n## Requirements\n\n- VS Code **1.80+** (Also works with Cursor, Windsurf, VSCodium, Positron, Antigravity, and other VS Code forks)\n- A Supabase project (cloud or self-hosted)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregisx001%2Fcodebeats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fregisx001%2Fcodebeats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregisx001%2Fcodebeats/lists"}