Local Project Manager

Switch between projects and terminals in seconds

Built for Claude Code, Codex, and other AI coding agents.

Desktop App
Download for macOS
Signed & notarized by Apple
Live interactive demo

Projects, terminals, Claude Code or Codex — one click each

Click anywhere below. Switch projects, start services, launch Claude Code or Codex — all running live in your browser, right now.

Loading demo…
How it works

See it in action

1

Add a new project

Click + in the sidebar, browse to a directory, and define your services in the built-in editor. Hit Save and the project appears in the sidebar ready to start.

Adding a new project in lpm desktop app
2

Start a project

Select a project and click Start. All services launch in parallel with live terminal output side by side. Switch between service tabs or view them all at once.

Starting a project in lpm desktop app
3

Add an action

Add one-shot commands like linters, test runners, or deploy scripts directly in the editor. Actions appear as buttons you can trigger without leaving the app.

Adding an action to a project in lpm desktop app
4

Switch between profiles

Define profiles to run different subsets of services. Toggle between them with the profile switcher in the header — pick default for everyday work or full when you need everything running.

Running a project with multiple profiles in lpm desktop app
5

Launch your AI agent in one click

Configure any command you want — Claude, Codex, Aider, a custom script, anything. Pick a project, click the button, and the terminal opens with your agent already running in the right directory. No cd, no setup, no excuses. From zero to coding in seconds.

Launching Claude Code on a project in lpm desktop app
6

Run agents in parallel on the same codebase

Duplicate a project to spin up a second (or third) checkout in seconds. Each copy gets its own services, terminals, and agents — so Claude can work on one feature while Codex ships another, without branch conflicts or context bleed.

Duplicating a project in lpm to run multiple agents in parallel
What you get

Built for real dev workflows

Live terminal output

Watch every service stream in real time. Switch between service tabs or tile them side by side — all from a native window.

Parallel agents, same codebase

Duplicate any project to run Claude, Codex, or any agent in parallel — each on its own checkout, with its own services and terminals. No branch conflicts, no context bleed.

Commits and PRs, built in

Stage changes, generate commit messages, and open pull requests right from the app. Pair it with Claude or Codex to ship without ceremony.

Auto-detect frameworks

Automatically detects Rails, Next.js, Go, Django, Flask, and Docker Compose projects.

Instant project switching

Stop one project and start another in a single command. No manual cleanup needed.

Service profiles

Run subsets of your services. Start just the API, or spin up the full stack.

Native macOS app

A desktop app with live terminal output, built-in config editor, and dark mode.

Works with any stack

If it runs in a terminal, lpm can manage it. No Docker or containers required.

One config file. That's it.

Define your services, group them into profiles, and add one-shot actions. Edit below to see it live.

~/.lpm/projects/myapp.ymlvalid

myapp

No active terminals

Click Start to run myapp, or open a terminal.

New Terminal
name: myapp
root: ~/Projects/myapp

# Long-running services — started with lpm start
services:
  api:
    cmd: python manage.py runserver
    cwd: ./backend
    port: 8000
  frontend:
    cmd: npm run dev
    cwd: ./frontend
  worker: celery -A backend worker

# Named subsets of services
profiles:
  default: [api, frontend]
  full: [api, frontend, worker]

# One-shot commands — run from app or CLI
actions:
  test: pytest
  migrate:
    cmd: python manage.py migrate
    cwd: ./backend
    confirm: true
  deploy: ./scripts/deploy.sh

Services

Long-running processes. Use string shorthand or full config with cwd, port, env.

Profiles

Named groups of services. Pick a profile from the header and start only that subset.

Actions

One-shot commands. Appear as buttons in the app — trigger tests, migrations, or deploys in one click.

Latest Release

Get lpm

Free and open source. Available for macOS (Apple Silicon & Intel).

Signed & notarized by Apple