Mightty
The fast, lightweight terminal for macOS.
Download for macOS Install guide
Version 0.1.0. Requires macOS 12 or later. Runs on Apple Silicon and Intel. All versions
Performance
Benchmarked against Ghostty and kitty on the same Mac. Each terminal was launched fresh with its default settings.
| Mightty | Ghostty | kitty | |
|---|---|---|---|
| Plain-text throughput | 239 MiB/s | 213 MiB/s | 103 MiB/s |
| Time to open a window with a shell | 57 ms | 157 ms | 370 ms |
| Memory at idle | 41 MiB | 72 MiB | 102 MiB |
| Response time under heavy output | 0.05 ms | 0.20 ms | 4.41 ms |
Medians on an M2 running macOS 15, at 120×40 in Menlo 14, against Ghostty 1.4.0 and kitty 0.49.2. The performance page covers CPU use, typing latency and further throughput tests, and describes the method.
Coding agents
Mightty detects when Claude Code, Codex or another coding agent is waiting for your input. If the agent's pane is not in view, Mightty outlines it in orange, adds it to the count on the Dock icon, and sends a notification when you are in another app. Press ⌘⇧A to go to the pane that has been waiting longest.
Agents can also control Mightty through MCP. An agent can open its own panes, run commands in them, and read the output and exit codes. It has no access to your other panes unless you grant it.
# add Mightty to Claude Code claude mcp add mightty -- mightty mcp # drive panes from a script mightty ctl run --pane 1 -- make test mightty ctl spawn --right -- npm run dev mightty ctl wait 3 --text "ready" mightty ctl attention
Tabs and splits
- Press ⌘T to open a tab in the current folder. Drag a tab to reorder it, to move it into its own window, or to move it to another window.
- Press ⌘D to split a pane to the right, and ⌘⇧D to split it downwards. ⌘⇧↩ zooms a pane to fill the window.
- Press ⌘Z within 5 seconds of closing a tab, pane or window to restore it with its programs still running. After that, ⌘⇧T reopens it with new shells.
- The command palette (⌘⇧P) lists every action with its key.
- The quick terminal slides down from the top of the screen in any app, on a global key that you choose.
Settings
Press ⌘, to open the settings in a tab. You can search them, values are completed as you type, and themes and fonts are previewed before you choose one.
Changes are written to ~/.config/mightty/config, and your comments are left in place. Edits saved from any other editor are applied within a second.
Mightty settings ~/.config/mightty/config Window macos-titlebar-style tabs background-opacity 0.95 cursor-style block window-padding-x 6 cursor-style: block, bar, underline or block_hollow cursor-style = block → complete
Terminal protocols
- Kitty graphics protocol, including animation, relative placements and Unicode placeholders.
kitten icatplays GIFs. - Kitty keyboard protocol, with all five enhancements.
- Unicode 17 character widths and grapheme clusters, with mode 2027.
- OSC 8 hyperlinks, opened with ⌘-click.
- Styled underlines: double, curly, dotted and dashed, in any colour (SGR 58).
- OSC 52 clipboard access. By default, Mightty asks before a program reads the clipboard.
- OSC 9;4 progress bars, OSC 22 pointer shapes, OSC 4, 10–12 colours.
- OSC 133 shell integration for zsh, bash and fish, without editing your dotfiles.
How it's built
Mightty is built on Rust's standard library and the frameworks that ship with macOS. It uses no third-party crates and no UI toolkit. The architecture page describes the design.
- Windows and input
- AppKit, called directly
- Drawing
- Metal
- Text
- CoreText
- Scripting
- JSON-RPC over a Unix socket, and MCP
- Embedding
libmightty, the terminal core as a C library with a stable C ABI