English | 简体中文
KeyStats is a lightweight native menu bar application for macOS and Windows that tracks daily keyboard keystrokes, mouse clicks, mouse movement distance, and scroll distance, with optional end-to-end encrypted multi-device sync.
# Tap the repository
brew tap debugtheworldbot/keystats
# Install the app
brew install keystatsUpdate the app:
brew upgrade keystatsOption 2: Download from GitHub Releases
scoop bucket add keystats https://github.com/debugtheworldbot/scoop-keystats
scoop install keystatsOption 2: Download from GitHub Releases
No dependencies required: The Windows version uses .NET Framework 4.8, which is pre-installed on Windows 10 (1903+) and Windows 11 - ready to use out of the box. If your Windows 10 version is older (before 1903), you can upgrade your system or manually install .NET Framework 4.8.
- Keyboard Keystroke Statistics: Real-time tracking of daily key presses
- Mouse Click Statistics: Separate tracking of left and right clicks
- Mouse Movement Distance: Track total distance of mouse movement
- Scroll Distance Statistics: Record cumulative page scroll distance
- Menu Bar Display: Core data displayed directly in macOS menu bar
- Detailed Panel: Click menu bar icon to view complete statistics
- Daily Auto-Reset: Statistics automatically reset at midnight
- Data Persistence: Data persists after application restart
- Multi-Device Sync: End-to-end encrypted synchronization of supported daily keyboard and mouse-click statistics across paired devices
- macOS 13.0 (Ventura) or higher
- Windows 10 (1903+) or Windows 11
- No dependencies required: Uses .NET Framework 4.8 (pre-installed on Windows 10/11, ready to use out of the box)
- App size: ~5-10 MB (lightweight, no additional runtime needed)
Note: If your Windows 10 version is older (before 1903), you can:
- Upgrade to Windows 10 1903 or higher (recommended)
- Or manually install .NET Framework 4.8: Download link
KeyStats requires Accessibility permissions to monitor keyboard and mouse events. On first run:
- The app will prompt a permission request dialog
- Click "Open System Settings"
- Find KeyStats in "Privacy & Security" > "Accessibility"
- Enable the permission toggle for KeyStats
- Once authorized, the app will automatically start tracking
Note: Without granting permissions, the app will not be able to track any data.
Reinstall/upgrade tip: Because the app is not signed, macOS will not automatically update Accessibility authorization after each reinstall. Remove the existing KeyStats entry in "Privacy & Security" > "Accessibility", then return to the app and click the "Get Permission" button to request access again.
Auto-update tip (unsigned builds, macOS Ventura+): The first Sparkle update may fail. Enable KeyStats in "Privacy & Security" > "App Management" first. If it already failed, click the system authorization notification, turn on the toggle in Settings, and click "Update Now" again.
The Windows version requires no additional permission setup. The app will automatically start tracking once launched.
Note: On first launch, Windows may show a security warning. Click "Run anyway" to proceed.
KeyStats stores aggregate statistics and does NOT record:
- Typed text or the order of keystrokes
- Specific cursor or click locations
Data stays on the local device by default. When you explicitly enable multi-device sync, supported daily key-press totals, per-key/key-combination counts, mouse-button click counts, and encrypted device information are encrypted locally before upload. Mouse movement distance, scroll distance, and per-app statistics are not currently synced, and the service cannot read the encrypted statistics.
MIT License