← Projects
KeliKeli

KeliKeli

A privacy-respecting macOS menu bar app that visualises every keystroke and click in real time, tracks your 30-day work rhythm by app, and optionally streams data via HTTP or WebSocket.

GitHubTauriRustReactTypeScriptmacOS

Problem

Creative and knowledge workers have no lightweight way to quantify their actual output. Screen time tools track passive consumption, not active creation. KeliKeli makes keystrokes and clicks visible — giving creators an honest, real-time signal of their work rhythm without surveillance or data leakage.

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 — 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
KeliKeli | WeiTanZzz