
KeliKeli
A privacy-first macOS menu bar app that visualises keystrokes and mouse activity across a 30-day window to reveal work rhythm and app-level attention patterns — fully on-device, zero telemetry.
Problem
Screen time tools measure passive consumption — they tell you how long you had an app open, not how hard you were working. KeliKeli tracks keystrokes and mouse clicks to give knowledge workers an honest, real-time signal of active output, with zero surveillance: events are counted, never recorded, and nothing leaves the device.
Tech Stack
- Desktop framework: Tauri v2 (Rust backend + React 19 / TypeScript 6 frontend)
- System integration: CGEventTap global event hook via Objective-C runtime (objc crate)
- Async runtime: Tokio with reqwest (HTTP sync) and tokio-tungstenite (WebSocket stream, exponential backoff up to 5 min)
- Frontend: Vite 8 · Tailwind v4 · Radix UI
- Persistence: Local JSON (daily aggregation) + TOML config
- Toolchain: pnpm · Turborepo · Biome · GitHub Actions (auto code-signed universal DMG · tauri-plugin-updater)
Outcome
Shipped as a self-initiated open-source project, reaching v0.7.3 with a universal binary supporting macOS 12+ on both Apple Silicon and Intel. Key results:
- Real-time floating badge animations on every keystroke and click, with fully customisable indicators (emoji, active app icon, custom labels)
- 30-day history with per-app breakdown, streaks, daily average, and cumulative totals
- Three data export modes: JSON export, periodic HTTP sync, and live WebSocket event stream
- Zero keylogging — the hook counts events only; no key values or text are ever recorded
- Resolved production-blocking issues: keychain auto-lock during long builds and Apple timestamp server hangs in codesign