Desktop activity tracker for keyboard & mouse
Keystrokes, typing speed, mouse clicks — all tracked locally on your machine. No cloud, no account, no telemetry.
| Morph — dynamic theme colors that shift with your typing speed | ||
- Real-time dashboard — live keystrokes, WPM, active time, mouse clicks with auto-refresh
- Typing ECG — heartbeat-style visualization of your coding rhythm (CPM per minute)
- Keyboard heatmap — visual key frequency heatmap mapped to a physical keyboard layout
- Commonly used keys — top 10 keys ranked by proportional bar chart
- Weekly report — typing style analysis, daily/hourly trends, shareable image export
- Top Apps — track which applications consume your time
- System tray — daily summary in the tray, runs in background
- Theme presets — 8 Nothing-style color presets (Nothing Red, Arctic Cyan, Phosphor Green, Signal Violet, Amber Warm, Slate Blue, Rose Gold, Graphite) with dark & light mode
- Morph — dynamic theme colors that respond to your typing speed in real-time. 6 color palettes (Thermal, Aurora, Ember, Neon, Ocean, Sunset) that shift from calm tones at idle to intense hues at peak WPM. The accent color, ECG line, heatmap, and all UI elements flow together as your typing rhythm changes
- i18n — English and Chinese
- Data retention — auto-cleanup with configurable retention period
- Custom data directory — choose where your data lives
- 100% local — no cloud, no account, all data stays on your disk
Grab the latest release for your platform from Releases.
Prerequisites: Go 1.22+, Node.js (pnpm), Wails CLI
# Install Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# Build for your platform
wails build
# Or run in dev mode
wails dev# Install webkit2gtk dependency
sudo apt install libwebkit2gtk-4.1-dev
# Build with webkit2_41 tag
wails build -tags webkit2_41| Layer | Stack |
|---|---|
| Backend | Go + Wails v2 |
| Frontend | React + TypeScript + Tailwind CSS |
| Charts | Recharts |
| Hooks | gohook |
| Storage | Local JSON (gzip compressed) |
| Design | Nothing Design System |
HeatTrace/
├── main.go # App entry, Wails bootstrap, single-instance lock
├── tray.go # System tray with daily summary
├── app.go # Wails-bound methods (frontend ↔ Go bridge)
├── monitor/ # Keyboard & mouse event capture (gohook)
├── storage/ # JSON store, aggregator, daily summaries
├── analytics/ # Typing speed, usage time, weekly reports
├── filter/ # Sensitive key filtering
├── config/ # App configuration
└── frontend/ # React SPA (Vite + Tailwind)
HeatTrace runs entirely on your machine. No data is sent anywhere. You can review exactly what is stored by opening the JSON files in your data directory. Sensitive keys (password fields) are automatically filtered out.