Skip to content

Feature guide

What lpm does, from dev servers to Claude Code and Codex

lpm is a free, open-source Mac app for your local projects and the AI agents working in them. This guide walks through 148 features in 11 areas, with the fine print where it matters.

Projects & services

Add a project once. Start it all with one click.

lpm reads each repo, sets up its dev servers, and gives every project a Start button, live output, and one-click commands.

  • Automatic service detection

    Add a folder or clone a repo and lpm reads its files to set up start commands, working folders, and ports. It knows Node, Python, Rails, Laravel, Phoenix, Spring, .NET, Go, Rust, Docker Compose, Procfiles, and Make or just tasks, monorepo workspaces included.

    Rule-based and offline. Runs when you add or clone a local project.

  • One-click start and stop

    One button starts or stops every dev server in a project, or just a saved profile like “backend only”. lpm checks for busy ports first, and the sidebar dot turns green while it runs.

  • Action buttons

    Turn tests, builds, deploys, migrations, and log tails into one-click buttons in the project header or terminal footer. A three-step wizard covers what it does, how it looks, and how it runs.

More in Projects & services

  • Four ways to add a project

    Add a local folder, clone a Git repository (optionally a single branch), connect an SSH host, or start from a template.

  • Project templates

    Scaffold a new project from a template that gives Claude Code, Codex, Gemini CLI, or OpenCode a prompt, or runs a setup command. A Next.js template is built in, and you can add your own.

  • Services keep running after you quit

    Quit or update lpm and your dev servers stay up. Reopen it and lpm finds them again.

    In-app terminals end on quit, and nothing survives a reboot.

Terminals & AI agents

A terminal built for Claude Code and Codex

Every project gets its own terminals next to its services. Claude Code and Codex get live status, alerts, and session tools; Gemini CLI and OpenCode launch with one click too.

Activity puts whichever Claude Code or Codex session is waiting on you at the top, whatever project it lives in.
  • One-click agent launchers

    A fresh install adds Claude and Codex buttons to every project, and lpm suggests Claude Code, Codex, Gemini CLI, or OpenCode launchers for the CLIs you have. Any other command can be a button too.

    You install and sign in to the agent CLIs yourself.

  • Live agent status

    Each Claude Code and Codex tab shows whether it's Working, Needs you, Done, or Problem. The sidebar lists every session under its project with a running timer; click one to open its tab.

    Claude Code + CodexStatus in the sidebar
  • Alerts when an agent needs you

    Pick a chime, a macOS sound, or your own audio file for when an agent is done, wants approval, or fails, plus a macOS banner whenever lpm is in the background.

    Claude Code + Codex

More in Terminals & AI agents

  • Terminal tabs per project

    Shortcut:⌘T⌘W

    New tabs open in the project folder with your login shell, right next to the project's service output.

  • Split panes

    Shortcut:⌘D⌘⇧D

    Split right or down, drag tabs between panes, and let one pane fill the window. Each project remembers its layout.

  • Activity view

    Shortcut:⌘⇧A

    Agents, services, and automations across your projects on one screen, with whatever needs you on top. Filter, search, and move with j and k.

    Agent rows cover Claude Code and Codex in projects opened this session.

Prompt composer

Write prompts in an editor, not a shell prompt

A multi-line composer sits under every terminal and works with any CLI. Slash commands, model switching, and copying answers are for Claude Code and Codex.

  • Shortcut:⌘I

    A composer under every terminal

    Write with normal text editing and undo, press Enter to send and Shift+Enter for a new line. Hide it with ⌘I and a slim bar keeps the agent's status in view.

  • @ mentions

    Reference files, folders, changed files, branches, other projects and their copies, another tab's output, a running service's logs, or saved memory sessions.

  • Slash commands with hints

    Type / to see the agent's commands, your custom commands, and skills, with the expected argument shown as a gray hint once you pick one.

    Claude Code + Codex

More in Prompt composer

  • Images and files

    Paste screenshots or drop files into the composer. They show as thumbnails you can preview, and become file paths the agent can read.

  • Switch model and effort

    Move a running session to another model or reasoning effort from the menu next to Send, without restarting it.

    Claude Code + Codex
  • Refine with AI

    Rewrite a prompt before sending: improve it, make it concise, fix grammar, add acceptance criteria, plan first, or use your own rewrites, with up to five versions to pick from.

    Runs through your own agent CLI and plan.

