Overview
Code Pulse is local-first developer time tracking and AI-activity observability. It has three surfaces: VS Code extension, desktop app (Tauri+Svelte), and CLI + local daemon + MCP server.
Install — VS Code extension
Install the .vsix:
code --install-extension codepulse-1.2.1.vsix
Or install from source. Reload the window, then open Code Pulse from the
Command Palette with Code Pulse: Show Dashboard.
Install — Desktop app
Build the desktop app from source:
git clone https://github.com/UmutKorkmaz/code-pulse
cd code-pulse/platform && npm install && npm run build
cd apps/desktop && npm run tauri:build
The native installer is in src-tauri/target/release/bundle/.
For development, run npm run tauri:dev.
The desktop app needs the daemon running. Dev mode needs
VITE_DAEMON_TOKEN=$(cat ~/.codepulse/token) npm run dev.
Install — CLI & daemon
The daemon binds 127.0.0.1:7842 for HTTP and :7843
for WebSocket. Start it with:
node platform/apps/daemon/dist/main.js
CLI commands:
codepulse doctor
codepulse status
codepulse registry
codepulse daemon
Sample codepulse doctor output:
$ codepulse doctor
✓ data-directory ~/.codepulse
✓ auth-token present, mode 0600
✓ database SQLite ready
✓ daemon-reachable http://127.0.0.1:7842
✓ registry 6 scanners
All checks passed
AI tool detection
Code Pulse detects 6 tools via process, log, terminal, and extension signals:
- Claude Code
- OpenAI Codex
- Cursor
- Cline
- Droid (Factory)
- Kilo
Run time is how long the tool ran. Active work time is the activity Code Pulse can account for. All sources merge into one row per tool.
The dashboards
The VS Code dashboard includes the AI Tools card. The desktop app
includes the Home You vs AI panel and Timeline rows like
ran 3h · worked 37m.
Privacy & data
Code Pulse is 100% local: SQLite database under ~/.codepulse,
loopback-only daemon, 0600 auth token, ed25519-signed scanner
registry, and no cloud, account, or telemetry.
MCP server
Query your stats from any MCP-capable AI agent. The MCP server uses stdio JSON-RPC.
Troubleshooting
-
Daemon not reachable: start the daemon or run
codepulse doctor. -
Desktop
401in dev: setVITE_DAEMON_TOKEN=$(cat ~/.codepulse/token). -
Stale unsigned manifests: clear
~/.codepulse/cache/registry/so the daemon reseeds signed ones.