7-day free trialNow on macOS & iPhone

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 dashboard

7-day free trial · No card required · macOS 12+ · iOS 17+ · Lid-closed mode requires macOS 13+ · $6/mo after trial

commandlatch — zsh
01Start
$commandlatch run --ttl 90m --lock-sleep-after 5m -- pnpm test

Keep-awake started on MacBook Pro (90m)

… running pnpm test …

04Done

312 tests passed

Lock + Sleep scheduled in 5m · grace window active

Cancel from the iPhone app, web, or CLI

$
02Away

MacBook Pro

Online · lid closed

macOS
Keep Awake42m left

Reason: “Claude Code refactor”

03iPhoneCommandLatch
Lock + Sleep scheduled4:32

Built on a strict safety model

  • No remote shell
  • No screen or file access
  • Commands expire in 60s
  • Signed & notarized Mac app
The problem

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.

  1. 2:15 PM

    You kick off a long build or agent run and enable keep-awake.

  2. 2:18 PM

    You leave your machine and head out.

  3. 3:04 PM

    The task finishes. Tests pass. Work is done.

  4. Now

    Your Mac is still awake, unlocked, and burning battery.

Why CommandLatch

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.

How it works

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.

01

Install the agent

Download the macOS app. It runs quietly in your menu bar and starts on login — no dock icon, no clutter.

02

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.

03

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.

For developers

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
terminal
# Keep tests alive, then lock + sleep after success
$commandlatch run --ttl 90m --lock-sleep-after 5m -- pnpm test
.claude/hooks/stop.sh
# Claude Code Stop hook
$commandlatch done --notify --lock-sleep-after 5m
terminal
# Cancel if you came back
$commandlatch done --cancel
Control surfaces

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.

Security

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
Pricing

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 required
7 daysfree

Download 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

$6/ month

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.

FAQ

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