Watch your AI work. Touch nothing.
🌐 Website: shubhransh-gupta.github.io/mirrorLock
MirrorLock is a macOS menu bar app for botsitting — leave your AI coding agents (Cursor, Claude Code, Copilot, etc.) running while you step away. It mirrors your live desktop behind a dimmed overlay and hard-locks keyboard, mouse, and trackpad at the macOS event-tap level. The screen stays fully visible so anyone can watch the agent work, but nothing can be touched. Unlock instantly with Touch ID.
Inspired by the concept of Wardlume, rebuilt from scratch with a simpler architecture and MIT license.
- Live mirror overlay — your desktop stays visible behind a subtle dimmed layer via ScreenCaptureKit
- Hard input lock — keyboard, mouse, trackpad, scroll, and media keys blocked via CGEventTap
- Touch ID unlock — rest your finger or use your password to unlock
- Intruder alerts — wrong touches trigger a red border flash and alert sound
- Multi-display aware — secondary screens are blacked out while locked
- Global hotkeys — activate and unlock from anywhere, even while focused in your IDE
- Local-only — no network, no analytics, no accounts
| Wardlume | MirrorLock | |
|---|---|---|
| Visual | Metal glass-shield shader | Live desktop mirror + dim overlay |
| Hotkey | ⌘⇧L | ⌘⇧M |
| Reactions | Character packs with images/sounds | Border flash + system sound |
| Onboarding | PermissionPilot SDK | Built-in settings panel |
| License | PolyForm Noncommercial | MIT |
| Min macOS | Tahoe 26+ | Sonoma 14+ |
- Launch MirrorLock — it lives in your menu bar.
- Press ⌘⇧M from anywhere to activate the mirror lock.
- Walk away. The screen stays visible; input is locked.
- Return and rest your finger on Touch ID — or press ⌘⇧U — to unlock.
MirrorLock needs three permissions, used only while the lock is active:
| Permission | Why |
|---|---|
| Screen Recording | Mirrors your live desktop behind the overlay |
| Accessibility | Locks keyboard, mouse, and trackpad |
| Input Monitoring | Detects intrusion attempts |
Grant them in Settings → Permissions inside the app, or via System Settings → Privacy & Security.
One command — downloads the latest release, installs to /Applications, and launches:
curl -fsSL https://raw.githubusercontent.com/shubhransh-gupta/mirrorLock/main/scripts/install.sh | bashOr download manually from Releases.
Requires Xcode 16+ on macOS 14+.
git clone https://github.com/shubhransh-gupta/mirrorLock.git
cd mirrorLock
open MirrorLock.xcodeprojSelect the MirrorLock scheme and press ⌘R.
Built with Swift, SwiftUI, AppKit, and ScreenCaptureKit.
The marketing site lives in docs/. Enable GitHub Pages under Settings → Pages → Deploy from branch → /docs on main to publish at https://shubhransh-gupta.github.io/mirrorLock.
Preview locally: open docs/index.html in a browser.
Icons are generated from scripts/generate_icon.py:
pip3 install -r scripts/requirements.txt
python3 scripts/generate_icon.pyMIT — use it however you like.