One hotkey. The terminal is already open.
A terminal, not a cockpit — it just happens to know which agent is waiting for you.
Press ⌥ Space anywhere and it slides down over whatever you were doing. Press it again and it is gone.
⌘ D splits right, ⌘ ⇧ D splits down, and every pane is a real shell. ⌘ ⇧ ↩ blows one pane up to fill the tab and back again. Quit with three tabs and a split, and that is what comes back — the shape, the proportions, and each pane in its own folder. |
The whole iTerm2-Color-Schemes catalog ships with the app, so it works on a clean machine with nothing else installed. Pick one and the running panes repaint — no restart, no reload. |
The three things people actually reach for are one click away on the tab bar, not buried in Settings. Drag the handle on the bottom edge to resize the panel. The camera button records the active tab to MP4 in Only the terminal is in frame — not the chrome, not the tab bar, not what is behind the panel. |
In Finder it is already there: a button in the toolbar, and New Terminal in the right-click menu — on a folder, on a file, or on the empty space in the window. Whichever you point at, the tab opens in that folder. |
Homebrew
brew tap hakanuzum/notchshell
brew trust hakanuzum/notchshell
brew install --cask notchshellbrew trust is Homebrew's own requirement for taps outside its official ones, asked once.
Or the disk image — download the latest .dmg from
Releases and drag the app onto
Applications. It is signed ad-hoc rather than notarized, so right-click it in
/Applications and choose Open once; after that it opens normally.
Notchshell lives in the menu bar with no Dock icon, and looks best with the Dock at the bottom, where the panel gets the full width.
The terminal is Ghostty, so the first half is mostly its answers rather than ours — which is the point of embedding it. The second is the app around it, and the reason this exists at all.
| Notchshell | Ghostty | iTerm2 | WezTerm | Kitty | Alacritty | |
|---|---|---|---|---|---|---|
| Terminal | ||||||
| GPU rendering | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| True colour | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ligatures | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Unicode | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Styled underlines | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Synchronized output | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Kitty keyboard | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
| OSC 52 clipboard | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OSC 8 hyperlinks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Shell integration | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Notifications | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Kitty graphics | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| iTerm2 images | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ |
| Sixel | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ |
| Tabs | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Split panes | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Multiplexer | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| App | ||||||
| Drop-down panel | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Every Space | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Agent awareness | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Bundled themes | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Command palette | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
| Recording | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Finder extension | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Socket + MCP | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Session restore | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Two gaps, both deliberate. Sixel is Ghostty's call — it does the Kitty graphics protocol instead. A multiplexer means detach and re-attach, and tabs, splits and session restore cover what that is usually reached for.
Every Space means the panel joins all of them, so the hotkey brings down the shell you were already in rather than a new window wherever you happen to be.
notchshell links itself into ~/.local/bin the first time the app runs, so it is
there from any shell:
notchshell . # a tab in this folder, like code . or zed .
notchshell ~/src/app # or any other
notchshell # just drop the terminalmacOS has no "default terminal" setting, so Notchshell answers the other routes too:
open -a Notchshell <path>, the notchshell:// URL scheme, and Finder. In VS Code,
point "terminal.external.osxExec" at Notchshell.app and Open in External Terminal
lands here.
From Finder, Notchshell installs an extension that puts it where you are looking: a button in the toolbar, and New Terminal in the right-click menu. Enable it once under System Settings → General → Login Items & Extensions.
Opening a folder that already has a tab shows that tab rather than making another, so clicking the toolbar button twice does not leave two of the same. When you do want a second shell in the same place, ⌥ ⌘ T clones the tab you are in.
| Toggle terminal | ⌥ Space | Split right · down | ⌘ D · ⌘ ⇧ D |
| Pin / unpin | ⌘ ⇧ P | Next / previous pane | ⌘ ] · ⌘ [ |
| New tab · clone · close | ⌘ T · ⌥ ⌘ T · ⌘ W | Zoom pane | ⌘ ⇧ ↩ |
| Reopen closed tab | ⌘ ⇧ T | Copy · paste | ⌘ C · ⌘ V |
| Next / previous tab | ⌘ ⇧ ] · ⌘ ⇧ [ | Clear screen · find | ⌘ K · ⌘ F |
| Go to tab 1–9 | ⌘ 1 – ⌘ 9 | Command palette | ⌘ P |
| Rename tab | double-click | Settings · Help | ⌘ , · ⌘ / |
Unpinned, the panel hides when it loses focus — pin it to keep it down. Every shortcut above except ⌘ 1–⌘ 9, ⌃ ⇥ and ⌘ / can be changed in Settings.
Under the hood
Swift and AppKit — no Electron, no web view. The terminal itself is Ghostty, GPU-rendered on Metal, with true colour and ligatures.
Your config stays yours. Notchshell reads ~/.config/ghostty/config and never
writes to it. Anything you change in the app lands in
~/.config/notchshell/overrides.conf, which your config is included into. It does not
write your shell configuration either.
Automation, all off or ask-first by default, and nothing phones home:
# Unix socket — JSON in, JSON out. See API.md for every action.
echo '{"action":"state"}' | nc -U /tmp/notchshell.sock
# MCP — an HTTP server exposing 18 tools, so an agent can drive the terminal
claude mcp add --transport http notchshell http://localhost:19876/mcpBuild from source. Needs macOS 14+, a full Xcode install (not just Command Line Tools) and Zig 0.15.2 exactly — libghostty is version-gated and 0.16 fails immediately.
git clone --recursive https://github.com/hakanuzum/notchshell.git
cd notchshell && brew install zig@0.15
./scripts/build-ghostty.sh # libghostty from vendor/ghostty (slow, once)
./scripts/build-install.sh # build, sign, install to /Applications
./scripts/run-tests.sh # every suite© 2026 Hakan Uzum. The source is public to read and the app is free for personal, non-commercial use — but commercial use and redistribution are not permitted. See LICENSE for the exact terms.
Notchshell began as a fork of macuake by menemy (MIT), and owes it the shape of the thing. It stands on Ghostty (MIT) for the terminal, iTerm2-Color-Schemes (MIT) for the themes, and Sparkle for updates. Their notices are reproduced in LICENSE.






