Open source — macOS only

Fully isolated environments
for you and your agents.

Port conflicts. File overwrites. Shared databases. Git worktrees isolate your code but not your runtime. Lui gives each agent its own VM — own ports, own services, own filesystem.

Terminal

An open source CLI that creates a Linux VM for every project and every worktree on your Mac.

Fully isolated. Zero config. Own .localhost URL per environment. Commit lui.yaml with your repo and every contributor gets the same setup.

Works with
Claude Code
Codex
Cursor
Aider
VS Code
any terminal
The problem

Your laptop is
the bottleneck

Running agents locally tanks your machine. Sandboxes wipe your state. You need a machine that remembers everything.

Without Lui

  • Agents share ports, databases, config
  • One agent breaks another's environment
  • 93 GB memory leak from parallel sessions
  • Agent deletes files you need
  • Everything runs on your laptop

With Lui

  • Every project gets its own VM
  • Every worktree gets its own VM
  • Own ports, own database, own filesystem
  • Agents can't interfere with each other
  • Your laptop stays clean
Parallel agents

Three agents. Three VMs.
Three live previews.

Each fork gets its own .localhost URL. Open three browser tabs. Review each agent's work side by side.

MAIN VM
my-saas
web  my-saas.localhost:3000
db   my-saas.localhost:5432
FORK · CLAUDE CODE
feature-auth
web  feature-auth.my-saas.localhost:3100
db   feature-auth.my-saas.localhost:5532
FORK · CODEX
fix-payments
web  fix-payments.my-saas.localhost:3200
db   fix-payments.my-saas.localhost:5632

Each fork is a full VM clone with its own .localhost subdomain. Merge results back with lui merge.

Features

Everything you and your
agents need.

Not a sandbox. Not a container. A real VM for every project and every worktree.

🔒

VM-level isolation

Not containers. Every project and every worktree runs in its own VM. Own kernel, own ports, own filesystem.

🌐

Automatic .localhost routing

Every environment gets its own subdomain. Preview any branch in the browser. No port numbers to remember.

🔌

Any agent. Any editor.

Claude Code, Codex, Cursor, Aider — anything that works in a terminal. No vendor lock-in. No SDK.

Auto-detect your stack

package.json? requirements.txt? Lui detects your stack, installs deps, starts services. Override anything in lui.yaml.

How it works

Init. Fork. Merge.

Three commands. Full isolation. Any agent.

01

Create an isolated environment

Run lui up in your repo. Lui detects your stack, spins up a VM, installs dependencies, starts services. Every project is fully isolated.

02

Fork for parallel work

Run lui fork feature-auth. Clones the entire environment — own VM, own ports, own services. Connect any agent with lui claude feature-auth.

03

Merge or discard

Run lui merge feature-auth to bring changes back via git. Or lui destroy feature-auth to throw it away.

Configuration

Declare your stack.
Lui does the rest.

Auto-detected for common setups. Override anything in lui.yaml.

lui.yaml
name: my-saas
services:
  - id: web
    command: pnpm dev
    port: 3000
  - id: db
    command: postgres
    port: 5432
setup:
  - pnpm install
Zero config for common stacks

Node.js, Python, Go, Rust — detected from lockfiles and manifests.

Override anything

Custom services, setup steps, port mappings. Commit lui.yaml with your repo.

Forks inherit the config

Every fork gets the same services on different ports. No extra setup.

CLI

Everything is a command.

lui init

Detect stack, generate lui.yaml

lui up

Create VM, install deps, start services

lui fork <name>

Clone environment into isolated VM

lui merge <name>

Merge fork changes back to main

lui destroy <name>

Delete fork and its VM

lui status

Show all VMs, services, ports, URLs

lui ssh <name>

Open shell in any VM

lui claude <name>

Run Claude Code in the VM

lui codex <name>

Run Codex in the VM

lui logs <service>

Tail service logs

lui restart <service>

Restart a service in the VM

lui down

Stop services and shut down VM

Comparison

Worktrees alone
aren't enough.

LuiWorktreesDockerCoasts
Code isolation
Port isolation
Per-fork .localhost URLPartial
Database isolationPartialPartial
VM-level security
One-command forkCode only
Get started

Every project isolated.
Every worktree isolated.

Open source. Works on macOS. Supports any AI coding agent.

curl -fsSL https://lui.run/install | sh ★ Star on GitHub

Local today. Cloud VMs when you need more power. Coming soon.