Skip to content

Repository files navigation


Macterm

A macOS terminal with session persistence, smart multiplexing, and native UI. Built on libghostty.

Latest version Total downloads CI status macOS 14+

Documentation · Website · Releases

Macterm's vertical project sidebar beside an editor and shell split

More screenshots →

Features

  • Session persistence
    Quitting detaches your shells instead of killing them; relaunching brings them back with scrollback and running processes intact.
  • Multiplexing
    Drag a pane onto another to join them, or separate one into its own tab — by drag or by keybind. Projects, tabs, and split layouts are saved and restored on relaunch.
  • Remote projects
    Open a directory on another machine over SSH. Your shells keep running there, surviving quits, dropped connections, and even a local reboot.
  • Vertical project sidebar
    Organize projects and their tabs in a native macOS sidebar, stacked vertically where there's room to read them.
  • Pinned tabs
    Pin a tab above your projects to keep it running: it starts on every launch, and restores itself with its command if the session dies.
  • Command palette
    Press ⌘P to split panes, switch projects, or open a directory. Every action is a keystroke away, and each row shows its keybind.
  • Declarative layouts
    Describe a project's tabs, splits, and per-pane commands in YAML; Macterm builds the workspace from it on open.
  • Control CLI
    A bundled macterm command drives the running app, so scripts and AI agents can spawn panes, run commands, and script layouts.
  • Quick terminal
    A global drop-down terminal on a hotkey (⌃`), for scratch work from anywhere.
  • Adaptive background
    The window picks up the background color the running program paints. A full-screen TUI tints the whole window to match; in a split, each pane takes its own.
  • Ghostty compatibility
    Reads your existing Ghostty config. Theme, font, keybinds: all of it just works.

Install

Homebrew

brew install --cask thdxg/tap/macterm

The cask strips the Gatekeeper quarantine attribute on install, so the app launches without extra prompts.

From Releases

Download the latest .dmg from Releases, open it, and drag Macterm to Applications. Since the app isn't signed with an Apple Developer certificate, clear the quarantine flag once:

xattr -cr /Applications/Macterm.app

Sparkle handles updates from there, verifying an EdDSA signature on each one — so you won't need xattr again.

Documentation

Full guides live at macterm.thdxg.dev/docs:

Cookbook

The Cookbook collects workflows and recipes from the community — the layouts, keybinds, and scripts people actually run to get more out of Macterm. Three to start with: one ⌃hjkl chord that moves between nvim's splits and Macterm's panes, driving an interactive program from a script, and giving a coding agent control of Macterm.

Got a recipe of your own? Start a Cookbook topic — anyone can post, and anyone can borrow.

Contributing

See CONTRIBUTING.md for setup, build, and PR guidelines.

License

MIT

About

A beautiful macOS terminal with vertical tabs, session persistence, and native UI

Topics

Resources

Code of conduct

Contributing

Stars

430 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages