Skip to content
arpitagarwal1301Public

About

Lock your Mac keyboard & mouse, keep the screen visible — botsit your AI agents (Claude Code, Codex, Cursor) while you step away. Touch ID & Apple Watch unlock.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

Repository files navigation

Wardlume — a botsitting ward for your Mac

Latest release Platform: macOS Tahoe 26+ License: PolyForm Noncommercial 1.0.0

Cast a watching ward over your Mac. See your AI agents work. Intruders can't.

🌐 wardlume.github.io: Download · Docs · Support

Wardlume is a macOS menu-bar app for botsitting — leaving your AI coding agents (Claude Code, Cursor, …) running while you step away. It locks the keyboard, mouse, and trackpad behind a see-through shield, so the screen stays fully visible — anyone in the room can watch the agent work — but nothing can be touched. Unlock instantly with Touch ID. No screen recording needed.

Features

  • 🛡️ Clear glass ward (default) — a see-through "Input locked" screen over your live desktop, on every monitor. The screen stays readable while input is hard-locked at the macOS event-tap level, and it needs no Screen Recording: macOS draws your desktop beneath it, Wardlume never reads a pixel.
  • 💧 Live glass (optional) — an animated Metal refraction over the live desktop. Pick it in Settings → Overview → Ward look or the menu bar; it asks for Screen Recording only then. On battery at 15% or below it switches to Clear glass by itself to save power (adjustable, or off).
  • 🧭 Guided setup — a first-launch wizard walks you through the two required permissions and two optional ones (request → grant → verified live), powered by PermissionPilot, our open-source permissions-onboarding SDK for Mac apps.
  • 👆 Touch ID unlock — rest your finger or press your unlock shortcut; falls back to your password.
  • ⌚ Apple Watch unlock — tap the Mac, then double-press your watch's side button. Built-in setup steps and a "Send test to watch" check are in Settings → Lock & unlock.
  • ⌨️ Configurable hotkeys — remap the activate and unlock shortcuts, with an optional no-auth emergency-exit key.
  • 📷 Intruder photo (optional, off by default) — one photo of anyone who fails to unlock (wrong Touch ID or password), with a notice on the ward and the camera light on. Photos stay on your Mac and auto-delete after 30 days.
  • 🎭 Bait-and-switch reactions — a wrong touch springs a reaction image and sound. Ships with Silent Professional, Wizard, and Grumpy Old Man packs, or drop in your own cover image, reaction image, and audio.
  • ☕ Keeps your Mac awake — while the ward is up, the display and system won't idle-sleep, so the ward holds and your agents keep running. On by default; toggle it in Settings → Automation.
  • ⏱️ Auto-ward when idle — optionally casts the ward after 1–15 minutes without keyboard or mouse input, with a 10-second countdown you cancel by moving the mouse. Off by default.
  • 🚀 Launch at login — starts quietly in the menu bar when you log in, so it's always ready. On by default; toggle it in Settings → Automation.
  • 🖥️ Multi-display aware — the ward appears on the display you activate it from. Other monitors stay visible but locked (or blacked out, your choice), and plugging or unplugging a monitor never unlocks it.
  • 🔒 Local-only, and provably so — the app is sandboxed with no network entitlement, so macOS blocks it from the internet. No analytics, no accounts, nothing leaves your Mac. Settings → Overview → Privacy & trust shows this live, and one Terminal command lets you verify it yourself.
  • 🔄 In-app updates — signed updates via the open-source Sparkle updater, whose downloader runs in its own sandbox. Wardlume asks once before checking automatically, and the update dialog lets you turn automatic installs on or off. You can also change both in Settings → Advanced.

Wardlume isn't notarized by Apple yet. Homebrew is the cleanest install — it sidesteps the Gatekeeper "damaged" prompt entirely. The direct downloads work too, with one small one-time step.

Homebrew (recommended)

brew tap arpitagarwal1301/tap
brew trust arpitagarwal1301/tap
brew install --cask wardlume

Installs cleanly — no "damaged" prompt, no quarantine cleanup. Homebrew 6+ requires trusting a third-party tap once before installing from it; on older Homebrew, brew trust doesn't exist and isn't needed — just skip that line.

Installer (.pkg)

  1. Download Wardlume-1.9.0.pkg from the latest release.
  2. Open it; if macOS calls it "unidentified," right-click → Open (or System Settings → Privacy & Security → Open Anyway) once.
  3. Click through the installer — Wardlume lands in Applications and opens normally.

Disk image (.dmg)

  1. Download Wardlume-1.9.0.dmg and drag Wardlume into Applications.
  2. macOS will say "Wardlume is damaged" — it isn't; unsigned downloads are just quarantined. Clear it once:
    xattr -dr com.apple.quarantine /Applications/Wardlume.app

Requires macOS Tahoe 26+ on Apple Silicon.

Usage

  1. Launch Wardlume — it lives in your menu bar.
  2. Press ⌘⇧L from anywhere (even while focused in your IDE), or use the menu, to activate the ward.
  3. Walk away. The screen stays visible under the see-through shield; keyboard, mouse, and trackpad are locked — and your Mac stays awake, so the ward holds and your agents keep running.
  4. Return and rest your finger on Touch ID — or press ⌘⇧U — to unlock.

