← All posts

Ghostty

Ghostty on mobile: libghostty for TermRover?

Ghostty is reaching iOS and Android through libghostty. Here is why I am curious about using one shared terminal core in TermRover.

GhosttylibghosttyMobile terminal

I have been noticing more mobile terminals built with Ghostty’s embeddable terminal technology. Echo and VVTerm use it on Apple platforms. AFK and Glowfish are bringing it to both iOS and Android.

It is exciting to see Ghostty on mobile. These are independent apps rather than official mobile editions of Ghostty, but they show that its terminal core can live inside a native phone experience.

It also raises an obvious question: should TermRover use libghostty?

I have been asking that question too. TermRover currently has two terminal backends, one for each mobile platform. They are already fast and responsive, but one shared core could make behaviour more consistent and reduce duplicated work. I am not committing to a migration yet, but I am interested enough to explore it properly.

TL;DR

  • libghostty is an interesting possible shared terminal core for TermRover.
  • Ghostty on iOS already has encouraging build support and several real app integrations.
  • Ghostty on Android is possible, but that is the part I most want to test in a production-shaped app.
  • TermRover’s current terminal is fast and responsive, so this exploration can focus on consistency and maintainability rather than chasing a benchmark.
  • The useful next step is a contained Android prototype.

Ghostty on mobile is already happening

Ghostty is best known as a desktop terminal, but the project is also extracting reusable pieces of its terminal implementation. The first major piece is libghostty-vt, a C and Zig library for parsing terminal sequences and maintaining terminal state.

That work is already showing up in mobile terminals:

  • Echo is an SSH and Mosh terminal for iPhone and iPad. It describes its terminal emulation as powered by Ghostty.
  • VVTerm is an SSH and SFTP client for iPhone, iPad and Mac that uses libghostty.
  • AFK is previewing a direct SSH terminal for iOS and Android, with the same Ghostty engine behind native rendering on both platforms.
  • Glowfish uses libghostty-vt with Metal on iOS and Vulkan or OpenGL on Android.

They are not all solving the same problem or using the same architecture. Some connect directly to a host, while others involve a companion service. What interests me is the shared signal: libghostty is becoming a practical foundation for mobile terminal apps, not just an idea discussed around the desktop project.

The details above come from each project’s own website and were checked on 19 August 2026. Their platform availability and implementation may change.

Why libghostty is interesting for TermRover

TermRover promises the same intuitive terminal experience on iOS and Android, but it currently reaches that experience through two terminal backends.

A shared libghostty core could make terminal behaviour more consistent across both platforms. Escape sequences, Unicode, wide characters, reflow, scrollback, colours and cursor behaviour could all follow the same implementation. Fixes and conformance tests could be shared too.

That would not make TermRover a thin Ghostty wrapper. libghostty-vt provides the terminal-emulation core, not the whole mobile product. TermRover would still own SSH and Mosh connections, tmux integration, tabs, touch scrolling, the keyboard experience, the smart composer and the rest of the interface around the terminal.

That separation is appealing. TermRover can keep its mobile interaction model while relying on one well-tested core for the terminal state underneath it.

Ghostty on iOS already feels real

The iOS path looks encouraging. Ghostty’s build system can produce an XCFramework for libghostty-vt, which fits naturally into Apple applications. More importantly, Echo and VVTerm show that developers can build polished native iPhone and iPad terminals around Ghostty’s technology.

There would still be integration work. Rendering, fonts, selection, touch, backgrounding and view lifecycle remain the application’s responsibility. But Ghostty on iOS no longer feels especially speculative.

Ghostty on Android is the interesting part

Android is where I would like to learn more.

AFK and Glowfish show that Ghostty-backed Android terminals are possible. At the same time, the upstream path is not as established as the Apple one. Ghostty currently documents libghostty-vt compatibility for macOS, Linux, Windows and WebAssembly, while a recent Android build discussion covers native linking and Android’s 16 KB page-size requirement.

That does not read to me as a dead end. It reads as something worth trying in the actual environment TermRover needs to support.

I would want an Android prototype to answer practical questions:

  • Can it be built and packaged reliably for the Android architectures TermRover supports?
  • Does it load correctly on current devices, including devices using 16 KB memory pages?
  • How does it behave with large scrollback buffers, Unicode and rapid resizing?
  • Do tmux mouse mode, copy mode and full-screen terminal applications behave correctly?
  • What happens as the app suspends, resumes and reconnects over SSH or Mosh?
  • How much native build and bridge maintenance does it add?

The interesting milestone is not drawing a prompt on an Android screen. It is running the terminal workloads TermRover users already depend on and seeing whether the integration still feels simple.

What I think today

I like the direction. One high-quality terminal core across iOS and Android could make TermRover more consistent and easier to maintain, while the parts that make it TermRover remain native to each platform.

TermRover’s current terminal is already fast and responsive. That gives me room to evaluate libghostty as an opportunity rather than an emergency. A prototype can be judged on whether it improves the product and the codebase, not on whether it produces a more fashionable dependency list.

If the Android path works cleanly and the shared core preserves the terminal experience people already have, I can see a compelling case for moving further. For now, I want to learn how well libghostty fits rather than announce where the experiment will end.

If you have shipped libghostty on Android or found an edge case that a mobile prototype should test, send feedback or join the TermRover Discord.