whatisgithub

What is expo-libghostty?

arcboxlabs/expo-libghostty — explained in plain English

Analysis updated 2026-05-18

18KotlinAudience · developerLicenseSetup · moderate

In one sentence

A real terminal screen component for Expo and React Native apps on iOS and Android, built on the Ghostty terminal engine.

Mindmap

mindmap
  root((expo-libghostty))
    What it does
      Real terminal view for apps
      Built on libghostty engine
      Bring your own PTY
    Tech stack
      Kotlin and Swift native code
      Expo and React Native
      Metal on iOS
      Canvas on Android
    Features
      Keyboard input
      Touch selection and clipboard
      Scrollback
      Custom themes
    Use cases
      Mobile SSH client
      Remote dev tools
      Embedded terminal UI

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a mobile SSH or remote shell client app

USE CASE 2

Add an embedded terminal screen to a React Native developer tool

USE CASE 3

Show live command output inside a mobile app by piping bytes into the terminal view

USE CASE 4

Build a remote development or server management app with a real terminal UI

What is it built with?

KotlinSwiftTypeScriptExpoReact Native

How does it compare?

arcboxlabs/expo-libghosttydw2lam/openlauncherhaz3-jolt/tappy
Stars181818
LanguageKotlinKotlinKotlin
Setup difficultymoderatemoderatehard
Complexity2/54/5
Audiencedevelopergeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Downloads native binaries during install, some package managers must be configured to allow the postinstall script.

So what is it?

expo-libghostty is a component that lets an Expo or React Native app show a real terminal screen on iOS and Android. It is built on top of libghostty, the same terminal engine used by the Ghostty terminal app, so the text rendering, colors, and cursor behavior come from real terminal parsing rather than a simplified imitation. The component itself does not connect to a shell or server. You are expected to bring your own connection, such as an SSH session or a remote process, and the terminal view just displays the bytes you feed it and reports back things like key presses and window resizes. This makes it flexible for building tools like a mobile SSH client, a remote development app, or any product that needs a working terminal screen inside a phone app. On iOS the terminal is rendered using Metal for GPU accelerated drawing, while Android renders through Canvas with a renderer called libghostty-vt. Both platforms support things a real terminal user would expect: keyboard input including on screen keyboards with modifier keys, touch based text selection with copy and paste, scrollback you can flick through, a blinking cursor, pinch to zoom for font size, and custom color themes. Some smaller behaviors differ slightly between iOS and Android, and the README lists those differences directly rather than hiding them. Installation is a single command through Expo, though the underlying native pieces, an iOS framework and Android static libraries, are downloaded automatically during setup and checked against saved checksums for safety. The project explains that some package managers block these download scripts by default and need to be told to allow them. Usage in code is straightforward: you import a TerminalView component, feed it the incoming bytes from your PTY or connection, and listen for events like input, resizing, or the terminal's title changing.

Copy-paste prompts

Prompt 1
Help me install expo-libghostty in my Expo app and wire it up to a basic SSH connection.
Prompt 2
Explain the difference between the write and writeText methods on TerminalViewRef in expo-libghostty.
Prompt 3
Show me how to listen for onResize and onTitleChange events from expo-libghostty's TerminalView.
Prompt 4
Walk me through the platform differences between iOS and Android rendering in expo-libghostty.

Frequently asked questions

What is expo-libghostty?

A real terminal screen component for Expo and React Native apps on iOS and Android, built on the Ghostty terminal engine.

What language is expo-libghostty written in?

Mainly Kotlin. The stack also includes Kotlin, Swift, TypeScript.

How hard is expo-libghostty to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is expo-libghostty for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.