← Projects
KeliKeli

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.

GitHubTauriRustReactTypeScriptmacOS

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