Skip to content

The lpm companion for iPhone & iPad

Control Claude Code and Codex on your Mac from your iPhone.

lpm Link, the lpm app for iPhone and iPad, pairs with lpm on your Mac and puts every terminal in your pocket, live on whichever screen has control. Prompt Claude Code, Codex, or any running agent with a real composer, review and push the diff it just wrote, and get an encrypted alert the moment it’s waiting on you.

Get lpm for your Mac

Install lpm on your Mac and lpm Link on your iPhone or iPad, then scan one QR code to pair.

Desktop + iPhone

Watch one session change hands

A Claude Code turn stops for approval on the Mac, the push lands on your iPhone, and you answer there. The Mac then takes the terminal back; the session itself never leaves the Mac.

An animation of one Claude Code session handed between a Mac and an iPhone. The agent pauses before it commits, and a push reaches the locked phone. Tapping it moves the terminal to the phone, so the Mac tab reads “Active in iPhone” and offers Take control. The reply goes in from the phone, the agent keeps working, and then the Mac takes the terminal back.

The away-from-desk tax

Your agents keep working — but only while you're sitting in front of them

AI coding agents run for minutes at a time, then wait for a prompt, a review, or a push. If you're not at your Mac, every one of those hand-offs is dead time you never even see.

Agents stall the second you step away from your desk

You kick off a long refactor with Claude Code and go make coffee. Two minutes in, the agent hits a question and waits. It sits idle until you're back at the keyboard — and you have no idea it stopped.

A one-line answer means a full trip back to your desk

The agent just needs a yes, a file name, or a quick correction. But typing that one line means being physically in front of your Mac. The smallest input becomes the biggest interruption.

The change is done, but you can't review or ship it

Codex finished ten minutes ago. The diff is sitting there waiting to be read, committed, and pushed — but reviewing it and opening a PR both mean walking back to the machine before anything moves.

Alongside the built-in remote control

Already driving Claude Code from your phone?

Claude Code ships its own remote control, and it is a good way to keep one agent moving. The lpm companion draws a wider circle around the same idea.

Any agent, not one
Claude Code, Codex, Gemini CLI, or whatever else you run in an lpm terminal all open on your phone the same way, and Claude Code and Codex also send status and push alerts.
The real session, not a transcript
You get the actual terminal from your Mac, opened with its recent scrollback already on screen, and you type into that same session — including the prompts and full-screen views an agent draws.
Review and ship, not just prompt
Read the diff file by file, commit the files you pick with an AI-written message, pull, push, and — where the GitHub CLI is set up — open the pull request from the phone.
The project, not only the agent
Start and stop services, start a project under a different profile, run saved actions, and duplicate a project to fan work out — the workspace around the agent comes with it.
Every machine, not one session
An Activity list across all your projects, scheduled automations, plan-limit meters, and several Macs or Linux servers, switched from one menu.
Straight to your Mac
Pair by scanning a QR code from lpm on your Mac. Terminal output and keystrokes travel directly between the two devices, and there is no account to create.
The live terminal

Your Mac terminals, live in your pocket

Not a status page and not a remote desktop — the real session, streamed to your phone and ready for your thumbs.

The session itself, not a screenshot

Open any of your Mac's terminals and, once your phone has control, it streams live, drawn the way the desktop draws it and with its scrollback. It's the same session, not a copy. Leave the app and come back, and it catches up on the output you missed.

Take control with one tap

A terminal is live in one place at a time. When it's active on your Mac, your phone shows a Take control button: tap it and the session moves to your phone, resized to fit. Take it back on the Mac with one click.

The keys a terminal actually needs

A special-keys row sits above the keyboard: esc, tab, ctrl+C, arrows, enter, and paste. Answer a prompt, interrupt a run, or drive a full-screen TUI without hunting for keys your phone doesn’t have.

Scroll it like a native app

Drag to scroll back through output with your thumb, even inside full-screen agent screens, where it scrolls the app's own view. The scrollback you'd reach for on the Mac is right there under your finger.

The composer

A full prompt composer, not just a keyboard