Parallel work

Run agents side by side, each in its own folder

Make standalone copies or Git worktrees of a project, give each one its own task, and keep the result you like best.

One window, five agents: the main project, two copies, and a worktree, each reporting its own status.
  • Duplicate a project

    Make up to 50 independent copies at once. On APFS they're copy-on-write clones that bring your .env files and node_modules along and leave build output and caches behind.

  • Git worktrees

    Create one or many linked worktrees, each on its own new branch from the current commit and sharing the repo's history.

    Uncommitted and ignored files don't carry over.

  • Run in duplicates

    Pick Run in duplicates from the Send menu to start one prompt 2 to 10 times: the current terminal plus new copies of the project, one agent per copy. Keep the run that wins.

More in Parallel work

  • Copy options

    Keep committed work only, pull the latest changes, or reinstall Node dependencies in each copy, and group the copies into a sidebar folder.

  • A task for every copy

    While duplicating, have each copy run an action, a shell command, or an agent prompt with images. Use the same task for all of them or one each.

  • Copies stay organized

    Copies and worktrees nest under their original with their own labels. A collapsed stack sums up what's working, blocked, or waiting on you.

Review, Git & files

Review what the agent wrote, then ship it

See every uncommitted change as one diff, commit with an AI-written message, and open a GitHub pull request without leaving the app.

  • Shortcut:⌘⇧R

    Review every change

    All uncommitted changes as one scrolling diff stack beside a tree of changed files, split or unified. Edit and save in the diff, and lpm won't overwrite a file an agent changed meanwhile.

  • AI commit messages

    Pick files, then let your installed agent CLI write a conventional-commit message from the diff. Auto Commit does it all in one click, and can push too.

    Uses Claude Code, Codex, Gemini CLI, or OpenCode on your Mac.

  • Auto Create PR

    Go from uncommitted work to an open pull request in one step: a new AI-named branch if you're on the default one, a commit, a push, and a written title and description.

    GitHub + gh CLI

More in Review, Git & files

  • Commit dialog

    Shortcut:⌘↩

    Tick files or whole folders, see each diff inline, discard what you don't want, then commit or commit and push.

    Whole files only; there's no line-level staging.

  • Pull request dialog

    Pick a base branch, see the commits it will include, and have AI write the title and description.

    GitHub + gh CLI
  • PR status in the footer

    When your branch has a pull request, the footer shows PR #N colored by state. Click it to open the PR.

    GitHub + gh CLI
Automations & usage

Schedule agents and see what they use

Run agent prompts, commands, and actions on a schedule, and keep an eye on the tokens and plan limits your Claude Code and Codex sessions spend.

The Week view shows when each job fires and how its recent runs went.
  • Scheduled automations

    Run a Claude Code, Codex, Gemini CLI, or OpenCode prompt, a shell command, or a saved action every day, on chosen weekdays, on an interval, or at a random time in a window.

    Needs lpm running and the Mac awake to fire.

  • Token usage stats

    Token totals per range, from Today to All time, split into input, cache, output, and reasoning, with an estimated cost at list prices and your busiest projects and sessions.

    Claude Code + CodexToken usage tracking
  • Plan limit meters

    Watch your 5-hour and weekly plan windows fill up, see when each resets and whether you're ahead of pace, with a warning before you run out. A compact meter sits in the sidebar.

    Claude meters need a one-click opt-in and a subscription login.

    Claude Code + Codex

More in Automations & usage

  • Work in a fresh copy

    Let a job run on a fresh copy or a new Git worktree so your folder stays untouched. Each run's copy opens like any other project.

  • Only when there's work

    Add a check, like “are there new commits?”, and the job runs only when it passes. A verify command, like your tests, marks each run passed or failed.

  • Reply to a run

    Every run keeps its outcome and duration. Open one to read the agent's answer as a conversation and reply to keep it going.

Accounts, skills & memory

Tune how Claude Code and Codex work in each project

Pin a Claude account to a project, design the status line, see and write the skills agents load, and keep shared memory and private notes.

  • Multiple Claude Code accounts

    Add work, personal, or client Claude accounts, sign each in, and pin one per project so its sessions use the right subscription.

    Automations use your default Claude login.

    Claude Code onlyMultiple accounts
  • Status line designer

    Build the line under Claude Code from presets or drag-and-drop items like model, branch, context left, and usage meters, and pick Codex's footer fields the same way.

    Claude Code + CodexStatus lines
  • Shortcut:⌘⇧K

    Skills & tools inspector

    See the MCP servers, skills, plugins, subagents, commands, instruction files, and hooks an agent will load in a folder, with clashes flagged and a context-size estimate.

    Claude Code + CodexSkills & tools

