Alpha — Quake-style drop-down terminal for macOS, powered by Ghostty.
One hotkey. Instant terminal. Option+Space slides it down from the top of any screen.
- GPU-accelerated — GhosttyKit Metal renderer. True color, ligatures, GPU text shaping.
- Hotkey toggle —
Option+Space(customizable) from any app. No Dock icon. - Tabs & split panes — multiple sessions with horizontal/vertical splits.
- Ghostty themes — use any Ghostty config for fonts, colors, opacity, keybindings.
- MCP server — built-in HTTP server (port 19876) with 17 tools. Control from Claude Code, Cursor, or any MCP client.
- Socket API — Unix socket at
/tmp/macuake.sockfor scripting. - Auto-updates — Sparkle integration with EdDSA-signed releases.
- Multi-display — follows cursor across screens, notch-aware.
Download from Releases, or:
curl -LO https://github.com/menemy/macuake/releases/latest/download/Macuake.dmg
open Macuake.dmg
# Drag to /ApplicationsRequires: macOS 14+, Swift 5.9+, Zig 0.15.2 (for GhosttyKit).
git clone --recursive https://github.com/menemy/macuake.git
cd macuake
./scripts/build-ghostty.sh # build GhosttyKit xcframework
swift build # debug buildLaunch macuake — it lives in the menu bar (no Dock icon). Press Option+Space to toggle.
| Shortcut | Action |
|---|---|
Option+Space |
Toggle terminal |
Cmd+T |
New tab |
Cmd+W |
Close tab |
Cmd+D |
Split horizontal |
Cmd+Shift+D |
Split vertical |
Cmd+] / Cmd+[ |
Next / previous pane |
Cmd+1..9 |
Switch to tab N |
Cmd+, |
Settings |
macuake uses your Ghostty config (~/.config/ghostty/config). Open it from Settings or:
echo '{"action":"state"}' | nc -U /tmp/macuake.sockAdd to Claude Code:
claude mcp add --transport http macuake http://localhost:19876/mcp17 tools available: state, list, toggle, show, hide, pin, unpin, new_tab, focus, close_session, execute, read, paste, control_char, clear, split, set_appearance.
# List tabs with pane tree
claude> list(include_panes=true)
# Focus a specific pane
claude> focus(pane_id="...")
# Navigate panes
claude> focus(direction="next")
# Close a pane (not the whole tab)
claude> close_session(pane_id="...")See API.md for the full reference.
# Execute a command
echo '{"action":"execute","command":"ls -la"}' | nc -U /tmp/macuake.sock
# Read terminal output
echo '{"action":"read","lines":50}' | nc -U /tmp/macuake.sock
# Split pane
echo '{"action":"split","direction":"h"}' | nc -U /tmp/macuake.sockMaQuake/Sources/MaQuake/
├── API/ # ControlServer (socket API)
├── MCP/ # MCPHTTPServer (MCP over HTTP)
├── Panes/ # PaneManager, PaneNode tree
├── Settings/ # SettingsView, HelpView
├── Tabs/ # TabManager, TabBarView
├── Terminal/ # GhosttyApp, GhosttyBackend, GhosttyTerminalView
├── Updates/ # SparkleUpdater
└── Window/ # WindowController, TerminalPanel, ScreenDetector
- GhosttyKit — vendored xcframework, GPU Metal terminal engine
- KeyboardShortcuts — global hotkey (sindresorhus)
- Sparkle — auto-updates
- SPM project (not Xcode),
swift build/swift test
MIT