The terminal
that remembers
Macterm is a macOS terminal for keeping your projects organized and right where you left them.
// what you get
Built for people who live in the terminal
-
Vertical project sidebar
Organize projects and their tabs in a native macOS sidebar, stacked vertically where there's actually room to read them.
-
Persistent multiplexing
Projects, tabs, and panes are saved and restored on relaunch. Close the app and your whole workspace comes back.
-
Command palette
Press ⌘P to split panes, switch projects, or open a directory. Every action is one keystroke away.
-
Declarative layouts
Describe a project's tabs, splits, and per-pane commands in
layout.yaml. Open the project; the workspace builds itself. -
Quick terminal
A global terminal that drops down from anywhere with a hotkey, then gets out of your way when you're done.
-
Ghostty config compatibility
Reads your existing
~/.config/ghostty/config. Theme, font, keybinds — all of it just works.
// declarative layouts
Commit a layout. Open the project.
Drop a .macterm/layout.yaml in any repo to describe its
tabs, split ratios, working directories, and the command each pane
runs. The file is the source of truth — Macterm reconciles the
live workspace toward it, restarting only the panes that drifted.
- Save layout writes your current workspace out, capturing each pane's live command.
- Apply layout rebuilds from the file with minimal disruption — matching panes are kept, not killed.
# yaml-language-server: $schema=…/layout.schema.json
name: "MyApp"
tabs:
# a single-pane tab
- run: "npm run dev"
# a tab with a custom name and splits
- name: "Dev"
split:
direction: horizontal
ratio: 0.6
first:
cwd: "./api"
run: "npm run dev"
second:
split:
direction: vertical
first: { cwd: "./api", run: "npm test -- --watch" }
second: {} # plain shell pane
// install
Up and running in a minute
Homebrew
The cask strips the Gatekeeper quarantine flag on install, so it launches with no extra prompts.
brew install --cask thdxg/tap/macterm
Direct download
Grab the .dmg, then clear the quarantine flag once, since the app isn't signed with an Apple Developer certificate:
xattr -cr /Applications/Macterm.app