feat(terminal): add Ghostty as a terminal choice for session resume#405
Merged
Conversation
Adds Ghostty to the supported terminals for "Resume in terminal". On macOS Ghostty has no direct CLI, so it is launched via `open -a Ghostty --args -e sh -c '…; exec $SHELL'` — matching the existing kitty/Alacritty/WezTerm pattern where `exec $SHELL` keeps the window alive after the resume command exits. It is wired into auto-detection, the installed-app check, and the Settings terminal picker. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds Ghostty to the terminals Spool can launch for "Resume in terminal", both as an explicit choice in Settings → Terminal and as an auto-detected running terminal.
Why
Requested in #403. Ghostty is a popular terminal that Spool didn't support, so users running it had their resume fall back to Terminal.app.
How it connects
main/terminal.ts— Ghostty is added toSUPPORTED_TERMINALS, the installed-app check (/Applications/Ghostty.app), and a runner. macOS has no direct Ghostty CLI, so it launches viaopen -a Ghostty --args -e sh -c '…; exec $SHELL', matching the existing kitty/Alacritty/WezTerm pattern whereexec $SHELLkeeps the window alive after the resume command exits.renderer/SettingsPanel.tsx— Ghostty added to the terminal picker.Test plan
terminal.test.ts: Ghostty is inSUPPORTED_TERMINALS, the runner builds the expectedopen --args -ecommand with and without a cwd, and keeps the window alive. The suite pinsprocess.platformtodarwinbefore import so the macOS runners are exercised on the ubuntu-only CI unit job.pnpm dev: Settings → Terminal → Ghostty, then Resume in terminal opens a Ghostty window in the session directory.