Git relationship
Git worktree
A linked working tree that shares Git objects, refs, and repository config.
lpm Duplicate
A standalone project folder with an independent .git directory.
Git worktree alternative for macOS
Git worktrees isolate tracked files. lpm Duplicate creates fast, standalone copies of the project you are actually working in — including its current state and local setup — then runs Claude Code, Codex, or any command in each copy.
Git primitive
Best for lightweight branch checkouts
lpm primitive
Best for complete, parallel agent runs
The short answer
Use lpm Duplicate when a second agent needs more than another branch checkout. It makes a standalone macOS project copy with its own Git repository, preserves the useful local state already on disk, inherits the project’s lpm services and actions, and can queue the agent task as part of the same flow.
Keep using Git worktree when you want a lightweight, linked checkout and are happy to prepare its dependencies, local files, services, and agent session separately. Worktrees are excellent at that job; lpm solves a larger one.
A worktree isolates a checkout. lpm Duplicate isolates the project environment around that checkout, then connects it to the rest of the agent workflow.
| Capability | Git worktree | lpm Duplicate |
|---|---|---|
| Git relationship | A linked working tree that shares Git objects, refs, and repository config. | A standalone project folder with an independent .git directory. |
| Starting point | Tracked files from a chosen commit or branch. | The project’s current on-disk state, with an option to remove uncommitted changes. |
| Same branch in parallel | Git refuses a branch already checked out elsewhere by default. | Each copy can stay on the same branch because its Git repository is independent. |
| Ignored and local files | Not included by a normal checkout; hooks or tool-specific include rules can copy selected files. | Useful local files are copied by default while regenerable build caches are skipped. |
| Dependencies | Each new checkout normally needs its environment initialized. | Existing dependencies stay available by default, or lpm can reinstall them. |
| Agent launch | Git creates the checkout; agent tools or your own scripts handle the session. | The same flow can queue an lpm action, command, and prompt on every copy. |
| Dev stack | Git does not manage services, logs, ports, or terminals. | Copies inherit the parent project’s lpm services, actions, profiles, and terminal setup. |
| Fan-out | Create and prepare each worktree directly or automate it with another tool. | Create up to 50 labeled copies from one dialog or one lpm duplicate command. |
| Disk model | Very compact because repository data is shared. | Fast APFS copy-on-write clone; storage grows as standalone copies diverge. |
| Platform | Built into Git and available across platforms. | Built specifically for macOS and its APFS clone support. |
Git worktree
A linked working tree that shares Git objects, refs, and repository config.
lpm Duplicate
A standalone project folder with an independent .git directory.
Git worktree
Tracked files from a chosen commit or branch.
lpm Duplicate
The project’s current on-disk state, with an option to remove uncommitted changes.
Git worktree
Git refuses a branch already checked out elsewhere by default.
lpm Duplicate
Each copy can stay on the same branch because its Git repository is independent.
Git worktree
Not included by a normal checkout; hooks or tool-specific include rules can copy selected files.
lpm Duplicate
Useful local files are copied by default while regenerable build caches are skipped.
Git worktree
Each new checkout normally needs its environment initialized.
lpm Duplicate
Existing dependencies stay available by default, or lpm can reinstall them.
Git worktree
Git creates the checkout; agent tools or your own scripts handle the session.
lpm Duplicate
The same flow can queue an lpm action, command, and prompt on every copy.
Git worktree
Git does not manage services, logs, ports, or terminals.
lpm Duplicate
Copies inherit the parent project’s lpm services, actions, profiles, and terminal setup.
Git worktree
Create and prepare each worktree directly or automate it with another tool.
lpm Duplicate
Create up to 50 labeled copies from one dialog or one lpm duplicate command.
Git worktree
Very compact because repository data is shared.
lpm Duplicate
Fast APFS copy-on-write clone; storage grows as standalone copies diverge.
Git worktree
Built into Git and available across platforms.
lpm Duplicate
Built specifically for macOS and its APFS clone support.
The unit of duplication is the project on your Mac, not only its tracked Git files.
On APFS, lpm starts with a fast copy-on-write clone. Uncommitted work, useful ignored files, and installed dependencies come with it by default.
Keep the current state, strip uncommitted changes, pull the latest upstream commit, or reinstall dependencies. Stale build caches are left behind.
Create one copy or fan out up to 50. Give every copy a label, group them, and queue the same or a different action, command, and prompt.
The desktop flow is visual. The same Duplicate primitive is available to you and your coding agents through the lpm CLI.
lpm duplicate myapp -n 3 --run claude \
--prompt "Find and fix the checkout race condition"
lpm wait --agent -p COPY_NAME
lpm remove COPY_NAMEEvery agent can branch, commit, reset, or experiment without sharing Git administrative state with the others.
Queue the same task in every copy, compare the results, then keep the strongest implementation.
Wait on completion, inspect changes, and remove disposable copies with explicit lpm commands.
lpm does not make Git worktree obsolete. It gives you a larger isolation boundary when the task includes the local setup and running workflow around the code.
Choose Git worktree
Choose lpm Duplicate
No. A Git worktree is linked to a shared repository. lpm Duplicate makes a standalone copy of the project folder with its own .git directory, then removes any stale worktree registrations copied from the source.
Use lpm Duplicate when the agent needs the project as it exists locally, not only tracked files from a commit. It can preserve uncommitted changes, local ignored files, and installed dependencies, inherit the lpm project setup, and queue an agent task in the same flow.
Yes, by default. You can instead enable the clean-copy option to reset tracked changes and remove untracked files. You can also pull the latest upstream commit or reinstall dependencies for each copy.
Yes. Every copy has an independent .git directory, so its branch, index, config, and Git operations do not depend on the source project. Commits are not automatically shared back to the original copy.
On APFS, lpm starts with a fast copy-on-write clone, so unchanged file data is shared by the filesystem at first. Storage grows as copies diverge. lpm skips regenerable build caches and can omit and reinstall dependencies when you want a cleaner copy.
Yes. The Duplicate dialog and lpm CLI can create up to 50 copies and queue a configured action or any command with a prompt on each one. The same workflow works with Claude Code, Codex, Gemini CLI, OpenCode, and other terminal-based agents.
Choose Git worktree when you want a lightweight additional checkout, prefer shared Git refs and object storage, and already have a reliable way to initialize local files, dependencies, services, and agent sessions for every worktree.
Run AI coding agents side by side with each project’s services, logs, and status in view.
Give agents a CLI to run services, read logs, wait for readiness, and fan out into project copies.
A native project workspace with Git actions, live service output, and built-in terminal sessions.
Inspect every changed file and diff before you commit the result from a parallel agent run.
Download lpm for macOS and turn the project already on your disk into clean, standalone environments for Claude Code, Codex, and any other terminal agent.