jhostty

Probably the most portable terminal in the world

Java 25 GhosttyFX 0.1.169 macOS · Windows · Linux ~940 lines

A full-featured terminal emulator in a single Java file, powered by GhosttyFX — Ghostty's terminal engine exposed as a JavaFX control. No build system, no IDE, no project setup — just JBang and one file.

$ jbang jhostty@maxandersen

JBang downloads Java 25 automatically if needed.

$ jbang app install jhostty@maxandersen
$ jhostty
$ git clone https://github.com/maxandersen/jhostty.git
$ cd jhostty && jbang jhostty.java
⭐ View on GitHub See features ↓
jhostty terminal window

Features #

Everything you'd expect from a real terminal — in one file.

🪟

Windows, Tabs & Splits

Open multiple windows, tabs, and split panes. Horizontal and vertical splits nest freely.

🎨

10 Built-in Themes

Switch themes on the fly — the entire UI adapts, including context menus and split dividers.

🔍

Per-Terminal Zoom

Each split pane has independent zoom. Use keyboard shortcuts, scroll wheel, or trackpad pinch.

🔤

All System Fonts

Every font on your system is available. Popular terminal fonts are listed first for quick access.

📂

Drag & Drop

Drop files, text, or URLs onto any terminal pane. They're pasted as paths or content.

🔗

Link Detection

Clickable URLs in terminal output. Hover to see the hand cursor, click to open.

🍎

Native Feel

macOS system menu bar, cross-platform shortcuts (⌘/Ctrl), styled right-click context menus.

🐚

Shell Integration

Search (⌘F/Ctrl+F) and prompt navigation via Ghostty's shell integration.

Configuration #

jhostty remembers your preferences automatically.

Your settings (theme, font, zoom, window position) are auto-saved to:

~/.config/jhostty/jhostty-state.properties

To customize settings permanently, create an override file:

~/.config/jhostty/jhostty.properties

User config takes priority. Omit a key to auto-detect.

Key Description Default
theme Theme name (e.g. Dracula, Nord) Ghostty Default
font Font family Auto-detected
font-size Base font size — what "Reset Zoom" returns to 15.0
zoom Current zoom level — remembered across restarts Same as font-size
shell Shell command Auto-detected
window-x Window X position (pixels) OS default
window-y Window Y position (pixels) OS default

Example

# ~/.config/jhostty/jhostty.properties
theme=Dracula
font=JetBrains Mono
font-size=16.0

Use View → Reload Config to apply changes without restarting.

Under the Hood #

Minimal dependencies, maximum capability.

Dependency Version Purpose
ghosttyfx 0.1.169 Terminal control — pulls in JavaFX transitively
pty4j 0.13.12 PTY backend for shell interaction
slf4j-nop 2.0.13 Silence SLF4J warnings

Built with JBang — no Maven, no Gradle, no build system. Just jbang jhostty.java and you're running.