https://github.com/thdxg/macterm
A native macOS terminal with vertical tabs and persistent multiplexing
https://github.com/thdxg/macterm
ghostty macos multiplexer terminal
Last synced: 14 days ago
JSON representation
A native macOS terminal with vertical tabs and persistent multiplexing
- Host: GitHub
- URL: https://github.com/thdxg/macterm
- Owner: thdxg
- License: mit
- Created: 2026-04-12T04:22:18.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-02T15:07:35.000Z (18 days ago)
- Last Synced: 2026-06-02T15:18:58.597Z (18 days ago)
- Topics: ghostty, macos, multiplexer, terminal
- Language: Swift
- Homepage:
- Size: 81.1 MB
- Stars: 238
- Watchers: 0
- Forks: 11
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Macterm
A native macOS terminal with vertical tabs and persistent multiplexing, built on libghostty

## Features
- **Vertical Project Sidebar**: Native macOS sidebar for organizing projects and tabs vertically.
- **Persistent Multiplexing**: Projects, tabs, and panes are saved and restored automatically on relaunch.
- **Ghostty Config Compatibility**: Macterm reads your existing `~/.config/ghostty/config`. Theme, font, palette, keybinds — all of it just works.
- **Keyboard-first Navigation**: Customizable keybinds for navigating projects, tabs, and panes.
- **Command Palette**: Versatile command palette to interact with multiplexing and manage projects
- **Quick terminal**: Global terminal accessible from anywhere with a hotkey.
## Install
### Homebrew
```bash
brew install --cask thdxg/tap/macterm
```
The cask strips the Gatekeeper quarantine xattr on install, so the app launches without any extra prompts. Updates are delivered via Sparkle inside the app.
### From Releases
Download the latest `.dmg` from [Releases](https://github.com/thdxg/macterm/releases), open it, and drag Macterm to Applications.
Since the app isn't signed with an Apple Developer certificate, macOS will block it on first launch. To allow the app to launch, run this command in another terminal (you only need to do this once):
```bash
xattr -cr /Applications/Macterm.app
```
## Demos
### Keybinds
Macterm is very keyboard-oriented, so you can perform the majority of actions without lifting your hand.
https://github.com/user-attachments/assets/42b2dce8-1d6d-41d6-a4c8-2e0c1339810b
### Window Opacity & Blur
Macterm's window appearance is highly customizable and hot-reloaded. Drop the
opacity below 100% and choose between a classic Gaussian **Background Blur** or
the macOS 26 **Liquid Glass** material — in two styles, frostier **Regular** or
more transparent **Clear** — all in **Settings → General → Window**.
https://github.com/user-attachments/assets/1486ed55-e653-43ce-98aa-232a61d234a7
## Configuration
Macterm reads your `~/.config/ghostty/config` on launch — themes, fonts, palettes, keybinds, and everything else Ghostty supports works the same here. See the [Ghostty option reference](https://ghostty.org/docs/config/reference) for the full list of available settings. If your config is elsewhere, set the path in **Settings → General → Ghostty Config**.
Macterm ships a thin defaults layer on top of Ghostty's own defaults. These are the values that differ:
| Option | Macterm default | Ghostty default |
| -------------------------------------------------------------------------------------- | --------------- | --------------- |
| [`theme`](https://ghostty.org/docs/config/reference#theme) | `Rose Pine` | _(none)_ |
| [`font-size`](https://ghostty.org/docs/config/reference#font-size) | `16` | `12` |
| [`window-padding-x`](https://ghostty.org/docs/config/reference#window-padding-x) | `16` | `2` |
| [`window-padding-y`](https://ghostty.org/docs/config/reference#window-padding-y) | `16` | `2` |
| [`macos-option-as-alt`](https://ghostty.org/docs/config/reference#macos-option-as-alt) | `true` | `false` |
Add any of these to your Ghostty config to override them. Macterm-specific settings (window opacity, blur style, quick terminal size, hotkeys) live in **Macterm → Settings**.
A few settings are overridden because Macterm handles that chrome itself: `background-opacity` and `background-blur` are forced to `0` (use **Settings → General → Window** instead), and titlebar, window decoration, split-divider, and quick-terminal settings are ignored.
Ghostty keybinds work normally unless they conflict with a Macterm shortcut — on conflict, Macterm wins. Every Macterm shortcut is rebindable in **Settings → Keymaps**. Note that Ghostty app-level actions (`new_split`, `new_tab`, etc.) do nothing in Macterm; use Macterm's own keybinds for those.
Shell integration works standalone — no Ghostty.app needed. The one exception is `ssh-env`, `ssh-terminfo`, and `path` features, which require the `ghostty` CLI; install Ghostty.app to enable them.
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for setup, build, and PR guidelines.
## License
MIT