Skip to content

Native desktop terminal for AI agents

The best terminal for Claude Code and Codex, with every agent in view.

A native macOS app that shows what each Claude Code and Codex session is doing, pings you when one needs an answer, and runs your dev servers in panes right beside them.

See it in action

Start a project, then hand it to Claude Code or Codex — one click each

A one-minute tour: start a project and hand it to Claude Code.

lpm is a macOS app with a multi-pane terminal workspace. Open this page on your computer to try the interactive demo.

Get lpm for MacOr check your Macs from your iPhone
The problem

A regular terminal was not built for agents

One AI coding agent is easy. Two or three working on real projects at once is where the wheels come off.

Agents trip over each other

Two agents in one checkout overwrite each other's files, and their dev servers race for port 3000. One wins, one crashes, and you spend the afternoon untangling it.

No idea who is doing what

Five terminal tabs, five agents, and no clear view of which one is still working, which has been waiting on a yes-or-no question, and which just errored out.

Context vanishes on every switch

Jump to another project and your running services, logs, and agent sessions are gone. Coming back means rebuilding the whole stack from memory.

Inside the app

A native workspace for the agents doing your work

Claude and Codex, one click away

A fresh install puts Claude and Codex buttons on every project. Each opens the agent in a new tab next to your services, and a button can carry a starting prompt.

A sidebar that lists every agent

Each project lists its Claude Code and Codex sessions underneath: what each one is doing and for how long. Click a row to jump to its tab. More on the project sidebar.

A prompt box that knows your project

Press ⌘I for a composer under any terminal. Type @ to pull in a file, a branch, the changed files, or a running service's latest logs, and paste screenshots straight in.

Every service, side by side

Each dev server streams into its own tab, and the All tab lays them out in columns. When the API throws, you see it while the agent is still typing.

Everything running, on one screen

⌘⇧A opens Activity: every Claude Code and Codex session, running service, and automation across your projects, with whatever needs you at the top. Move through it with j and k.

Review before you commit

⌘⇧R shows everything the agent changed as one stack of diffs, and the Commit dialog drafts the message with AI. See how to review changes in the terminal.

One-click actions

Turn tests, lints, migrations, and deploys into buttons in the project header. Run them while the agent keeps working next door.

Service profiles

Save groups like “API only” in the Start menu and run just the services the agent touches, or the full stack when you need it.

Alerts

Know the moment Claude Code or Codex needs you

lpm connects to both agents on its own, so every session reports whether it is working, waiting on you, finished, or hit a problem. No setup, no polling tabs.

  • On the tab and in the sidebar

    A tab shimmers while its agent works, pulses amber when it needs you, turns blue when it is done and red on a problem. The same state, with a timer, shows under the project in the sidebar.

  • A chime you choose

    A sound plays when an agent finishes, asks for approval, or stops with an error. Pick the built-in chime, a macOS sound, your own file, or silence for each one.

  • A banner when you are away

    When no lpm window is in front, macOS shows a banner such as “Agent needs you” or “Agent finished”, naming the tab and project, so you can stay in your browser or editor until it matters.

  • A push on your iPhone

    Pair the lpm Link iPhone app and get an encrypted push when an agent needs input, finishes, or errors, then open that terminal on your phone and answer it.

Live status, sounds, and banners cover Claude Code and Codex. Gemini CLI and OpenCode run fine in lpm terminals but don't report their state on their own.

Why the desktop app

What changes when you run agents in a real macOS window

  1. A second agent starts on a copy that already runs

    Duplicate clones the project folder, so the new copy arrives with node_modules, .venv, .env files, and your uncommitted work in place. Only rebuildable caches like .next and dist are left out. Want a branch instead? New Worktree makes a real Git checkout of your current commit. It starts clean, so uncommitted changes and ignored files like node_modules and .env stay behind in the original.

  2. One prompt, several answers to choose from

    Write the prompt once and choose Run in duplicates: it starts in this tab and in new copies of the repo, one agent per folder. Pick 2 to 10 runs; the Duplicate dialog it opens lets you change the count before anything starts, and the same prompt is queued in each. You keep the version you like instead of rerolling one session and hoping. The full walkthrough lives on running Claude Code in parallel.

  3. Any conversation picks up where you left it

    The resume picker lists every Claude Code and Codex conversation for the project, including ones started outside lpm and tabs you closed. Fork a conversation into a new tab to try another direction, or copy the last answer as clean text with its tables intact. After a relaunch, agent tabs reopen on the conversation they had.

  4. You see how much of your plan the agents have burned

    Claude and Codex each get a usage bar in the sidebar with its reset time, for the window you pick: weekly out of the box, the 5-hour window, or whichever of the two is higher. A pace marker shows whether you are burning faster than the clock, and each Claude account you add gets its own row. Codex needs no setup; Claude tracking is one click in the Usage window.

In practice

Workflows that used to be painful

1

Claude Code on a feature branch, Codex writing tests

Select your project in the sidebar and click Start: the full stack boots in one window, one service per tab. Point Claude Code at it for the feature work. For the second agent, choose New Worktree from the project’s menu. You get a real Git checkout on its own branch, with its own services, listed right under the original. Point Codex at that. If both copies run a dev server on the same port, lpm catches the clash when you press Start and offers to free the port. To run both at once, point the copy’s dev server at another port, for example with a PORT variable in its start command.

