A desktop application that monitors your AI coding tool usage and surfaces patterns you might not see yourself. Built for developers who want to understand their relationship with AI-assisted programming.
VibeCheck sits in your system tray, quietly tracking which applications you use and how you split time between AI-assisted coding, manual coding, and everything else. It stores all data locally in SQLite -- nothing leaves your machine.
The classifier runs a priority-ordered rule chain:
| Layer | Technology |
|---|---|
| Backend | Rust |
| Framework | Tauri v2 |
| Frontend | Svelte 5 |
| Database | SQLite (rusqlite, bundled) |
| Window detection | active-win-pos-rs |
| Serialization | serde |
Prerequisites: Rust 1.77+, Node 18+, npm
git clone https://github.com/Manavarya09/vibecheck-dashboard.git
cd vibecheck-dashboard
npm install
npm run tauri build --debug
The app bundle appears at src-tauri/target/debug/bundle/macos/VibeCheck.app.
For development with hot reload:
npm run tauri dev
src/ Svelte frontend
components/ UI components (Sidebar, CurrentSession, etc.)
lib/ API wrappers, stores, types, utilities
src-tauri/ Rust backend
src/
db/ SQLite schema, models, queries
monitor/ Window detection, classification, session tracking
commands/ Tauri command handlers (frontend-backend bridge)
tray.rs System tray setup
lib.rs Application wiring
All data stays on your machine. The SQLite database lives at ~/Library/Application Support/com.vibecheck.dashboard/vibecheck.db on macOS. No telemetry, no cloud sync, no network requests. VibeCheck records behavioral metadata only (timestamps, app names, categories) -- never code content, prompts, or file contents.
VibeCheck works without any special permissions. However, granting Screen Recording permission (System Settings > Privacy & Security > Screen Recording) enables window title detection, which improves classification accuracy for browser tabs and terminal-based tools.
MIT