More in Accounts, skills & memory

  • Write agent skills

    Create, edit, or delete skills in a form, or describe one and let AI draft it for you to review.

  • Shared session memory

    Shortcut:⌘⇧M

    Agents save named work sessions with a goal, current state, and timeline, and any agent or a later session can pick one up by name.

    Needs lpm's agent skills installed.

  • Encrypted project notes

    Shortcut:⌘⇧N

    A private notes space per project, organized as chats with attachments and search, encrypted on disk with the key in your Keychain. Agents don't read them.

Across devices

Drive projects on another Mac, a server, or over SSH

Work runs where the project lives, and lpm on your Mac is the screen and keyboard. Machines connect to each other directly, not through a cloud relay.

  • Connect Macs

    Pair two Macs and the other Mac's projects appear in your sidebar under its name. Start its services, use its terminals and agents, review its changes, and run its actions.

    Both Macs run lpm, and the host turns on “Allow control of this Mac”.

  • A Linux host from one SSH string

    Type user@server and lpm installs itself there, pairs, and connects through SSH. Services and agents keep running on the server after your Mac closes.

  • SSH projects

    Add a project on any machine you can SSH into, picked from your SSH config or typed in. Its terminals, services, and actions run there, and Claude Code and Codex report their status back.

    lpm itself isn't installed on the server. SSH projects can't be duplicated.

More in Across devices

  • Pair the way that suits you

    Paste a one-time invite, type an address and code by hand, or tap a nearby Mac and confirm the same 6-digit code on both screens.

  • Pinned, revocable connections

    When both sides run a current lpm, connections are encrypted and pinned to each machine's identity, so a different machine at the same address is refused. Revoke any device at any time.

  • Away from home with Tailscale

    Invites carry your Tailscale address next to your LAN address, so paired machines reach each other over your tailnet.

    You set up Tailscale; lpm detects the address.

lpm link for iPhone

Your terminals and agents, in your pocket

The free lpm link app for iPhone and iPad mirrors terminals, sends prompts, and tells you when an agent needs you. Everything still runs on your Mac or Linux host.

lpm link is free on the App Store

In lpm on your Mac, open Settings → Mobile devices, choose Add a device, then scan the QR code with your iPhone or iPad.

Tour the iPhone app
Download on theApp Store
  • Live terminals

    Open any terminal running on your Mac and watch it live with 10,000 lines of scrollback. Tap to type into it, with extra keys for Esc, Tab, Ctrl-C, and the arrows.

  • Push notifications

    Get a push when an agent waits for you, finishes, or errors, and optionally when automations run. Content is encrypted on your Mac and only your phone can read it.

    Agent alerts come from Claude Code and Codex.

  • A real prompt composer

    Multi-line prompts land as one message, with photos, files, / commands, and @ mentions. Drafts sync with the same terminal on your Mac.

More in lpm link for iPhone

  • Agent status and Activity

    See each project's agents as Needs you, Working, Done, or Problem, and one Activity list of agents, automations, and running services.

  • Start, stop, and run actions

    Start a project or a profile, toggle single services, read service logs, and run actions with their inputs and confirmations.

  • Review and ship

    Review uncommitted diffs, commit chosen files with an AI-written message, pull, push, switch branches, and open a GitHub pull request.

CLI & integrations

Let your scripts and agents drive lpm

The lpm command and its agent skills give Claude Code, Codex, Gemini CLI, OpenCode, and your scripts the same controls you have in the app.

  • The lpm command

    List projects, start and stop services, read logs, check agent status, and run actions from any terminal. Most commands can print JSON for scripts, and inside a project the name is optional.

    Changes, live agent status, and automations need the running app. lpm list, logs, project, wait, and config validate also work while it's closed.

  • Agent skills

    Install lpm's skills from Settings and Claude Code, Codex, Gemini CLI, and OpenCode learn to control projects, edit configs safely, make copies, and use shared memory.

  • Status with no setup

    lpm adds its hooks to Claude Code and Codex so live status just works, and Settings can check and repair the Claude Code hooks.

    Only lpm's own entries are added, and Remove app takes them out.

    Claude Code + Codex

