A VS Code extension that tracks not just time, but output, focus, and productivity patterns.
DevPulse automatically tracks your coding activity and transforms it into meaningful productivity insights — going far beyond simple time tracking.
Instead of just telling you "you coded 5 hours", DevPulse tells you:
"3h building features, 1.5h debugging, 30m reading code — and you work best between 10–12 AM."
- Tracks coding activity in real time — no manual timers
- Detects active coding vs idle time
- Tracks time per file, language, and project
- Runs silently in the background with minimal overhead
| Intent | Description |
|---|---|
| Creating | Writing new code (more additions than deletions) |
| Debugging | Balanced edits, fixing issues |
| Refactoring | Heavy deletions and rewrites |
| Exploring | Reading and navigating code |
- Start timed focus sessions with a goal description
- Track context switches and files worked on during the session
- Automatic flow score calculation (0–10)
- Goal completion notifications
- Historical session log with scores
- Counts file/project switches throughout the day
- Optional notification when excessive switching is detected
- Per-hour context switch rate in weekly reports
- Today Tab: Hourly heatmap, work breakdown, language stats
- Weekly Tab: 7-day trend, top projects, top languages
- AI Insights Tab: Productivity score, coaching tips, peak hours
- Focus Tab: Active session controls, recent session history
- Productivity score (0–100) based on your patterns
- Focus score (0–10) based on session depth
- Personalized recommendations generated from your data
- Peak hour identification
- Context switching warnings
- All data stored locally using VS Code's built-in global state
- No API keys, no cloud sync, no external requests
- Configurable data retention (7–365 days)
- Full data export to JSON
- One-click data deletion
- Open VS Code
- Press
Ctrl+P/Cmd+P - Type
ext install apertacodex.devpulse - Press Enter
Or install from the VS Code Marketplace.
Click the DevPulse icon (pulse wave) in the Activity Bar to open the sidebar with four views:
- Today's Activity — live stats for the current day
- Insights & Coaching — AI-generated tips and quick stats
- Projects & Languages — breakdown by project and language
- Focus & Flow — manage and review focus sessions
| Shortcut | Action |
|---|---|
Ctrl+Alt+F / Cmd+Alt+F |
Start/Stop Focus Session |
Ctrl+Alt+D / Cmd+Alt+D |
Open Dashboard |
Ctrl+Alt+R / Cmd+Alt+R |
Show Weekly Report |
All commands are available via Ctrl+Shift+P:
DevPulse: Open DashboardDevPulse: Start Focus SessionDevPulse: Show Weekly ReportDevPulse: Generate AI InsightsDevPulse: Toggle Tracking On/OffDevPulse: Export Data as JSONDevPulse: Clear All Tracking Data
| Setting | Default | Description |
|---|---|---|
devpulse.enabled |
true |
Enable/disable tracking |
devpulse.idleThresholdMinutes |
5 |
Minutes before session is idle |
devpulse.focusSessionGoalMinutes |
90 |
Default focus session duration |
devpulse.contextSwitchThresholdSeconds |
30 |
Seconds before a file change counts as a switch |
devpulse.showStatusBar |
true |
Show time in status bar |
devpulse.statusBarFormat |
time+intent |
Status bar display: time, time+intent, focus |
devpulse.privacyMode |
true |
Local-only storage |
devpulse.dataRetentionDays |
90 |
Days to keep historical data |
devpulse.aiInsightsEnabled |
true |
Enable AI coaching |
devpulse.notifyContextSwitching |
false |
Alert on excessive context switching |
devpulse.workdayStartHour |
9 |
Workday start (for analysis) |
devpulse.workdayEndHour |
18 |
Workday end (for analysis) |
devpulse.excludePatterns |
["**/node_modules/**", ...] |
Files to exclude from tracking |
src/
├── extension.ts # Activation, command registration
├── logger.ts # Centralized output channel logging
├── types.ts # Shared TypeScript interfaces
├── ActivityTracker.ts # Core event-based tracking engine
├── InsightsEngine.ts # Analytics, AI coaching, report generation
├── FocusSessionManager.ts # Focus session lifecycle
├── StorageManager.ts # VS Code globalState persistence
├── StatusBarManager.ts # Status bar items
├── DashboardPanel.ts # Webview dashboard panel
├── TodayViewProvider.ts # Today's activity tree view
├── InsightsViewProvider.ts # Insights tree view
├── ProjectsViewProvider.ts # Projects tree view
└── FocusViewProvider.ts # Focus sessions tree view
| Feature | WakaTime | DevPulse |
|---|---|---|
| Time tracking | ✅ | ✅ |
| Language stats | ✅ | ✅ |
| Work type detection | ❌ | ✅ |
| Focus sessions | ❌ | ✅ |
| Flow scoring | ❌ | ✅ |
| AI insights | ❌ | ✅ |
| Context switching detection | ❌ | ✅ |
| Privacy-first / local | ✅ | |
| No API key required | ❌ | ✅ |
| VS Code native UI | ❌ | ✅ |
Pull requests are welcome! Please open an issue first to discuss major changes.
git clone https://github.com/apertacodex/devpulse.git
cd devpulse
npm install
npm run watch
# Press F5 in VS Code to launch Extension Development HostMIT © apertacodex