The terminal
that remembers

Macterm is a macOS terminal for keeping your projects organized and right where you left them.

brew install --cask thdxg/tap/macterm
Macterm running on macOS: a vertical project sidebar lists projects on the left, a code editor fills the center, and a Claude Code session runs in a split pane on the right.

// 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.
.macterm/layout.yaml
# 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
Download from Releases ↗