More in CLI & integrations

  • lpm wait

    Block until a service is up, a port is listening, or a project's agents settle, which is handy before running tests.

  • lpm duplicate · lpm worktree

    Make 1 to 50 copies or worktrees in one command, and queue the same action or command, with an optional agent prompt, on each.

  • lpm run

    Open a terminal in the app and run an action or any command in it, optionally with a prompt for an agent.

Privacy, platform & updates

Free, open source, and no telemetry

lpm has no account and no paid tier, and the apps ship without analytics. Updating, backing up, and removing lpm are all built in.

  • Free and open source

    MIT-licensed, with the source and every release on GitHub. No account, no sign-up, no paid tier.

  • No telemetry in the apps

    The Mac app, the CLI, and the iPhone app include no analytics or crash reporting. The Mac app checks GitHub for updates; otherwise the apps go online only for features you turn on and things you start.

    Paired-iPhone pushes pass through lpm's relay, encrypted.

  • Signed and notarized

    Each macOS release is Developer ID signed and notarized by Apple, in one build for Apple Silicon and one for Intel.

More in Privacy, platform & updates

  • One-click updates

    lpm checks for a new version at launch and daily. Click Update and it relaunches in place while your services keep running.

  • Clean uninstall

    Remove app stops your projects, removes the CLI, skills, and agent hooks it added, and moves lpm to the Trash. Your project folders are left alone.

  • Backup and transfer

    Export your projects and settings and import them on another Mac, and back up the key that encrypts your notes.

Requirements

What you need

Only a Mac is required. Everything else depends on which features you use.

A Mac
macOS 12 or later; pick the Apple Silicon or the Intel download.
AI coding agents
Claude Code, Codex, Gemini CLI, or OpenCode, installed and signed in by you. lpm doesn't bundle them, and they run under your own accounts.
Git and GitHub
Git for review and commits. Pull request features also need the GitHub CLI (gh), signed in.
iPhone or iPad
The free lpm link app, paired with a Mac or Linux host that is awake and running lpm.
Linux host
An x86_64 server on Ubuntu 22.04 or newer, reachable over key-based SSH as root or a user with passwordless sudo.
Away from home
Tailscale on both devices, or another network route you set up. lpm has no cloud relay for terminals.
FAQ

Questions about lpm's features

What's included, what it needs, and where the limits are.

  • Are any features paid or behind an account?
    None. Every feature on this page ships in the free, MIT-licensed app, and nothing asks you to sign up; the lpm link iPhone app costs nothing on the App Store either.
  • Which features need Claude Code or Codex?
    Live status, alerts, session resume, fork, copy last answer, slash-command autocomplete, and model switching work only with Claude Code and Codex, and pinning an account per project is Claude Code only. The launchers also cover Gemini CLI and OpenCode, and any other CLI runs in a terminal or behind a button. You install and sign in to each agent yourself.
  • Do duplicates or worktrees get their own ports?
    No. lpm doesn't isolate ports or containers. A duplicate is a full folder copy, including .env files and node_modules, and a worktree shares the repo's Git history. Each copy runs the same commands, so give copies their own ports, for example with a PORT variable in their config. lpm checks for a busy port before starting a project and can stop whatever holds it.
  • Do my dev servers and automations keep running when lpm is closed?
    Dev servers do: they keep running after you quit or update lpm, and the app picks them up again when you reopen it. In-app terminals, including agent tabs, end when you quit. Automations need lpm open on an awake Mac; a run that came due while it wasn't fires once when lpm is back. For work that keeps going after your Mac closes, add a Linux host.
  • Which features talk to the network?
    A few, and none of them send your code to lpm. Update checks go to GitHub, AI commit messages go through the agent CLI you installed under your own account, links to your other Macs, servers, and iPhone are direct, and iPhone push alerts cross one relay encrypted so only your phone can read them. The Mac app, CLI, and iPhone app have no analytics or telemetry built in.
  • Can I use lpm from my iPhone or another computer?
    Yes. The lpm link app mirrors terminals and controls projects from an iPhone or iPad, Connect Macs lets one Mac drive another, and a Linux host or SSH project runs work on a server. Every command runs on the machine that owns the project, so it has to be on and reachable, for example over your home network or Tailscale.

Try all of it on a project you already have.

Download lpm, add a folder, and press Start. Every feature on this page is free, with no account and no paid tier.