Want a guaranteed way out? Enable the optional emergency-exit shortcut in Settings → Advanced (off by default).

Permissions

On first launch a guided setup (built on PermissionPilot) walks you through the two permissions Wardlume needs, plus two optional ones you can skip:

Permission Why
Accessibility Lock the keyboard, mouse, and trackpad
Input Monitoring Detect intrusion attempts
Screen Recording (optional) Only for the Live glass look: render the live desktop through refracting glass (never saved or transmitted). The default Clear glass doesn't need it.
Camera (optional) Only for Intruder photo (off by default)

Choose Live glass later and Wardlume explains what Screen Recording is used for before macOS asks; the look switches once the grant takes effect (after one Quit & Reopen). If Screen Recording is ever turned off, the ward simply uses Clear glass and stays locked.

Once Screen Recording is granted, macOS may also ask one time whether Wardlume can "bypass the system private window picker" to capture the screen directly. Wardlume triggers this at launch, before any ward is up, so you can click Allow right away.

Keeping your Mac awake needs no permission — it uses a standard power assertion (the same mechanism as caffeinate), held only while the ward is active.

Clicking Enable adds Wardlume to that permission's list in System Settings, so you usually just flip the switch. A small helper floats beside System Settings with a draggable Wardlume icon in case it isn't listed, and closes itself once the permission is on. The wizard re-checks live as you grant and offers a one-click Quit & Reopen for the grants macOS only applies after a relaunch. If a permission goes missing later, the menu bar shows Finish permissions setup… to reopen it — and when everything is granted, opening Wardlume lands on Settings → Overview instead.

FAQ

Does Wardlume take photos of people?

Only if you turn on Intruder photo (off by default), and then only when someone fails to unlock: a wrong Touch ID until macOS gives up, or a wrong password. Never when they just cancel, never covertly: the camera light always shows, and the ward says "Failed unlocks are photographed".

Photos stay on your Mac and can't leave it, because the app has no internet access. They're deleted after 30 days by default. See them in Settings → Intruder photo after you unlock, where Open in Finder shows the folder.

Is Wardlume safe? Does it need Screen Recording?

No, not by default. The default Clear glass ward is a see-through window: macOS draws your desktop beneath it, and Wardlume never captures a pixel. Screen Recording is only for the optional Live glass look (a refracting glass), which asks for it only when you pick it. If you do, Wardlume can't send what it sees anywhere:

  • No internet, enforced by macOS. The app is sandboxed with no network entitlement, so macOS refuses every connection it tries. Updates are fetched by Sparkle's separate open-source downloader, which has its own sandbox and only downloads the public update feed and signed updates.
  • Captures only while a Live glass ward is up. Frames go straight to the GPU to draw the glass and are never saved or recorded. macOS's recording indicator shows exactly when capture is on.
  • Check it yourself. Settings → Overview → Privacy & trust shows these facts live, or run codesign -d --entitlements - /Applications/Wardlume.app and look for the missing network.client. See Privacy → Verify it yourself, including how to confirm it with LuLu or Little Snitch.
Is my screen hidden while warded?

No, and that's the point. The screen stays visible so anyone nearby can watch your agent work. Only input is locked. If you'd rather other monitors go dark, choose Settings → Displays & gestures → Other monitors → Black out.

What if I get stuck?

You always have a way out: Touch ID / your unlock shortcut, your Apple Watch, or ⌘⌥Esc → Force Quit Wardlume (macOS reserves that shortcut, so no app can block it). You can also enable an emergency-exit key. See the Safety guide.

Does it work with Claude Code, Codex, Cursor, …?

Yes. Wardlume doesn't care what's running. It locks input for the whole Mac while every app keeps working on screen, so any agent, build, render, or download carries on.

Apple Watch unlock isn't working

Open Settings → Lock & unlock → Unlock with Apple Watch and follow the setup steps. In short: your watch has to be signed in to the same Apple Account, have a passcode, be on your wrist and unlocked, and be enabled in System Settings → Touch ID & Password. Then press Send test to watch.

How do I uninstall?

First turn off Settings → Automation → Launch at login (or remove Wardlume in System Settings → General → Login Items). Then run brew uninstall --cask wardlume, or quit Wardlume and drag it from Applications to the Trash.

Is it free?

Yes, for any noncommercial use (personal, study, hobby, nonprofit). Commercial use needs a license. See Terms.

Support

More

  • Safety guide — every way out, and what the ward blocks
  • Changelog — what's new in each version
  • PermissionPilot — the zero-dependency SwiftUI permissions/onboarding SDK behind Wardlume's setup wizard (also ours, MIT)
  • Privacy · Terms
  • License — PolyForm Noncommercial 1.0.0 (noncommercial use; commercial use reserved)

Built with 🪄 by Arpit Agarwal. Inspired by every Mac running AI agents at coffee shops worldwide.

About

Lock your Mac keyboard & mouse, keep the screen visible — botsit your AI agents (Claude Code, Codex, Cursor) while you step away. Touch ID & Apple Watch unlock.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors