Let your Mac finish the job. Control it from your iPhone. Lock it when it's done.
CommandLatch keeps builds, tests, uploads, renders, and AI coding agents alive while you step away — then locks and sleeps your Mac automatically when the work ends, or lets you lock, sleep, and mute it yourself from the iPhone app, Siri, CLI, webhook, or web dashboard. No remote shell. No screen access. No file access.
Open dashboard7-day free trial · No card required · macOS 12+ · iOS 17+ · Lid-closed mode requires macOS 13+ · $6/mo after trial
✓ Keep-awake started on MacBook Pro (90m)
… running pnpm test …
✓ 312 tests passed
⤷ Lock + Sleep scheduled in 5m · grace window active
Cancel from the iPhone app, web, or CLI
MacBook Pro
Online · lid closed
Reason: “Claude Code refactor”
Built on a strict safety model
- No remote shell
- No screen or file access
- Commands expire in 60s
- Signed & notarized Mac app
Your task finished an hour ago. Your Mac is still wide awake.
Keep-awake tools do one thing: they stop your machine from sleeping. When the build, test run, or agent session ends, nothing locks it back down — so your laptop sits there, unlocked and draining, until you remember. You are not at the keyboard when the decision matters. CommandLatch puts a safe cancel, lock, sleep, and mute button on your iPhone — without turning your phone into a remote shell.
2:15 PM
You kick off a long build or agent run and enable keep-awake.
2:18 PM
You leave your machine and head out.
3:04 PM
The task finishes. Tests pass. Work is done.
Now
Your Mac is still awake, unlocked, and burning battery.
Keep it alive. Control it. Latch it down.
Three jobs — keep your Mac awake, control it from anywhere, and lock it down when work ends — without ever exposing a remote shell.
Keep the work alive
Start timed keep-awake sessions for long jobs, with lid-closed mode on supported Macs.
Control it from iPhone and Siri
Lock, sleep, mute, adjust volume, start keep-awake, or cancel a pending lock from the native iPhone app, Siri, or the web dashboard.
Latch it when done
Use the CLI, Claude Code hooks, or webhooks to warn, wait, and lock + sleep when work finishes.
Remote without remote access
CommandLatch never exposes shell, screen sharing, files, typing, clicking, or a remote terminal.
From download to remote control in three steps
No ports to forward, no remote access to expose. Pair once and reach your Mac from the iPhone app, Siri, CLI, or web.
Install the agent
Download the macOS app. It runs quietly in your menu bar and starts on login — no dock icon, no clutter.
Pair your device
Sign in to the dashboard with a magic link, then enter the six-digit code from the tray to pair the Mac to your account. Install the iPhone app and it pairs to the same account.
Trigger from anywhere
Tap an action in the iPhone app, ask Siri, run a CLI command, fire a webhook, or use the web dashboard. The macOS agent validates and runs it locally.
Built for the way you actually work
CommandLatch is CLI-first. Anything you can run in a terminal can start a keep-awake session and schedule a safe lock or sleep when it’s done.
- Wrap any command — keep-awake runs for its whole lifetime, then cleans up
- Drop in a Claude Code Stop hook and your Mac latches itself when the agent stops — no remote window left open
- Fire a webhook from CI, a cron job, or another tool to trigger safe actions
- Cancel a scheduled lock + sleep from the iPhone app, web, or CLI
Control your Mac from wherever you are.
The same safe, allow-listed actions — reachable from the iPhone app, Siri, the web dashboard, the CLI, webhooks, and Claude Code hooks.
Native iPhone app
Full mobile control for paired Macs, pending actions, activity, shortcuts, and account state.
Siri / App Intents
Lock, sleep, lock + sleep, mute, and adjust volume by voice.
Web dashboard / PWA
Pair devices, manage actions, billing, logs, webhooks, and settings from any browser.
CLI
Wrap long-running commands, keep the Mac awake, and lock/sleep after completion.
Webhooks
Trigger safe scoped actions from automations, CI, cron, or other tools.
Claude Code hooks
Lock + sleep your Mac when an agent run ends — a safe latch, not a remote window into the session.
Safe by design, not by trust
CommandLatch is the opposite of a remote shell or screen share. The cloud can only ask for actions you’ve already allow-listed — so a compromised token can mute your Mac, never own it. No shell, no screen, no files, no agent. These rules are non-negotiable.
- No arbitrary cloud-triggered shell — not by default, not ever
- Every command uses a strict, allow-listed action enum
- Every command expires (60 seconds by default)
- Idempotent delivery — duplicate commands are ignored, not re-run
- A per-device remote-disable switch you control locally
- Every command’s result is recorded in your activity log
Try the full Mac + iPhone workflow free for 7 days. Then $6/month.
No card required. All features included. One subscription covers the Mac agent, iPhone app, Siri controls, web dashboard, CLI, webhooks, and audit log.
Free Trial
No card requiredDownload the agent, pair your Mac, and try every feature — no payment information required.
- Native macOS menu-bar agent
- Native iPhone app
- Siri / App Intents
- Web / PWA dashboard
- CLI and Claude Code hooks
- Webhooks and shortcut triggers
- Lid-closed keep-awake on supported Macs
- Lock, sleep, Lock + Sleep, mute, volume, notifications
- Cancellable delayed Lock + Sleep
- Full activity log
- Secure scoped command relay
- No shell, screen, file, keyboard, or mouse access
Pro
Subscribe after the trial to keep every feature. Billed monthly — cancel or pause anytime.
- Native macOS menu-bar agent
- Native iPhone app
- Siri / App Intents
- Web / PWA dashboard
- CLI and Claude Code hooks
- Webhooks and shortcut triggers
- Lid-closed keep-awake on supported Macs
- Lock, sleep, Lock + Sleep, mute, volume, notifications
- Cancellable delayed Lock + Sleep
- Full activity log
- Secure scoped command relay
- No shell, screen, file, keyboard, or mouse access
No long-term commitment. Subscription management happens through the secure web billing portal — cancel anytime.
Questions, answered
Still curious about something? The product brief and security model go even deeper.
Can CommandLatch run arbitrary commands on my Mac?
No. The cloud can only request a fixed set of allow-listed actions — lock, sleep, keep-awake, volume, and so on — each identified by a strict enum, and the agent refuses anything outside it. There is no remote shell, from the iPhone app or anywhere else. (Locally-approved custom scripts are a planned extension that will keep the same approve-on-the-machine model.)
Which platforms are supported?
The macOS agent runs on macOS 12 Monterey and later as a lightweight menu-bar app, with lid-closed keep-awake on macOS 13 Ventura and later. The native iPhone app supports iOS 17 and later. Windows support is on the roadmap; the data model and CLI are already platform-agnostic.
Is there an iPhone app?
Yes. CommandLatch has a native iPhone app for controlling your paired Macs, viewing activity, managing shortcuts, and triggering safe actions. It also supports Siri/App Intents for voice-triggered actions like lock, sleep, lock + sleep, mute, volume up, and volume down.
Do I need the Mac app and the iPhone app?
Yes, for the full workflow. The macOS agent is what keeps your Mac awake and executes actions locally. The iPhone app is a control surface for triggering and cancelling those actions from anywhere.
Can the iPhone app run commands on my Mac?
No. The iPhone app can only request CommandLatch's fixed allow-listed actions. It cannot run shell commands, read files, see your screen, type, click, or remote-control the Mac.
How is this different from a remote desktop, SSH, or Claude Code’s Remote Control?
Those give your phone a live window into your Mac — a remote shell, your screen, or an AI agent that can read files and run commands. CommandLatch is the opposite: your phone gets a fixed set of safe actions — lock, sleep, keep-awake, mute, volume — and nothing else. It’s also tool-agnostic: it keeps any long job alive (builds, CI, renders, uploads, agent runs) and latches the Mac down when it ends, not just one app’s sessions. The two are complementary — keep your Mac awake so a remote session survives the run, then lock + sleep it the moment work stops.
Can I use CommandLatch without the iPhone app?
Yes. You can use the web dashboard, CLI, webhooks, Siri shortcuts, and Claude Code hooks. The iPhone app is the best mobile experience, but it is not the only control surface.
What happens if my Mac is offline when I send a command?
Commands expire 60 seconds after they’re created. If the agent doesn’t pick one up in time, it’s marked “expired” in your activity log and never runs — so a stale command can’t fire hours later.
Does it keep my machine unlocked to work?
No. Keep-awake only prevents sleep — it never disables your lock screen or password. When the session ends or you send a lock, your normal security applies immediately.
Where does my data live?
Commands route through your own account on a Supabase-backed backend with row-level security, so devices and logs are scoped to you. The desktop agent keeps its pairing credentials in a permission-restricted local file today, with OS keychain storage planned as a hardening step.
Start your next long run without babysitting your Mac.
Install the Mac agent, add the iPhone app, and try a safe lock / sleep workflow in minutes.
7-day free trial · No credit card required · macOS 12+ · iOS 17+ · No remote shell