Skip to content

Native desktop terminal for AI agents

The best terminal for Claude Code and Codex — built for parallel agents.

A native macOS app with live output per service in one window. Watch multiple agents work side by side and switch projects visually — without juggling a wall of terminal tabs.

See it in action

Projects, terminals, agents, a built-in browser — one click each

A recording of lpm booting a project and handing it to Claude Code — lpm is a macOS app, so the clickable demo runs on desktop.

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

Running agents in parallel breaks a regular terminal

One AI coding agent is easy. Two or three working side by side on real projects is where the wheels come off — you need a workspace built for it.

Port conflicts everywhere

Two agents spin up the same dev server and race for port 3000. One wins, one crashes, and you spend more time restarting than coding.

No idea who is doing what

Five terminal tabs, five agents, and no clear view of which one is running tests, which is waiting, 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

Every service, side by side

Watch live terminal output from every service in one window. No more tab-juggling to find which agent broke the API while the other is editing the frontend.

Visual project sidebar

Every project sits in the sidebar. Click to jump straight to one with agents already running — no hunting through terminal windows.

Built-in config editor

Edit a project's config inside the app and restart services on the spot. No digging through dotfiles to tweak what an agent is running.

One-click actions

Wire up buttons for tests, lints, and deploy scripts. Run them with a click while the agent keeps working next door.

Toggle service profiles

Flip between profiles from the app header to run just the services the agent touches — or spin up the full stack when you need it.

Native, dark, and fast

A real macOS app with dark mode, native speed, and no browser tab eating your battery while agents chew through your codebase.

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 copies the whole project folder, so the new copy arrives with node_modules, .venv, .env files, and your uncommitted work already in place — no reinstall, no re-configuring, no "it works on my other checkout". If you want the copy on its own branch instead, the same dialog creates a Git worktree — a real checkout of your current commit, so it starts clean: uncommitted changes and ignored files like node_modules and .env stay behind in the original.

  2. One prompt, up to 50 answers to choose from

    Set a copy count in the Duplicate dialog — anywhere from 1 to 50 — and queue the same prompt in every copy at once. Claude Code, Codex, and Gemini CLI each attack the task in their own checkout, and you keep the version you like instead of rerolling the same session and hoping.

  3. You find out an agent is waiting without checking on it

    Each session carries its own status in the sidebar, so a terminal that has finished or is blocked on a question announces itself. You go back to the one agent that needs you instead of cycling through five to see who stopped.

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

    Claude and Codex each get a usage line in the sidebar: how much of the window is gone and when it comes back, for whichever window you pick — weekly out of the box, or the 5-hour one. Hover the line and both windows open together. When several agents run all afternoon, you know how much room is left before a limit lands mid-refactor.

In practice

Workflows that used to be painful

1

Claude Code on a feature branch, Codex writing tests

Click Start on your project in the lpm sidebar and the full stack boots in one window, one service per tab. Point Claude Code at it to drive the feature work. For the second agent, open Duplicate and create a linked worktree — a real Git worktree on its own branch, with its own services and its own ports — then point Codex at that. Two agents, two checkouts, nothing fighting over port 3000, and both projects sit in the same sidebar so you can watch the live service tabs side by side.

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. Hit Stop on the project in the sidebar and everything shuts down cleanly — no orphaned node processes, no stuck migrations. Click Start again 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 profile switcher in the header and pick a profile that only exposes the API and its database — the frontend tab drops out, the API keeps running, and the agent works against a smaller, quieter stack. Fewer moving parts, less terminal noise, and no accidental writes to services the agent was never meant to touch.

How it compares

A desktop workspace, not another terminal

The lpm macOS app gives every running service its own pane in one native window — the visual layer your terminal tabs, tmux session, or editor doesn't.

lpm desktop

  • YesStart full stack in one command
  • YesLive output per service
  • YesOne window for every running service
  • YesRun multiple agents in parallel with no conflicts
  • 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 multiple agents in parallel with no conflicts
  • 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 multiple agents in parallel with no conflicts
  • 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 multiple agents in parallel with no conflicts
  • NoVisual project switcher with live state
  • YesNative macOS app with dark mode

Or compare lpm to cmux directly →

FAQ

Questions developers ask before switching

  • Does lpm work with Claude Code and Codex out of the box?
    Yes. You point lpm at your project, hit Start in the app, and watch each service stream live output in its own pane. The agent talks to the services the app started.
  • 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 copies the project folder (dependencies, .env files, and uncommitted work included) and Worktree checks out a real Git worktree on its own branch; either way you can create up to 50 copies at once and queue the same prompt in every one. Every copy appears in the sidebar with its own services and terminals, so Claude Code in one and Codex in another sit side by side with all their output visible. The worktree guide covers which of the two to reach for.
  • 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, Go, Django, Flask, Docker Compose, and anything else that runs in a terminal. lpm can generate the service config for you with AI when you add a project.

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.