A macOS menu bar app that detects when a cat walks on your keyboard and automatically locks input to prevent unwanted keystrokes.
- Smart Cat Detection - Detects cat-like keyboard patterns (multiple adjacent keys pressed simultaneously)
- Automatic Keyboard Lock - Instantly blocks all keyboard input when a cat is detected
- Visual Notification - Shows a friendly popup when the keyboard is locked
- Auto Unlock - Automatically unlocks when the cat leaves the keyboard
- Manual Override - Click the notification to immediately unlock
- Statistics Tracking - See how many times your cat has visited your keyboard
- Launch at Login - Optionally start CatPaws when you log in
- Configurable Sensitivity - Adjust detection thresholds to match your cat's behavior
Coming soon
Download the latest release from the Releases page.
- Download
CatPaws-x.x.x.dmg - Open the DMG file
- Drag CatPaws to your Applications folder
- Launch CatPaws from Applications
CatPaws requires Input Monitoring permission to detect keyboard events:
- On first launch, you'll be prompted to grant access
- Go to System Settings → Privacy & Security → Input Monitoring
- Enable CatPaws in the list
Once running, CatPaws appears as a paw icon in your menu bar:
- 🐾 - Active and monitoring
- Click the icon to access settings, statistics, and quit
CatPaws monitors keyboard input for patterns that indicate a cat:
- 3+ adjacent keys pressed simultaneously (single paw)
- Multiple clusters of keys across the keyboard (multiple paws)
- 10+ keys pressed at once (cat sitting on keyboard)
When detected, the keyboard locks for a brief period. If the cat-like pattern persists, it stays locked. Once the keys are released, the keyboard automatically unlocks.
- Detection Sensitivity - Adjust how sensitive the detection is
- Lock Duration - How long to wait before auto-unlocking
- Launch at Login - Start CatPaws automatically
- Show Notifications - Toggle visual feedback
- macOS 14.0 (Sonoma) or later
- Xcode 15.0 or later
- Swift 5.9 or later
# Clone the repository
git clone https://github.com/TechPreacher/CatPaws.git
cd CatPaws
# Open in Xcode
open CatPaws/CatPaws.xcodeproj
# Or build from command line
cd CatPaws
xcodebuild build -scheme CatPaws -configuration DebugUse the provided build script to create a signed and notarized release:
./scripts/build-release.shThis will:
- Build a Release configuration
- Sign with Developer ID
- Submit for Apple notarization
- Create DMG and ZIP packages
CatPaws/
├── App/ # App entry point and delegates
├── Configuration/ # Entitlements and Info.plist
├── MenuBar/ # Menu bar UI components
├── Models/ # Data models and state
├── Resources/ # Assets and localization
├── Services/ # Business logic services
├── ViewModels/ # MVVM view models
└── Views/ # SwiftUI views
- Keyboard Monitoring - Uses macOS Input Monitoring APIs to observe key events
- Pattern Detection - Analyzes key timing and adjacency to identify cat patterns
- Input Blocking - Uses CGEvent tap to intercept and block keyboard events
- State Management - SwiftUI-based reactive state for UI updates
CatPaws:
- Does not record or transmit any keystrokes
- Does not connect to the internet
- Only monitors key patterns, not actual characters typed
- All processing happens locally on your Mac
See our full Privacy Policy.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by every cat owner who has had their work interrupted by curious paws
- Built with SwiftUI and love for cats 🐱