The same composer you rely on in the desktop app — rewrites, slash commands, mentions, attachments, and history — rebuilt for your thumbs.

Rewrite the prompt with AI

Run any of your saved composer actions — or a free-form instruction — on the draft you're writing. Generate up to five variants, compare them, then pick and edit the one that says it best before you send.

Slash commands that know the agent

Type / in a Claude Code or Codex terminal and get autocomplete for the commands that CLI supports, your own custom commands included, argument hints and all.

@-mention real context

Pull the agent’s world into the prompt with @: changed files, any file or folder, a git branch, this terminal’s recent output, or a service’s logs — injected as context so you don’t have to describe it by hand.

Start on the Mac, finish on the phone

What you type in a terminal's prompt box shows up in the same terminal's prompt box on your Mac, and the other way round, without overwriting you mid-sentence. Each terminal keeps its own draft.

Attach a photo, screenshot, or file

Add up to ten images from your library, snap one with the camera, paste a screenshot, or pick a file. lpm uploads it to your Mac and drops the path into the prompt so the agent can read it — a bug shot or a design reference, straight from the field.

Searchable prompt history

Every prompt you've sent, from the Mac or the phone, is saved and searchable, with drafts, favorites, and folders. Load an old prompt back into the composer to tweak it, or resend it as-is.

Review & ship

Review the diff and ship it — all from your phone

The change your agent just made doesn't have to wait for you to get back to your desk. Read it, commit it, push it, and open the PR from wherever you are.

Read the diff, file by file

A full review screen with GitHub-style inline diffs of every changed file, add and delete counts, viewed marks, collapse, and jump-to-file. It live-refreshes while the agent keeps editing, so you're always looking at the current state.

Commit with an AI-written message

Select the files you want, let lpm draft a commit message from the diff, tweak it if you like, and commit — right from your phone.

Push, pull, and fetch

Move the commit up to your remote, pull in what changed, or fetch to see where you stand — the everyday git plumbing, one tap each.

Switch branches

Browse local and remote branches and check one out without touching the keyboard, so you can line up the right branch before the agent runs.

Open a pull request

Create a GitHub PR straight from the review screen, with a title and body drafted for you from the changes — the last step of shipping, done from the couch.

Ask the agent about a diff

Spotted something off? Send that file's diff to any running terminal as a prompt and ask the agent to explain or fix it. Or discard everything and start clean.

Project control

Drive the whole workspace, not just one terminal

Everything you do to a project on the Mac — start it, toggle services, run actions, duplicate and fan out — you can do from your phone.

Start, stop, and switch projects

Browse every project from your phone, grouped into the same sidebar folders as your Mac with live status badges. Start the whole stack with a profile, stop it, or spin up the API before you're back at your desk so it's ready when you sit down.

Run actions and manage terminals

Toggle individual services, watch their logs, trigger a saved action (a test run, a linter, a deploy), and open, close, rename, pin, or reorder terminals. It all runs on your Mac; running an action or opening a terminal needs the lpm window open there.

Duplicate a project and fan out

Make up to 50 standalone copies with labels and a group folder, choose committed work only, pull latest, or reinstall dependencies, and run an action or command in each. A progress bar tracks the batch, and a copy you're done with can be deleted, folder and all.

Run one prompt across fresh copies

Long-press Send to run a prompt in 2 to 10 copies at once: this terminal counts as the first, and fresh copies of the project take the rest. Try one idea a few ways and keep the best result.

Beyond the terminal

The rest of lpm, in your pocket too

The phone app covers the work around your agents as well: what is running, what is scheduled, what is left on your plan, and which machine it is all on.

Activity across every project

One list of every Claude Code and Codex agent, sorted by what needs you first, plus running automations and services you can start or stop. Filter, search, or group it by project.

Automations, created on the phone

Run, stop, or pause scheduled automations, read each run as a conversation, and reply to it. Build a new one with its agent, model, schedule, and checks. They run on your Mac while lpm is open.

Usage limits and token stats

See how much of your Claude and Codex 5‑hour and weekly windows is left, whether you are ahead of pace, and where the tokens went by project and session.

