Skip to content

feat(desktop): add Ghostty terminal support - #950

Merged
Kitenite merged 2 commits into
ParadevAI:mainfrom
daohoangson:feat/ghostty
Jan 26, 2026
Merged

Kitenite merged 2 commits into
ParadevAI:mainfrom
daohoangson:feat/ghostty

Conversation

@daohoangson

@daohoangson daohoangson commented Jan 26, 2026 •

Copy link
Copy Markdown
Contributor

Description

Add Ghostty as an option in the "Open in" menu alongside iTerm, Warp, and Terminal.

Type of Change

  • Bug fix
  • New feature
  • Documentation
  • Refactor
  • Other (please describe):

Testing

  • Use the app, choose to open with Ghostty -> works.
  • The button auto remembers so the next time it opens Ghostty automatically.
  • Also added a unit test to cover the new addition

Screenshots (if applicable)

Screenshot 2026-01-26 at 11 20 36

Additional Notes

I downloaded the logo from https://github.com/ghostty-org/website/blob/28f1a1f/public/ghostty-logo.svg. Hope it's OK.

Summary by CodeRabbit

  • New Features

    • Added Ghostty application integration to the desktop application's file opening capabilities. Users can now select Ghostty from the list of available applications when using the "Open In" functionality to open files with their preferred terminal application.
  • Tests

    • Expanded test coverage to validate proper command execution and argument handling for the newly integrated Ghostty application.

✏️ Tip: You can customize this high-level summary in your review settings.

Copilot AI review requested due to automatic review settings January 26, 2026 04:23
@coderabbitai

coderabbitai Bot commented Jan 26, 2026 •

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This PR adds Ghostty as a new external application option for the "Open In" functionality. Changes include adding Ghostty to the APP_NAMES mapping, EXTERNAL_APPS constant array, OpenInButton component options, and corresponding test coverage.

Changes

Cohort / File(s) Summary
External App Configuration
apps/desktop/src/lib/trpc/routers/external/helpers.ts, packages/local-db/src/schema/zod.ts
Added "ghostty": "Ghostty" entry to APP_NAMES mapping to enable command resolution via macOS open -a mechanism; added "ghostty" string to EXTERNAL_APPS constant array for schema validation.
User Interface Integration
apps/desktop/src/renderer/components/OpenInButton/OpenInButton.tsx
Added Ghostty option to APP_OPTIONS with ghosttyIcon import, extending the public app selection list for "Open In" functionality.
Test Coverage
apps/desktop/src/lib/trpc/routers/external/helpers.test.ts
Added test case validating getAppCommand("ghostty", "/path/to/file") returns expected command with arguments ["-a", "Ghostty", "/path/to/file"].

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Poem

🐰 A terminal so ghostly and bright,
Now opens with Ghostty in sight,
Configuration complete, icon in place,
One more app joins the interface race! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: adding Ghostty terminal support to the desktop application.
Description check ✅ Passed The description covers all required template sections: clear description of changes, type of change marked as new feature, testing details provided, and additional notes included.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds Ghostty terminal emulator as a new option in the "Open in" menu, allowing users to open workspaces and files directly in Ghostty alongside existing terminal options (iTerm, Warp, Terminal).

Changes:

  • Added "ghostty" to the schema's EXTERNAL_APPS array
  • Integrated Ghostty icon and menu option in the OpenInButton UI component
  • Added Ghostty to backend helper mappings for macOS app opening
  • Included unit test coverage for the new terminal option

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/local-db/src/schema/zod.ts Added "ghostty" to EXTERNAL_APPS schema array
apps/desktop/src/renderer/components/OpenInButton/OpenInButton.tsx Added Ghostty icon import and option to APP_OPTIONS array
apps/desktop/src/renderer/assets/app-icons/ghostty.svg Added Ghostty terminal logo SVG asset
apps/desktop/src/lib/trpc/routers/external/helpers.ts Mapped "ghostty" to "Ghostty" macOS application name
apps/desktop/src/lib/trpc/routers/external/helpers.test.ts Added unit test for Ghostty terminal integration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Kitenite Kitenite left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This works, thanks @daohoangson !

@Kitenite
Kitenite merged commit f4e45e6 into ParadevAI:main Jan 26, 2026
16 of 19 checks passed
@daohoangson

Copy link
Copy Markdown
Contributor Author

Thanks for the quick merge!

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.

3 participants