Remote coding agents

Run the agent on your laptop. Steer it from your phone.

OpenLid keeps your Mac awake with the lid closed, so Claude Code, Codex, Pi, OpenCode, Hermes, local servers, builds, and test loops keep moving while you walk away. Native remote-control surfaces, web UIs, SSH sessions, and messaging bots can steer the session from your phone; OpenLid keeps the laptop side alive.

macbook — coding harness

$openlid on

✓Active — preventing sleep now

$claude --remote-control "OpenLid"

Session URL + QR code ready

// or: Codex App → Set up Codex mobile

// or: tmux + pi / opencode / hermes

phone — control surface

$open Claude app → Code

$open ChatGPT app → Codex

$open SSH / Tailscale / Telegram

✓Approve, redirect, and review from phone

The handoff

One Mac does the work. Your phone stays in control.

1

Arm OpenLid

Keep macOS awake before you close the lid.

2

Enable remote control

Use Codex mobile setup, Claude Code Remote Control, SSH, a web UI, or a messaging bridge before you leave.

3

Close the lid

The internal display can turn off while the local process keeps working.

4

Steer from phone

Approve actions, answer questions, review output, or redirect the task.

Native mobile control

You do not have to teach everyone SSH first.

Codex and Claude Code now have official ways to drive local work from web and mobile surfaces. That makes the OpenLid pitch easier: start the agent on the laptop that already has the repo, then use the product's own phone interface to keep supervising it.

OpenAI Codex

Connect the Codex App host to ChatGPT mobile.

Codex remote connections let you control a trusted Mac or Windows host from ChatGPT mobile. The host provides the repository, shell, local tools, browser setup, Computer Use, plugins, MCP servers, sandbox, and approvals.

  1. 01 Install and sign in to the latest Codex App on the Mac or Windows host.
  2. 02 Open Codex on that host and choose Set up Codex mobile in the sidebar.
  3. 03 Scan the QR code from ChatGPT mobile and finish the same account and workspace flow.
  4. 04 Keep the host awake and online; remote access stops when the host is unavailable.
Read the official setup docs

Anthropic Claude Code

Expose one local Claude Code session to web or mobile.

Claude Code Remote Control keeps the session running locally while claude.ai/code or the Claude app acts as the remote window. Your filesystem, MCP servers, tools, and project configuration stay on the laptop.

  1. 01 Use Claude Code v2.1.51 or later and sign in with a claude.ai subscription.
  2. 02 Run `claude remote-control`, `claude --remote-control`, or `/remote-control` inside an active session.
  3. 03 Open the session URL, scan the QR code, or find the named session in the Claude app.
  4. 04 Keep the local `claude` process, network connection, and laptop awake.
Read the official setup docs

Where OpenLid fits

Remote-control products can route prompts and approvals, but the connected local host still has to stay awake, online, and running the agent process. OpenLid targets that physical laptop failure mode: the moment the lid closes and macOS would normally sleep.

Bring any harness

Claude and Codex are not the whole market.

The same closed-lid problem shows up with every local harness. Some products ship a first-party phone bridge. Others expose a web server, RPC mode, SDK, messaging gateway, or nothing at all. The shared requirement is still boring and physical: the host laptop must remain awake, connected, and running the process.

Pi

Run the minimal harness locally; control it through your own bridge.

Pi is a small terminal coding harness with interactive, print/JSON, RPC, and SDK modes. It is intentionally composable, so phone control usually means tmux over SSH, Termux, Tailscale, or a purpose-built Telegram/RPC bridge.

  1. 01 Run `pi` on the Mac in tmux or another session manager before you leave.
  2. 02 Arm OpenLid if the MacBook is the host that owns the repo and shell.
  3. 03 Use SSH, mosh, Termux, or a Pi RPC/SDK bridge to keep prompting from your phone.
  4. 04 Treat community bridges such as Telegram bots as remote access surfaces: allowlist users, keep tokens private, and avoid public listeners.

OpenCode

Use OpenCode's web/server modes, then reach them over a private route.

OpenCode can run in the terminal, desktop, IDE, browser, or as a headless HTTP server. For phone control, keep the OpenCode process on the laptop and connect through the web UI, server API, VPN, Tailscale, or a mobile client that talks to that server.

  1. 01 Start OpenCode on the host with `opencode web` for a browser UI or `opencode serve` for an HTTP API.
  2. 02 Bind carefully: prefer localhost plus a private tunnel/VPN over exposing the server directly.
  3. 03 Use a phone browser or trusted mobile client to inspect sessions, send prompts, and review output.
  4. 04 Keep OpenLid active so the laptop-hosted server does not vanish when the lid closes.

Hermes Agent

Let messaging apps become the remote control surface.

Hermes is designed for persistent agent work and supports a messaging gateway for Telegram, Discord, Slack, WhatsApp, Signal, and more. It can also run through desktop, CLI, local, Docker, SSH, or cloud terminal backends.

  1. 01 Decide whether Hermes should live on the laptop, a desktop, or an always-on server.
  2. 02 If it lives on the MacBook, use OpenLid to keep the local backend awake while closed.
  3. 03 Enable the Hermes messaging gateway for Telegram, Discord, Slack, or another approved channel.
  4. 04 Lock down user allowlists, bot tokens, and backend credentials before using it away from the desk.

Custom harnesses

The pattern is always the same: keep the host alive, expose less.

Whether the harness is OpenHands, aider, Goose, a shell script, or a small SDK loop, the phone should be a control surface. The trusted host should keep the repository, API keys, tools, browser state, and approvals.

  1. 01 Run the harness in tmux, a service manager, or its own supervised process.
  2. 02 Use OpenLid when the trusted host is a closed MacBook.
  3. 03 Reach it through SSH, mosh, Screen Sharing, a VPN, or a narrow authenticated app-specific bridge.
  4. 04 Avoid unauthenticated public web servers, leaked bot tokens, and long-lived privileged shells.

If it can run in a terminal, it can use this pattern.

The phone does not need to become the development machine. It only needs a safe way to send prompts, approve actions, inspect diffs, and redirect work while the laptop remains the trusted execution environment.

Remote access

Use native remote control first. Keep a fallback.

OpenLid does not open ports, proxy traffic, or create a phone app. Use Codex and Claude Code's own remote-control flows when they fit your account and workflow. For Pi, OpenCode, Hermes, and custom harnesses, use the smallest bridge that works: SSH, mosh, Screen Sharing, a private web UI, a messaging gateway, or an authenticated mobile client.

Security boundary

Treat each remote-control surface as its own security decision. Native Codex and Claude Code flows use their own authenticated relays; SSH and Screen Sharing still need private networking, keys, device locks, and short-lived sessions. OpenLid keeps the laptop awake; it does not make remote access public by itself.

Start the agent. Close the lid. Keep moving.

OpenLid is the small piece that lets the rest of your mobile coding workflow stay alive on the machine that already has your repo, credentials, tools, and context.

Download OpenLid