Notes and shared memory

Write in a project's encrypted notes, photos included, and browse the work sessions your agents saved to memory. Ask an agent to remember a conversation or pick up a saved one.

Configure and add projects

Edit a project's services, profiles, and actions with forms, or open its config file. Add a new project from a folder on your Mac, a Git clone, or an SSH host.

Several Macs and Linux servers

Pair more than one Mac, or a Linux server running lpm, and switch between them from the title menu. Alerts keep arriving from all of them.

Encrypted alerts

Never miss a waiting agent again

Close the app and go live your life. The moment an agent is waiting, finished, or stuck, your phone tells you — privately.

Know the second an agent needs you

When Claude Code or Codex stops to ask a question, finishes a task, or hits an error, a notification lands on your phone, even with the app closed. Automations can alert you too when they start, finish, or fail. Turn each kind on or off.

End-to-end encrypted, always

Every alert is sealed with a per-device AES-256 key that only your iPhone and your Mac share. The delivery relay passes along an opaque blob it can't read, and your phone decrypts it on arrival.

Tap to jump straight in

Tapping a notification opens the exact terminal or automation that needs you, ready to answer. Handle it on your Mac instead and the notification withdraws itself, so you're never chasing an alert that's already done.

Pairing takes a minute

From download to controlling your Mac from your phone

  1. 1

    Install lpm on your Mac

    Download the native macOS app and open your projects as usual. The phone talks to this app, which is where every terminal and agent actually runs. The Windows and Linux desktop apps, and a Linux server running lpm, work the same way.

  2. 2

    Add a device and scan the QR code

    In Settings → Mobile devices on your Mac, turn on Remote control and add a device to reveal a one-time QR code. Scan it with lpm Link on your iPhone or iPad. On the same Wi-Fi you can instead tap your Mac in the app’s nearby list and approve the matching code. No account, no sign-in.

  3. 3

    Your projects appear on your phone

    The phone lists every project and terminal. Open a terminal, tap Take control if your Mac is showing it, and it streams here, ready to type into. Start and stop projects right from the list.

  4. 4

    Stay in the loop anywhere

    On the same Wi-Fi it just works. Away from home, put both devices on a Tailscale tailnet. The QR code carries both your local and tailnet addresses, so the app connects over whichever one it can reach — your terminals follow you.

Yours, and only yours

Remote access to your dev machine, on your terms

The phone controls a real terminal on your Mac — so the connection is built to be private, direct, and revocable.

Per-device tokens, stored on the phone

Pairing issues a unique token that lives in your iPhone's Keychain. Your Mac only ever stores its hash — the raw token never leaves the device. Revoke a phone in Settings and its access is gone instantly, live connection dropped.

Your code stays between phone and Mac

Your phone connects directly to your Mac, with no server in the middle. Terminal output, keystrokes, diffs, and files never pass through anyone else. The one thing that leaves your network is a push notification, sealed with a key only your iPhone and your Mac hold.

Off until you switch it on

Phone access stays off until you turn on Remote control in Settings. When it's on, your Mac accepts connections from your network, the app pins your Mac's certificate when you pair, and only paired devices get in. Add your tailnet address to the QR code to reach it from anywhere.

FAQ

