Keyboard & Mouse Stats for macOS/Windows https://keystats.vercel.app
  • Swift 57.5%
  • C# 39.4%
  • Shell 2%
  • PowerShell 1%
Find a file
2026-06-09 21:25:10 +08:00
.agents/skills fix(windows): recover tray and hooks after system sleep/hibernate (#94) 2026-04-03 21:46:10 +08:00
.github feat(helper): persistent accessibility helper to survive updates (#107) 2026-05-01 14:52:53 +08:00
docs feat(helper): persistent accessibility helper to survive updates (#107) 2026-05-01 14:52:53 +08:00
KeyStats Fix menu bar count truncation 2026-05-11 21:39:44 +08:00
KeyStats.Windows fix: harden stats timers during shutdown 2026-06-09 21:25:10 +08:00
KeyStats.xcodeproj chore: bump version to 1.46 2026-06-07 15:33:15 +08:00
KeyStatsHelper feat(helper): persistent accessibility helper to survive updates (#107) 2026-05-01 14:52:53 +08:00
KeyStatsTests fix(input): handle generic modifier fallback 2026-04-07 15:01:23 +08:00
scripts fix(release): scope build-number bump to main app only 2026-05-01 15:08:03 +08:00
vendor feat(helper): persistent accessibility helper to survive updates (#107) 2026-05-01 14:52:53 +08:00
.gitattributes feat(helper): persistent accessibility helper to survive updates (#107) 2026-05-01 14:52:53 +08:00
.gitignore docs: rewrite CLAUDE.md with architecture overview and track .claude dir 2026-04-07 23:08:22 +08:00
AGENTS.md feat(analytics): unify cross-platform tracking (#90) 2026-04-03 11:00:39 +08:00
CLAUDE.md feat(helper): persistent accessibility helper to survive updates (#107) 2026-05-01 14:52:53 +08:00
LICENSE Add MIT License to the project 2026-01-03 20:36:02 +08:00
Package.swift feat(helper): persistent accessibility helper to survive updates (#107) 2026-05-01 14:52:53 +08:00
QUICKSTART.md init 2025-12-28 18:33:59 +08:00
README.md Update README.md 2026-06-06 15:46:17 +08:00
README_ZH.md chore: update readme 2026-05-26 14:54:50 +08:00

Awesome

English | 简体中文

ICON-iOS-Default-256x256@2x

KeyStats - macOS/Windows Keyboard & Mouse Statistics Menu Bar App

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.

image image image image

Installation & Usage

macOS

Option 1: Install via Homebrew

# Tap the repository
brew tap debugtheworldbot/keystats

# Install the app
brew install keystats

Update the app:

brew upgrade keystats

Option 2: Download from GitHub Releases

Windows

Option 1: Install via Scoop

scoop bucket add keystats https://github.com/debugtheworldbot/scoop-keystats
scoop install keystats

Option 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.

Linux

Download the Linux version

Features

  • 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

System Requirements

macOS

  • macOS 13.0 (Ventura) or higher

Windows

  • 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:

  1. Upgrade to Windows 10 1903 or higher (recommended)
  2. Or manually install .NET Framework 4.8: Download link

First Run Permission Setup

macOS

KeyStats requires Accessibility permissions to monitor keyboard and mouse events. On first run:

  1. The app will prompt a permission request dialog
  2. Click "Open System Settings"
  3. Find KeyStats in "Privacy & Security" > "Accessibility"
  4. Enable the permission toggle for KeyStats
  5. 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.

Windows

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.

Privacy Statement

KeyStats only tracks the count of keystrokes and clicks, and does NOT record:

  • Which specific keys were pressed
  • Text content that was typed
  • Specific click locations or applications

All data is stored locally only and is never uploaded to any server.

Star History

Star History Chart

License

MIT License