A lightweight, native macOS Menu Bar application that displays your real-time global typing speed (WPM) with stunning liquid-glass charts, premium custom gradient themes, and adaptive baseline smoothing.
Because TypingSpeed monitors keystrokes globally to calculate typing speed, security and trust are our highest priorities:
- 🚫 Zero Network Transmissions: The application contains absolutely no networking, HTTP, or communication frameworks. It is physically incapable of transmitting any data over the internet.
- 🚫 Zero Keystroke Logging: The app never stores, records, or caches the characters you type. Keystroke events are processed in-memory solely to record a high-precision timestamp, instantly discarding key names, character codes, and text data.
- 🛠️ Fully Auditable: The entire codebase is contained in a single, clean file (
main.swift), letting you audit every line of source code before compilation.
- 🚀 Instant Baseline Stabilization (Monkeytype Raw WPM): Uses a dynamic elapsed-time calculation model (
min(elapsedTime, windowDuration)) so that your typing speed stabilizes to your true baseline (e.g., 100-130 WPM) within 2 seconds of typing, completely eliminating the standard 60-second ramp-up delay. - ❄️ Freeze-Frame on Pause: When you stop typing to read or think, the status bar display freezes instantly at your last active speed. The values never slowly decay down to
0. - 📈 Adaptive EMA Smoothing: Features an adaptive exponential moving average. Big speed changes (starting, fast bursts) snap instantly to target (
0.35factor), while stable baseline writing remains perfectly filtered and jitter-free (0.08factor). - 🛡️ Zero Menu Bar Layout Shifting: Designed with a custom AppKit subview layout and fixed-width constraints. The speed digits update dynamically without causing the other menu bar icons to jump, shift, or twitch.
- 🎨 Premium Gradient Themes: Supports 6 hand-curated themes (Classic Indigo, Forest Green, Royal Purple, Sunset Orange, Cyberpunk Neon, and Nord Gray) that color both the menu bar text and the speed history graph.
- ☕ Idle Coffee Indicator: Shows a dim, minimalist coffee cup (
☕) icon next to your locked average speed when you are away from the keyboard, transitioning back to active color gradients the moment you type. - 📊 Interactive Speed Chart: Open the dropdown to view a real-time sliding line graph of your typing speed history over 1 to 5 minutes, rendered with translucent filled gradients.
- 🎛️ Customize Settings: Adjust active calculation windows (3s burst up to 1hr average), filter out system command hotkeys, and toggle the
"WPM"display suffix.
- Go to the Releases tab on GitHub and download the latest
TypingSpeed.dmgpackage. - Double-click the downloaded
.dmgfile to mount it. - Drag the TypingSpeed app icon into your Applications folder shortcut.
- Open the app from your Applications folder.
- On first launch, the app will run as an accessory agent in your Menu Bar. You will see a
⚠️ Setupwarning indicating accessibility permission is required. - Click the menu icon and choose Grant Permission in System Settings...
- System Settings will open to the Privacy & Security > Accessibility panel. Enable the toggle for TypingSpeed in the list.
- Start typing anywhere globally to see your real-time WPM count update!
- macOS 10.15 Catalina or later
- Xcode Command Line Tools installed (run
xcode-select --installif needed)
- Clone or download this repository.
- Open your terminal, navigate to the folder, and run the build script:
./build.sh
- This creates a native application bundle named
TypingSpeed.appin the directory.
To generate the installer .dmg file locally:
./release.shThis compiles the application and packages it with an Applications shortcut folder inside a double-clickable disk image (TypingSpeed.dmg) on your Desktop.
This project is open-source and available under the MIT License.