TypeSteps monitors your keyboard activity in real-time to provide insights into your typing patterns. The tracking system is designed to be lightweight, privacy-focused, and non-intrusive.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/FALAK097/typesteps/llms.txt
Use this file to discover all available pages before exploring further.
What gets tracked
TypeSteps captures specific categories of keystrokes to provide accurate typing metrics:Letters
All alphabetic characters (A-Z, a-z) are counted
Numbers
Numeric digits (0-9) are tracked
Punctuation
Punctuation marks like periods, commas, and symbols
Whitespace
Spaces, tabs, and line breaks are included
What doesn’t get tracked
To protect your privacy and security, TypeSteps explicitly ignores certain key types:Modifier keys (Command, Option, Control, Shift) and function keys (F1-F12, Escape, etc.) are not tracked. This ensures sensitive keyboard shortcuts and system commands remain private.
How it works
The tracking system operates at the system level using macOS Accessibility APIs:Permission requirements
TypeSteps requires Accessibility permission to monitor global keyboard events. This is a standard macOS permission that allows the app to:- Listen to keydown events system-wide
- Identify the active application
- Extract window titles for project detection (in supported apps)
Pause and resume
You can temporarily pause tracking at any time:Pause tracking
Pause tracking
When paused, TypeSteps stops counting keystrokes but continues running in the background. Use the menu bar toggle or keyboard shortcut ⌘⇧P to pause/resume.The menu bar icon changes to show pause status:
- Active:
keyboardicon - Paused:
keyboard.badge.ellipsisicon
Application tracking
TypeSteps automatically detects which application you’re typing in and tracks per-app statistics:- App name: The frontmost application name
- Bundle ID: Used for accurate app identification and icon display
- Project detection: Extracts project names from window titles in supported apps (Xcode, VS Code, Cursor)
Xcode
Detects project name from window title format:
ProjectName — FileName.swiftVS Code
Extracts project from format:
FileName - ProjectNameCursor
Same detection as VS Code
Performance
The keystroke listener is optimized for minimal system impact:- Uses global event monitoring with efficient filtering
- Only increments counters in memory
- Batches storage operations to UserDefaults
- No character content is stored or transmitted
TypeSteps has zero network activity. All tracking happens locally on your Mac.