Skip to content

feat(terminal): add Ghostty as a terminal choice for session resume#405

Merged
graydawnc merged 1 commit into
mainfrom
feat/terminal-ghostty
Jul 7, 2026
Merged

feat(terminal): add Ghostty as a terminal choice for session resume#405
graydawnc merged 1 commit into
mainfrom
feat/terminal-ghostty

Conversation

@graydawnc

Copy link
Copy Markdown
Collaborator

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 to SUPPORTED_TERMINALS, the installed-app check (/Applications/Ghostty.app), and a runner. macOS has no direct Ghostty CLI, so it launches 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 appended to the auto-detect probe list rather than inserted, so adding it never changes which terminal an existing user (running several, with no explicit preference) auto-detects.
  • renderer/SettingsPanel.tsx — Ghostty added to the terminal picker.

Test plan

  • New vitest coverage in terminal.test.ts: Ghostty is in SUPPORTED_TERMINALS, the runner builds the expected open --args -e command with and without a cwd, and keeps the window alive. The suite pins process.platform to darwin before import so the macOS runners are exercised on the ubuntu-only CI unit job.
  • Verified locally in pnpm dev: Settings → Terminal → Ghostty, then Resume in terminal opens a Ghostty window in the session directory.
  • Full app vitest suite green.

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>
@graydawnc
graydawnc added this pull request to the merge queue Jul 7, 2026
Merged via the queue into main with commit 2dfb92e Jul 7, 2026
6 checks passed
@graydawnc
graydawnc deleted the feat/terminal-ghostty branch July 7, 2026 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant