7-day free trialNow on macOS — iPhone & Watch soon

Let your Mac finish the job. Control it from your phone. 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 web dashboard, CLI, a webhook, or a Siri shortcut — with the native iPhone app coming soon. No remote shell. No screen access. No file access.

Download for macOSiPhone app — coming soon
Open dashboard

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

Control from any phone browser today — native iPhone and Apple Watch apps coming soon.

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 web dashboard or CLI — iPhone app soon

$
02Away

MacBook Pro

Online · lid closed

macOS
Keep Awake42m left

Reason: “Claude Code refactor”

03On your phone · todayWeb dashboard
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 you can hit from any phone browser — no remote shell, no screen sharing.

  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.

iPhone & Watch soon

Control it from your phone

Lock, sleep, mute, adjust volume, play/pause, start keep-awake, or cancel a pending lock — from the web dashboard in any phone browser today, or by Siri shortcut. Native iPhone and Apple Watch apps coming soon.

Latch it when done

Use the CLI, Claude Code hooks, or webhooks to warn, wait, and lock + sleep when work finishes — or fire a push alert that reaches your iPhone once the app ships.

Name your Macs

Set a friendly display name for any paired Mac from the web dashboard; it shows everywhere — dashboard, CLI, and activity log — and clearing it reverts to the hostname.

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 web, CLI, webhooks, or Siri shortcuts — iPhone app coming soon.

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 one-time code we email you, then enter the six-digit code from the menu-bar app to pair the Mac to your account. The iPhone and Apple Watch apps (coming soon) pair to the same account. Rename each Mac to a friendly display name once it's paired.

03

Trigger from anywhere

Use the web dashboard, run a CLI command, fire a webhook, or ask Siri through a Shortcut — with the iPhone and Apple Watch apps once they ship. 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 web or CLI — and from the iPhone app once it ships
  • Ping your iPhone with a push alert when a run ends (requires Pro; lands on your phone once the iPhone app ships)
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
terminal
# Push an alert to your iPhone (requires Pro)
$commandlatch alert "deploy finished"
Control surfaces

Control your Mac from wherever you are.

The same safe, allow-listed actions — reachable from the web dashboard, the CLI, webhooks, and Claude Code hooks today, with the iPhone app, Apple Watch, and Siri on the way.

Native iPhone appComing soon

Full mobile control for paired Macs, pending actions, in-app activity and notifications, shortcuts, and account state — paired to the same account.

Apple WatchComing soon

Glance at each Mac's online status from your wrist with a watch-face complication, and fire the same safe actions from a companion watch app.

Home Screen widgetComing soon

Tap Lock, Sleep, Mute, or Keep Awake straight from an iPhone Home Screen widget.

Siri / App IntentsApp Intents soon

Lock, sleep, lock + sleep, mute, adjust volume, and play/pause by voice. URL-based Siri Shortcuts work today; native App Intents arrive with the iPhone app.

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.

iPhone app — coming soon
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 CommandLatch workflow free for 7 days. Then $6/month.

No card required. All features included. One subscription covers the Mac agent, web dashboard, CLI, webhooks, Siri shortcuts, and audit log — plus the iPhone app when it ships.

Free Trial

No card required
7 daysfree

Everything in Pro, free for 7 days. Download the agent, pair your Mac, and try every feature — no payment information required.

  • Native macOS menu-bar agent
  • Native iPhone app (coming soon)
  • Apple Watch app and complication (coming soon)
  • Siri / App Intents (coming soon)
  • 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, play/pause, on-Mac notifications
  • Push alerts to your iPhone (coming soon)
  • Rename devices with a custom display name
  • Cancellable delayed Lock + Sleep
  • Full activity log
  • Secure scoped command relay
  • No shell, screen, file, keyboard, or mouse access
Download for macOS

iPhone app — coming soon

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 (coming soon)
  • Apple Watch app and complication (coming soon)
  • Siri / App Intents (coming soon)
  • 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, play/pause, on-Mac notifications
  • Push alerts to your iPhone (coming soon)
  • Rename devices with a custom display name
  • Cancellable delayed Lock + Sleep
  • Full activity log
  • Secure scoped command relay
  • No shell, screen, file, keyboard, or mouse access

One subscription covers every Mac you pair — billed per account, not per device. 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. A native iPhone app (coming soon) will support iOS 17 and later, and an Apple Watch app (coming soon) will support watchOS 10 and later. Windows support is on the roadmap; the data model and CLI are already platform-agnostic.

Is there an iPhone app?

Coming soon. A native iPhone app for controlling your paired Macs, viewing activity, managing shortcuts, and triggering safe actions — including Siri/App Intents for voice-triggered actions like lock, sleep, lock + sleep, mute, volume up, volume down, and play/pause — is on the way to the App Store, alongside an Apple Watch app. Until they ship, the web dashboard works great from your phone's browser.

Is there an Apple Watch app?

An Apple Watch app and a watch-face status complication are coming soon, alongside the iPhone app. The watch app shows each Mac's online status and lets you fire the same safe actions from your wrist; it pairs through your iPhone. Until then, use the web dashboard or CLI.

Do I need the Mac app and the iPhone app?

Only the macOS agent is required — it's what keeps your Mac awake and executes actions locally. You can trigger and cancel actions from anywhere with the web dashboard, CLI, webhooks, or Siri shortcuts today; the iPhone and Apple Watch apps will join them as additional control surfaces when they ship.

Will the iPhone app be able to run commands on my Mac?

No. Like every CommandLatch control surface, the iPhone and Apple Watch apps will only request CommandLatch's fixed allow-listed actions. They will not be able to 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. The web dashboard, CLI, webhooks, Siri shortcuts, and Claude Code hooks are all available today — the full workflow works without the iPhone app, and the iPhone and Apple Watch apps will be additional control surfaces once they ship.

Can CommandLatch notify my phone when a job finishes?

Yes — the alert action sends a push notification to your iPhone (for example from the CLI: commandlatch alert "build done", or from a webhook or Siri shortcut). You can set up alerts today; delivery to your iPhone starts once the iPhone app ships and registers for notifications.

Can I rename my Macs?

Yes. Give any paired Mac a friendly display name from the web dashboard; it shows everywhere — dashboard, CLI, and activity log — and (soon) in the menu-bar app and the iPhone and Watch apps. Clearing the name reverts to the hostname.

How does billing work, and can I cancel?

CommandLatch Pro is $6/month after a 7-day free trial (no card to start). One subscription covers every Mac on your account — it's per account, not per device. Manage or cancel anytime from the secure billing portal in the web dashboard. When a trial or subscription ends, your agent keeps running but remote commands pause until you resubscribe.

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 — and it forgets that token when you unpair or remove the device.

Start your next long run without babysitting your Mac.

Install the Mac agent and try a safe lock / sleep workflow in minutes — the iPhone and Apple Watch apps are on their way.

Download for macOSiPhone & Apple Watch apps — coming soonRead the 5-minute setup

7-day free trial · No credit card required · macOS 12+ · No remote shell