Questions about the lpm iOS companion

  • Do I need lpm on a computer to use the iPhone app?
    Yes. lpm Link is a companion, not a standalone terminal. Every project, service, and AI agent runs in the lpm desktop app on your Mac, Windows PC or Linux PC, or on a Linux server set up as an lpm host, and the phone is a live display and input client for it. You can pair several machines and switch between them in the app.
  • How is this different from Claude Code's built-in remote control?
    They solve overlapping problems from different ends, and they work fine side by side. Claude Code's own remote control keeps a Claude Code session moving from your phone. The lpm companion mirrors the real terminal sessions running on your Mac — full scrollback, and you type into the same session — so it works with whatever agent is in that terminal: Claude Code, Codex, Gemini CLI, or anything else you run there. It also covers the steps around the agent: reviewing the diff, committing, pulling and pushing, opening a pull request, and starting or stopping the project's services. And it pairs straight to your Mac by QR code, with no account to create.
  • Can I prompt Claude Code and Codex from my phone?
    Yes. Each terminal has a full prompt composer: type a prompt, run an AI rewrite and pick from variants, autocomplete Claude Code and Codex slash commands, @-mention changed files, branches, terminal output, or service logs, and attach images. Your prompt goes to the real agent session running on your Mac, and the draft stays in sync with the same terminal's prompt box there.
  • Can I review a git diff and commit or push from my phone?
    Yes. A full review screen shows inline diffs of every changed file with add and delete stats, and it refreshes as the agent keeps editing. You can select files and commit with an AI-generated message, then pull, push, fetch, switch branches, or open a GitHub pull request with an AI-drafted title and body — all from the phone.
  • Will I get a notification when Claude Code finishes or is waiting?
    Yes. Even with the app closed, you get a push the moment an agent is waiting on you, finishes, or hits an error, and automations can notify you when they start, finish, or fail. Each kind has its own on/off switch. Tapping the notification opens that terminal or automation, and it withdraws itself if you handle the agent on your Mac instead.
  • Does my code or terminal output go through the cloud?
    No. Terminal output, keystrokes, diffs, and files all travel directly between your phone and your Mac — there is no server in the middle for any of it. The only thing that leaves your network is a push notification, encrypted with a per-device key that only your iPhone and your Mac hold; the delivery relay sees an opaque blob it cannot read.
  • Can I use it when I'm away from home?
    Yes. On the same Wi-Fi it works out of the box. Away from your network, put both your Mac and iPhone on a Tailscale tailnet. With your Mac's tailnet address added to the pairing QR code, the app keeps both addresses and uses whichever one it can reach. lpm has no cloud relay for terminals, so without a tailnet the phone needs another route to your Mac.
  • Is it safe to control my dev machine from my phone?
    Phone access is off until you turn on Remote control in lpm Settings. Pairing issues a per-device token that lives in your iPhone's Keychain, and your Mac stores just its hash. When Remote control is on, your Mac accepts connections from your network, the app pins your Mac's certificate when you pair, and only paired devices get in. You can revoke any device at any time, which immediately drops its connection.
  • Does it work on iPad?
    Yes. The companion runs on iPhone and iPad, on iOS and iPadOS 17 or later. Both pair with lpm on your Mac the same way — scan the QR code once and you're in.
  • Do I need an account to use it?
    No. There is no account and no sign-in. You pair a device by scanning a QR code from lpm's Settings on your Mac, by tapping a nearby Mac and approving it there, or by entering the address and code by hand.
  • Can I control a Linux server from my phone?
    Yes. The phone can pair with a Linux host directly instead of going through your Mac: right-click the server's row in the Mac sidebar and pick Pair a phone, or type lpm mobile pair on the server itself and scan the code it shows. From then on it reaches the server on its own, so a closed Mac doesn't matter, and the title menu flips between machines. The phone must be able to reach the server, over your tailnet for example.
  • Can I check my Claude Code usage limits on my phone?
    Yes. The Usage screen shows how much of your Claude and Codex 5-hour and weekly windows you have used, whether you are ahead of pace, and when each resets. Claude readings need Claude usage turned on in lpm on your Mac. A Stats screen shows token totals and estimated cost by project.
  • Can I create and run automations from my phone?
    Yes. You can see every automation, run or stop one, pause its schedule, read and reply to its runs, and create or edit one with its agent, model, schedule, and checks. Automations run in lpm on your Mac, so it needs to be on with lpm open.
  • Does the agent keep running if my phone locks or disconnects?
    Yes. All the work runs on your Mac. The phone is just a window into it — if it locks, sleeps, or loses the connection, your terminals and agents keep going. Reconnect and you pick up the live stream where it is.

Put your terminals in your pocket. Prompt your agents, review the diff, and ship it from anywhere.

Download the lpm desktop app, get lpm Link from the App Store, and pair your iPhone or iPad in Settings → Mobile devices. Free, native, and yours: the work stays on your Mac, the control comes with you.

Get lpm for your Mac