Does it snoop on my stuff?
No. It never asks for Accessibility, Screen Recording, Automation, or Full Disk Access — the heavy macOS permissions.
It only asks for two things:
- Admin password — entered once, when installing the background service. Used for operations that genuinely require root, like editing
pmsetsleep settings. - Notifications — deniable. Denied, Enhanced Mode just won't show a banner when it acts; everything else works.
Bluetooth permission on macOS 15 is optional: with it, it uses a private API to switch Bluetooth off; without it, it falls back to a system command and reports the result honestly.
All state, snapshots and reports stay on your machine under ~/Library/Application Support/HeadlessKnightMaster/. The app never goes online, never uploads anything.
Which permissions does it need? Why am I seeing system dialogs?
The dialogs you see in System Settings come from macOS itself; the app only triggers them. Three may appear:
- Admin password: when installing the
com.headlessknight.helperdaemon. Once, never again. - Notifications: on the first notification. Deniable.
- Bluetooth: on macOS 15, turning Bluetooth off requires authorization. Deniable — falls back to the command-line route.
If a dialog keeps blocking you, clicking Deny still works — the app marks the fact in its report instead of pretending it succeeded.
How does it know whether the machine was woken?
When you leave, it records a log timestamp (logAnchor). On return it reads pmset -g log from that point and classifies each entry by its opening tokens:
- Starts with
DarkWake→ dark wake DarkWake to FullWakelasting under 5 seconds → notification wakedue to UserActivity/ HID / any full wake over 5 seconds → real wake
The window runs from the first Entering Sleep after departure to the last wake event. If there isn't a single entry, the report plainly says “never slept this time” — no hedging.
Logs rotate, hence the anchor; time deltas are computed in UTC, so crossing time zones doesn't skew them.
Why won't my computer sleep?
The most common cause is disablesleep=1 — sleep disabled globally at the system level. This layer outranks everything: killing processes does nothing, because it never depended on a process in the first place.
Next come process assertions: any app can request “don't let me sleep”. Audio-playing Chrome, a busy Electron app, certain system processes all count.
The third layer is network wake (womp) — kernel-level, only fixable via settings.
Run the app's built-in checkup command to see exactly who's blocking on your machine:
/Applications/无头骑士大师.app/Contents/MacOS/Knight --diagnose
It prints every process holding a sleep assertion and for how long, current pmset settings, Bluetooth state, and scheduled wake tasks. Read-only; changes nothing.
Single display / plain MacBook — does it work?
Both. Unplug detection keys on display ID, not count:
- Mac mini / Studio (one display): after unplugging, the online display set is empty → triggers
- MacBook + external: only the built-in remains, the external's ID vanished → triggers
- Headless MacBook (built-in removed): a ghost display may report in — count still 1, but the baseline ID is gone → triggers
It also compares EDID vendor and model against the baseline, guarding against a shadow display reusing the original ID.
And if your display stack is truly exotic, the unplug page carries a “sleep now” button as an escape hatch — you can't get stuck on that page.
What does turning off Bluetooth affect?
Off goes a whole chain of background wake sources: Handoff, AirDrop, Apple Watch unlock, Sidecar, Universal Clipboard, Continuity Camera, Instant Hotspot, Bluetooth peripherals — and offline Find My.
The Find My caveat deserves emphasis: with Bluetooth off, if the machine is lost and whoever holds it doesn't power it on, it can't be located. That's a hardware-level trade-off the app cannot have both ways.
If Bluetooth headphones are connected when you start away mode, it warns you “turning off Bluetooth will disconnect them” first.
What is Enhanced Mode? Should I turn it on myself?
No need — it's on by default. The switch lives in the app's Settings → Enhanced Mode, and yes, you can turn it off.
During away mode, if the machine stays continuously awake for 5 minutes, it forces sleep, with a 30-second cancelable countdown before acting.
Two exceptions where it never acts: a display is plugged in, or a remote login session is active — clearly, you're using it.
Its purpose is catching sleep requests that never actually slept, and accidental wakes with nobody around.
What is the “No built-in display” switch for?
For machines whose built-in display was physically removed. macOS doesn't know; it still reports a built-in display online with perfectly normal dimensions, vendor, model and serial — the program can't tell real from phantom by parameters.
Without the switch, the moment you unplug, that phantom signal reads as “somebody's at the machine” — unplugged and it still won't sleep.
Regular laptops must not tick it: a real built-in display with the lid open means a human is using the machine, and it shouldn't be forced asleep.
Will a backpack squeezing the keyboard or trackpad wake it?
Yes. And software cannot block it — keys and the trackpad are hardware-level input; the system wakes the instant it receives them. No app gets a say.
To prevent it physically, add a barrier: an A-panel crystal shell, or a 3D-printed cover plate over keyboard and trackpad. Skip this and accidental wakes will happen.
What this software does solve are the other two things: preventing “fake sleep” — UI says asleep, keyboard backlight still on — and pushing the machine back to sleep after an accidental wake (Enhanced Mode, on by default).
The right combo: a physical barrier against presses + Enhanced Mode as the catcher. Miss either half and you still leak wakes.
What if I forget to end away mode?
When you plug the display back in (which itself wakes the machine), the app posts one notification: welcome back, don't forget to end away mode.
Ignore it, and the menu bar icon stays solid (away state). Click it to see the report and end the mode — the app restores everything per the snapshot.
If a previous restore failed, the snapshot is deliberately kept; the home page shows “last restore failed” with a retry button. Deleting it would be far worse: the next “original settings” snapshot would capture the already-dirtied values, and you could never get back.
How do I uninstall?
Drag the app to the Trash, then run:
sudo rm -f /Library/PrivilegedHelperTools/com.headlessknight.helper \
/Library/LaunchDaemons/com.headlessknight.helper.plist
sudo rm -rf ~/Library/Application\ Support/HeadlessKnightMaster
sudo rm -f ~/Library/LaunchAgents/com.headlessknight.app.plist
Bluetooth, sharing services and Time Machine changes are all restored when you tap “Done” normally inside the app. If you never did, turn Bluetooth back on and re-enable the services by hand.
Does it cost anything?
No. No ads, no in-app purchases, no paid tier, no telemetry, no account, no network — except the one download.
A tool made by one person, built to work.
Compatibility
- OS
- macOS 13 Ventura or later
- Architecture
- Apple Silicon (arm64)
- Form
- Menu bar app, no Dock icon
- Network
- Not needed
No Intel Mac build yet.
The app's own UI is currently in Chinese — English support is on the way.
Also note: some things are hardware-level and beyond any software — any-key wake, pressed trackpad, power button, Touch ID, magnetic accessories snapping close. Full list on the What it doesn't do page.
Still stuck?
Check the support page first — it shows how to collect a diagnostic report, and feedback with one attached gets answers much faster.
Go to support