2

Switch branches without a stale dev server

Agents get confused when the server on port 3000 is still running the code from the branch they just left. Click Stop in the project’s header and every service shuts down, child processes included. Click Start on the new checkout and the whole stack comes back fresh in the same window, so when Claude Code returns it sees the code it actually expects.

3

Give the agent only the services it should see

You don’t need the Next.js frontend running while an agent is refactoring a Go API. Open the Start menu in the project header and pick a profile that starts only the API and its database. The agent works against a smaller, quieter stack, and you can still switch a single service on or off from the same menu.

4

Hand the overnight chores to a schedule

Some prompts should run every morning, not when you remember them: triage new issues, bump dependencies, rerun a flaky suite. Save one as an automation and lpm runs it with Claude Code or Codex on your schedule, in the project or in a fresh copy, while the app is open and the Mac is awake. See how to schedule Claude Code tasks.

How it compares

A desktop workspace, not another terminal

lpm gives every running service and every agent its own pane in one native window, with each agent's state in the sidebar.

lpm desktop

  • YesStart full stack in one command
  • YesLive output per service
  • YesOne window for every running service
  • YesRun several agents, each in its own copy of the repo
  • YesVisual project switcher with live state
  • YesNative macOS app with dark mode

Terminal tabs

  • NoStart full stack in one command
  • YesLive output per service
  • NoOne window for every running service
  • NoRun several agents, each in its own copy of the repo
  • NoVisual project switcher with live state
  • YesNative macOS app with dark mode

tmux / screen

  • YesStart full stack in one command
  • YesLive output per service
  • YesOne window for every running service
  • NoRun several agents, each in its own copy of the repo
  • NoVisual project switcher with live state
  • NoNative macOS app with dark mode

Editor window

  • NoStart full stack in one command
  • NoLive output per service
  • NoOne window for every running service
  • NoRun several agents, each in its own copy of the repo
  • NoVisual project switcher with live state
  • YesNative macOS app with dark mode

lpm vs cmux

cmux is a Mac terminal built around agent sessions. Compare the two row by row: what each one configures, and which of them starts the services your agents need.

FAQ

Questions developers ask before switching

  • Does lpm work with Claude Code and Codex out of the box?
    Yes. Every project gets a Claude and a Codex button on first launch, and lpm connects to both agents automatically, so the sidebar shows when an agent is working, needs an answer, hit a problem, or finished. Your services run in panes beside them. lpm doesn't install the agents themselves: you install the Claude Code and Codex CLIs and sign in as usual.
  • Will lpm tell me when Claude Code or Codex needs me?
    Yes. The agent's tab and its row in the sidebar change state, a chime plays when an agent finishes, asks for approval, or errors, and a macOS banner names the tab and project when no lpm window is in front. With the lpm Link iPhone app paired, the same events arrive as encrypted push notifications.
  • Can I see my Claude Code and Codex usage limits?
    Yes. The bottom of the sidebar shows how much of each plan window is used and when it resets, with a pace marker, and the Usage window shows the 5-hour and weekly windows side by side. Codex meters appear on their own once Codex runs; for Claude, press Enable once in the Usage window. Meters apply to subscription logins, since API-billed accounts have no 5-hour or weekly limit.
  • Can I resume an old Claude Code or Codex session?
    Yes. Resume session lists every Claude Code and Codex conversation for the project, including ones started outside lpm and tabs you closed, with search and a filter by agent. Picking one reopens it in a new tab, and you can fork a conversation to try a different direction without losing the original.
  • Can I run multiple agents in parallel on the same repo?
    Yes. Each agent works in its own copy of the repo, so they never edit the same files. Duplicate clones the project folder (dependencies, .env files, and uncommitted work included), and New Worktree checks out a real Git worktree on its own branch. Either way you can create up to 50 at once and queue the same prompt in each. The guide to running Claude Code in parallel walks through it, and the worktree guide covers which of the two to reach for.
  • Does lpm support Gemini CLI and OpenCode?
    They run in lpm terminals like any other command, and lpm suggests launch buttons for them when their CLIs are installed. The deeper integration (live status, alerts, resume, fork, and the model switcher) is built for Claude Code and Codex. Any agent can still drive lpm through the lpm CLI and agent skills, and post its own status badge with lpm set-status.
  • Do I need Docker to use lpm?
    No. lpm runs anything that runs in a terminal. Docker Compose stacks work, and plain Rails, Next.js, Go, Django, or Flask projects work without containers.
  • Is lpm open source?
    Yes. The source, issue tracker, and releases live on GitHub. Contributions and bug reports are welcome.
  • Which frameworks does lpm work with?
    Rails, Next.js, Django, FastAPI, Laravel, Phoenix, Go, Docker Compose, and anything else that runs in a terminal. When you add a folder, lpm reads its manifests and sets up the services for you. To go further, have your AI agent draft services and actions from the config editor.

Download the macOS app. Run your agents side by side.

Native desktop workspace for Claude Code, Codex, and every other agent that lives in a terminal.