Skip to content

Spike: native macOS app on libghostty #114

Description

@karngyan

Why

A native shell around flue dissolves the browser-imposed limits structurally instead of patching them one escape hatch at a time: Option as Meta (#63), Ctrl+W and the other reserved chords (#64), and the kitty keyboard protocol (#65) all become the terminal library's problem, already solved there. On top: a global hotkey that opens the ⌘K fleet switcher from anywhere, and a menu bar item with the needs-you count.

Shape

This starts as a spike, not a build. libghostty's embedding story is still moving (libghostty-vt exists, the full embedding API has not stabilized), so the questions to answer cheaply first:

  • Can libghostty today render a terminal fed by flue's stream (bytes from the daemon socket) rather than a local pty, cleanly?
  • What does input handling look like when the emulator is remote, who owns the kitty protocol negotiation?
  • Fallback comparison: SwiftTerm, or wrapping the existing web UI in a thin native shell that only adds the global hotkey and menu bar (cheap, solves less).

Output of the spike is a recommendation: build on libghostty now, wait for the API to settle, or take the thin-shell path in the meantime. Anything built during the spike is throwaway.

Notes

Always open source, like everything else here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestepicLarge feature. Decide and break down before building.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions