Skip to main content

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.

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.

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:
// From KeystrokeListener.swift:56-61
if char.isLetter || char.isNumber || char.isPunctuation || char.isWhitespace {
    StorageManager.shared.incrementCount(
        appName: appName, 
        bundleId: bundleId, 
        projectName: projectName
    )
}

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)
macOS will prompt you to grant Accessibility permission when you first launch TypeSteps. You can also manage this permission in System Settings → Privacy & Security → Accessibility.

Pause and resume

You can temporarily pause tracking at any time:
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: keyboard icon
  • Paused: keyboard.badge.ellipsis icon

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

VS Code

Extracts project from format: FileName - ProjectName

Cursor

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.

Build docs developers (and LLMs) love