The native terminal for macOS
The best free terminal app for Mac, built for Apple Silicon.
A real macOS app with split panes, search, and themes, plus what a plain terminal lacks: live output per service, a visual project switcher, and live status for Claude Code and Codex. No bundled Electron runtime.
The best terminal for Mac in 2026, by what you need
Eight terminals worth installing, and who each one suits best. lpm is ours; the other seven are the picks we would make if it did not exist.
- 1
lpm
Running whole projects and coding agents
Split panes and search like any terminal, plus a project sidebar, one-click start for every dev server, and live status for Claude Code and Codex.
Free, open source
- 2
Ghostty
Speed with a native Mac feel
Its macOS interface is written in Swift with AppKit and SwiftUI, and tabs and splits work out of the box with almost no setup.
Free, open source
- 3
iTerm2
Power users who want a setting for everything
Profiles, triggers, split panes and tmux integration, refined over many years as the Mac default for developers.
Free, open source
- 4
Warp
AI built into the shell
Block-based input with an agent inside the terminal that writes and runs commands for you.
Free plan; AI plans from $20/month
- 5
WezTerm
One config on Mac, Linux and Windows
Configured in Lua, with a built-in multiplexer for panes, tabs and remote hosts.
Free, open source
- 6
Kitty
Keyboard-driven tinkerers
Renders with OpenGL, arranges tabs and windows in split layouts, and extends with small programs called kittens, all set in one kitty.conf.
Free, open source
- 7
Alacritty
Minimalists who pair it with tmux
A fast OpenGL renderer with deliberately no tabs or splits; your multiplexer handles the rest.
Free, open source
- 8
Terminal.app
Nothing to install
Already on every Mac, with tabs and profiles. Enough for occasional commands, thin for a full day of development.
Free, built into macOS
Your dev servers, Claude Code and Codex in one window
Open a shell next to your logs, then switch projects without stopping them
A three-minute tour: start a stack, free a busy port, and run Claude Code and Codex side by side.Click a step to run it, or anything in the window. It all runs in your browser.
Three-minute tour · 3:19
lpm in 3 minutes
lpm is a desktop app with a multi-pane terminal workspace. Open this page on your computer to try the interactive demo.
Or check your computers from your iPhoneWhy a Mac-focused terminal workspace feels different
lpm uses the macOS system webview instead of packaging an Electron runtime, with separate native builds for Apple silicon and Intel Macs.
No bundled Electron runtime
Hyper and Tabby package Electron with their apps. lpm uses the webview already provided by macOS, so its download does not include a separate Chromium runtime.
Terminal.app is general-purpose
Apple's built-in Terminal gives you a capable shell window. lpm adds the project sidebar, service controls, and live dashboard that a multi-service development stack needs.
iTerm2 manages sessions, not projects
iTerm2 offers tabs, profiles, and split panes. lpm adds project-aware service definitions, one-click stack controls, and live state for every repo in a visual sidebar.
A Mac-native terminal workspace, not another tab strip
What you get beyond a single shell window.
Native Apple silicon and Intel builds
Ships separate native builds for Apple silicon and Intel Macs. No Rosetta on Apple silicon, no Electron, and no bundled Chromium runtime — the app uses the webview already provided by macOS.
Every service in one window
Watch your API, worker, database, and Next.js frontend stream live logs side by side in one native window. No more ten iTerm2 tabs guessing which one crashed.
Visual project switcher
Every project sits in a sidebar with live state. Click one, press ⌘1–⌘9, or hold Ctrl and tap Tab for the ones you used last. No more cd ~/code/long/path, no more “which Terminal.app window was that?”.
One-click full-stack start
One click starts the whole stack. lpm sets it up from the files already in your repo, whether Rails, Next.js, Django, Go, Laravel or Docker Compose, and the config editor can have AI refine it.
A Files tab in the same pane
⌘⇧E opens a folder tree beside your shells, ⌘P jumps to any file by name, and the editor saves with ⌘S. Markdown renders the way GitHub shows it, and images preview inline.
A browser tab next to your shells
Open a web page as a tab beside your terminals, with an address bar, back, forward, and reload. A quick look at localhost without switching windows; your real browser is still one click away.
Great git terminal on macOS
Run every git command in your own shell, or use the branch switcher in the footer, commit with an AI-drafted message, and open a pull request from the same window. More on lpm as a git terminal for Mac.
Plays well with your other apps
Open any project in Cursor, VS Code, Zed, Xcode, WebStorm, iTerm, Ghostty, Warp, or Finder with one click; only the apps you have are listed. Pick a light or dark theme, or let it follow macOS.
Everything you expect from a Mac terminal
lpm's panes are real terminals, rendered on the GPU with 24-bit color. The everyday tools are all there.
Your login shell
zsh, bash, or fish with your dotfiles, prompt, and version managers, starting in the project folder.
Split panes
⌘D splits right, ⌘⇧D splits down. Drag tabs between panes; each project remembers its layout.
Find and filter
⌘F searches a terminal or log. Filter mode hides every line that doesn't match.
Themes and fonts
Eight color themes, including Dracula, Nord, and One Dark, any installed monospace font, and ⌘+ / ⌘− to resize.
Clickable paths and links
Click src/app.ts:42:7 in the output to open the file at that line. URLs open in your browser.
Copy that pastes clean
Copying rejoins wrapped lines and strips the margin bars agents draw, so pasted code stays code.
Paste a screenshot
Paste an image into a terminal and lpm saves it and types the path, ready for an agent to read.
Pinned tabs and undo close
Pin a tab so ⌘W can't close it, and bring back a closed tab with its scrollback from the Undo toast.
A window per project
Detach a local project into its own window and put it on another display. Take control moves any terminal to the window you're in.
What changes when you stop fighting your terminal
The first hour, before and after.
Before lpm: Ten terminal commands to bring up the API, worker, database and frontend
With lpm: Open the project and press Start. Every service is live in one window
Before lpm: Switching repos means stopping servers and losing scrollback
With lpm: The first project keeps running in the background, logs and history intact
Before lpm: Guessing which iTerm2 tab has the migration running
With lpm: Every running service has its own labeled pane
Before lpm: Electron-based terminals bundle their own Chromium runtime
With lpm: lpm uses the webview macOS already provides, native on Apple Silicon and Intel
Workflows your terminal on Mac should actually make easy
Three everyday flows for Mac developers, built around a native workspace.
Go from a fresh clone to a running stack
Paste the repo URL into Add a project and choose Clone repository, or add a folder you already have. lpm reads the manifests and sets up the services, whether Rails, Next.js, Django, Go, Docker Compose, or a Procfile. Hit Start and every service streams live output side by side, with no digging through the README for start commands.
Switch between client projects without losing state
Each project gets its own sidebar entry with live status. Leave the first running while you jump to the second; both keep their servers, their terminal history, and their logs. When you switch back, nothing has to reboot.
Use your shell of choice alongside git and your services
lpm panes are real terminals — zsh, bash, or fish, with your dotfiles intact. Run git rebase -i in one pane, npm run dev in another, and rails console in a third, all in the same macOS window.
lpm vs iTerm2, Terminal.app, tmux, Hyper, and Warp
Every one of these renders text fast on Apple Silicon. These rows start with what the app itself costs and how it is built, then move to what it knows about the project you opened.
| Capability | lpm | iTerm2 | Terminal.app | tmux | Hyper | Warp |
|---|---|---|---|---|---|---|
| Native Apple Silicon build, no Electron runtime | Yes | Yes | Yes | Yes | No | Yes |
| Free | Yes | Yes | Yes | Yes | Yes | Yes |
| Open source | Yes | Yes | No | Yes | Yes | Yes |
| Visual project switcher with live state | Yes | No | No | No | No | No |
| Built-in project-aware full-stack start | Yes | No | No | No | No | No |
| Built-in service definitions with live output | Yes | No | No | No | No | No |
| Sets up your services from the repo's manifests | Yes | No | No | No | No | No |
| Claude Code and Codex side by side, each in its own copy | Yes | No | No | No | No | No |
| Project setup you edit inside the app | Yes | No | No | No | No | No |
Native Apple Silicon build, no Electron runtime
- lpm: yes
- iTerm2: yes
- Terminal.app: yes
- tmux: yes
- Hyper: no
- Warp: yes
Free
- lpm: yes
- iTerm2: yes
- Terminal.app: yes
- tmux: yes
- Hyper: yes
- Warp: yes
Open source
- lpm: yes
- iTerm2: yes
- Terminal.app: no
- tmux: yes
- Hyper: yes
- Warp: yes
Visual project switcher with live state
- lpm: yes
- iTerm2: no
- Terminal.app: no
- tmux: no
- Hyper: no
- Warp: no
Built-in project-aware full-stack start
- lpm: yes
- iTerm2: no
- Terminal.app: no
- tmux: no
- Hyper: no
- Warp: no
Built-in service definitions with live output
- lpm: yes
- iTerm2: no
- Terminal.app: no
- tmux: no
- Hyper: no
- Warp: no
Sets up your services from the repo's manifests
- lpm: yes
- iTerm2: no
- Terminal.app: no
- tmux: no
- Hyper: no
- Warp: no
Claude Code and Codex side by side, each in its own copy
- lpm: yes
- iTerm2: no
- Terminal.app: no
- tmux: no
- Hyper: no
- Warp: no
Project setup you edit inside the app
- lpm: yes
- iTerm2: no
- Terminal.app: no
- tmux: no
- Hyper: no
- Warp: no
Ghostty, Warp, iTerm2, WezTerm, Kitty, Alacritty, Terminal.app — and lpm
All seven are good terminals, and lpm is not trying to out-render them. Here is what each one is, where it wins, and where lpm sits.
Ghostty
- What it is
- Fast, native, GPU-accelerated terminal emulator with a platform-native macOS UI.
- Where it shines
- Raw rendering speed and native feel with almost no configuration required.
- How lpm differs
- lpm doesn't compete on emulator speed — it manages the project around the terminal. If you only want a faster single pane, pick Ghostty.
Warp
- What it is
- AI-native terminal with block-based input. Open source — the client has been AGPLv3 since April 2026.
- Where it shines
- AI assistance built into the shell itself: suggestions, command generation, agent features.
- How lpm differs
- lpm takes the other route to AI: it runs the agent CLIs you already use — Claude Code, Codex — alongside your services instead of building AI into the shell.
iTerm2
- What it is
- The mature macOS standard, deeply configurable after 15+ years of development.
- Where it shines
- Split panes, profiles, triggers, tmux integration — a setting for nearly everything.
- How lpm differs
- iTerm2 manages sessions; lpm manages projects. One click starts the whole stack, with live output per service.
WezTerm
- What it is
- Cross-platform GPU-accelerated emulator configured entirely in Lua.
- Where it shines
- One scriptable config that follows you across macOS, Linux, and Windows.
- How lpm differs
- lpm is built Mac-first, and its per-project setup is edited in the app rather than scripted in Lua — it starts your services, not just your shell.
Kitty
- What it is
- OpenGL-rendered emulator for macOS and Linux, set up in a single kitty.conf file.
- Where it shines
- Keyboard control: split layouts, tabs, and kittens — small programs that extend it, from remote file editing to Unicode input.
- How lpm differs
- Kitty rewards you for scripting your setup; lpm keeps it in the app, where each project knows its own services and agents. If you live in config files, Kitty fits better.
Alacritty
- What it is
- Minimal GPU-accelerated emulator — deliberately no tabs or splits; most people pair it with tmux.
- Where it shines
- Doing one thing fast. The simplest terminal on this list, by design.
- How lpm differs
- The opposite philosophy: lpm puts services, project switching, and AI agents in one window. If minimalism is the point, Alacritty is the better pick.
Terminal.app
- What it is
- The terminal Apple ships with macOS, with tabs, window groups and profiles.
- Where it shines
- Zero setup, and it is already there on every Mac you sit down at.
- How lpm differs
- Terminal.app runs a shell; lpm runs the project around it, with every dev server in its own pane and Claude Code or Codex in the next tab.
lpm is not a raw emulator replacement. It is for the day your terminal stops being one shell and becomes the place a whole project runs — dev servers with live logs, one-click switching between repos, and coding agents working next to your services. If agents are the reason you're shopping, see the guide to the best terminal for Claude Code and Codex.
What Mac developers ask before switching terminals
What is the best terminal for Mac in 2026?
It depends on what you do in it. For speed with a native feel, Ghostty. For a setting for everything, iTerm2. For AI inside the shell, Warp. For one config across Mac, Linux and Windows, WezTerm. For keyboard-driven setups, Kitty, and for minimalism with tmux, Alacritty. If your day is dev servers plus Claude Code or Codex across several projects, lpm runs all of it in one window, free and open source.Is Ghostty better than iTerm2?
They suit different people. Ghostty needs almost no configuration and its macOS interface is written in Swift, so it feels like part of the system from the first launch. iTerm2 has the deeper feature set — profiles, triggers and tmux integration — if you want to tune everything. Neither starts your dev servers or tracks coding agents; lpm does, and it runs happily next to either.Does lpm run natively on Apple silicon Macs?
Yes. lpm provides separate native downloads for Apple silicon and Intel Macs, so the Apple silicon build does not require Rosetta. The app uses the macOS system webview rather than bundling Electron or Chromium.Is lpm a free terminal for Mac?
Yes. lpm is free to download from lpm.cx and the source is public on GitHub. There is no paid tier gating the terminal, the project switcher, or the dev stack features.Is lpm a good git terminal for Mac?
Yes, and the output looks the way you expect it to. Panes are real macOS terminal sessions with GPU-accelerated rendering, 256-color and 24-bit color escapes drawn as sent, and Unicode 11 character widths, so colored diffs, prompt themes, and full-screen tools like lazygit or tig draw correctly. URLs and file paths in the output are clickable. You run git in one pane and your dev servers in another, inside the same native window. When you'd rather click, the footer has a branch switcher, a Commit dialog that drafts the message with AI, and Create PR.Is lpm a good iTerm2 alternative on Mac?
If you picked iTerm2 for tabs and split panes, lpm gives you those plus a visual project sidebar, a one-click full-stack start, and live output per service. If you only need a raw terminal with no project awareness, iTerm2 is still a fine choice — lpm is the step up for developers juggling multiple services and projects. There is a side-by-side comparison of lpm and iTerm2 if you want the details.How do I download lpm for macOS?
Use the download button on this page, open the .dmg, and drag lpm to your Applications folder. The app supports macOS 12 and later on both Apple Silicon and Intel Macs. On first launch, point it at any project folder and lpm detects the services it can run.Does lpm have split panes, search, and themes?
Yes. ⌘D splits a pane to the right and ⌘⇧D splits it down, ⌘F searches any terminal or service log with an optional filter mode, and you can pick one of eight color themes, any installed monospace font, and a font size from 8 to 24. Each project remembers its own pane layout.Can I browse and edit files in lpm?
Yes, lightly. The Files tab (⌘⇧E) shows the project's folder tree, ⌘P jumps to any file by name, and the editor has syntax highlighting and saves with ⌘S. Markdown renders GitHub-style and images preview inline. It is not an IDE, so Open with sends the project to Cursor, VS Code, Zed, or Xcode when you need one.Is lpm a good terminal for beginners on Mac?
Yes. Beginners get a visual sidebar, one-click Start and Stop buttons, and services set up automatically for common frameworks like Rails, Next.js, Django, Flask, and Laravel. You never have to memorize which command starts which server: the Start menu lists every service by name, and your own commands become labelled buttons, while a full macOS terminal is still there when you want one.
Keep reading
Mac terminal for developers
Services, logs and agents for the whole stack, inside one native Mac app.
Git terminal for Mac
Git work next to live dev-server output, in one window.
Terminal with a project sidebar
What replaces the tab row: one persistent row per project, holding its terminals and running state.
lpm vs iTerm2
Side by side with the Mac terminal you already have open — including where iTerm2 still wins.
Best terminal for Claude Code and Codex
Claude Code and Codex status, needs-you alerts and plan limits at a glance.
Every lpm feature
Every lpm feature, area by area.
Download the best terminal for Mac.
Free, native, Apple Silicon ready.
Native builds for Apple Silicon and Intel Macs. Drag to Applications and you're in. Works on every Mac running macOS 12 or later.