Ajar app icon

Ajar

Brightness that follows your lid. Awake that follows your work.

Featured on Product Hunt.

Ajar - Lid Angle Sync & Keep Awake for AI Agents on Mac | Product Hunt

Open the lid.

Light rises with it.

Close it and the Mac is gone.

Brightness, keyboard, volume.

One curve maps the lid from closed to fully open. Drag a single point to shape it. Display brightness rides the curve by default. Turn on keyboard backlight and system volume to follow along.

The lid sets the fraction. Your preference sets the ceiling. Touch brightness, keyboard, or volume manually and Ajar reads it as your preference at that angle, then keeps following the lid from there.

Awake while the agent works.

macOS sleeps about five minutes after the keyboard goes quiet. AI agents in the terminal think between keystrokes, run tools, write files, then come back. The system reads all of that as idle. Claude Code, Codex, Gemini CLI: Ajar watches the session files they write and holds the Mac awake until the files stop moving. Then it steps back.

Write your own rules too. Six conditions, combined any way you like. From the menu bar, keep the Mac awake for 30 minutes, an hour, two, or indefinitely.

Lid open, stay up. Awake while the lid is past an angle you set.

Walk away, close the lid, and the Mac sleeps the moment you do.

Pin to one app. Awake while it's open, or only while in front.

Logic Pro in a session. Final Cut mid-render. Xcode while a build runs.

Wait on a CLI job. Awake while a named background process is running.

Encoding with ffmpeg. Syncing with rsync. A coding agent in the terminal.

Match a network. Awake while on a Wi-Fi network you trust.

At the office desk: yes. At a cafe: no. Whatever your line is.

Wait on a volume. Awake while a specific disk is mounted.

A Time Machine pass. An external SSD plugged in. A render to a scratch volume.

Follow the cable. Awake while the Mac is plugged in.

Wide awake on the wall, normal sleep on battery.

Ajar status screen showing live readouts

All on one screen.

One screen for the lid sensor, the synced outputs, the awake state, and lifetime counts. Useful for checking a curve at a glance, or seeing how long Ajar has kept the Mac awake.

Sensor lid angle. Sync anchor and outputs. Awake state. Usage total run time, brightness applied, time kept awake.

Where it goes to work.

  • Agent Care, hands off.

    Claude Code, Codex, and Gemini CLI each write a session file as they think. Ajar watches those files directly. The Mac stays awake while the file moves, no matter how quiet the keyboard. The agent finishes the job, the file stops moving, the Mac goes back to sleep. You never had to touch a thing.

  • Set by the lid.

    The hinge knows the exact angle. Ajar maps that angle to three outputs at once: display brightness, keyboard backlight, and system volume. One curve from closed to fully open, shaped by a single point you drag. Change rooms, change the pose, and the three settings catch up without a Control Center reach.

  • Until the work stops.

    Final Cut renders, ffmpeg encodes, rsync overnighters, Xcode builds, training runs. The fan and the CPU graph make the work obvious, but the five-minute idle timer doesn't see it. Point Ajar at a disk that's mounted, a process that's running, a Wi-Fi you trust, or just the lid open past an angle. The Mac stays up while that signal is real and goes down the moment it isn't.

  • Past the toggle.

    Other keep-awake apps are switches and stopwatches. Flip on, forget to flip off, drain the battery overnight. Ajar runs on signals instead: a session file moving, a process alive, a disk mounted, the lid past an angle, the Wi-Fi you're on. Awake while a signal is real. Asleep the moment it drops. Nothing to set in the morning, nothing to undo at night.

Frequently asked.

  • Which Macs and macOS versions does Ajar support?

    Every Apple Silicon Mac running macOS 15 (Sequoia) or later. We develop and test on a MacBook Pro with M4 Pro. The Awake rules run on every Apple Silicon model, from MacBook Air to Mac Studio. Sync reads the MacBook hinge sensor, so the lid-driven curve is MacBook only. On a desktop Mac, the rest of Ajar still works.

  • Does Sync work on external displays?

    Studio Display follows the same lid-angle curve as the built-in screen today. Other external displays connected to a MacBook are on our roadmap.

  • How does Awake know an AI agent is actually working?

    Claude Code, Codex, and Gemini CLI each append to a session file on disk while they think and call tools. Ajar watches the file's modified time. As long as the file moves, the rule is active. The quiet threshold defaults to 30 seconds, settable to 10, 60, 120, or 300.

  • What happens if I adjust brightness or volume manually?

    Ajar reads the new value as your preference at the current lid angle, then keeps scaling the curve from there. Manual changes anchor the curve instead of fighting it.

  • Will Ajar drain my battery?

    Ajar only blocks idle sleep. The display still dims and sleeps on its own schedule, and the Mac drops into system sleep the moment your last active rule clears. Nothing runs in a loop. Everything is signal-driven.

More questions on the Ajar FAQ page.

Ajar menu bar open on a MacBook

Lives in the menu bar.

Click the icon. Pause Ajar. Pick a Keep Awake duration. Open Status for the live readout.

Made for Apple Silicon Macs running macOS 15 or later.