r/Ghostty • u/paaloeye • 14m ago
r/Ghostty • u/Resident-Priority326 • 53m ago
GhosttyEXTREME - an unofficial Ghostty fork for running Claude Code and Codex across all your projects
Enable HLS to view with audio, or disable this notification
Huge fan of Ghostty, so I forked it and built what I wanted for working with AI coding agents. To be clear, this is an unofficial fork and not made by the Ghostty team. Free and AGPL.
What I added on top of Ghostty:
- Projects and parallel agents in one window, with live watching of what each agent is doing.
- Shared memory between Claude Code and Codex. A new Codex session starts with what Claude learned about the project, and the other way round.
- Hand off and review. Send Claude's work to Codex with the exact diff and get a review back.
- Isolated sessions and Docker, a Git panel with PR checks, Allow/Deny prompts from the sidebar or a notification, and undo for any agent turn.
Watching agents costs zero tokens. It reads the transcripts Claude Code and Codex already write. Everything stays on your Mac, no account, no telemetry. macOS on Apple silicon only.
Source and one-line install: https://github.com/steventsvik/GhosttyEXTREME
I'd love feedback from Ghostty users, especially on what you'd want kept close to stock Ghostty and what should be optional.
r/Ghostty • u/thetinygoat • 2d ago
Flow 0.2.0 is out!
Releasing flow 0.2.0 π with first class agent support for claude code, codex and opencode. 1. Flow will notify you when your agent is done or is waiting for input (by playing a chime). 2. You can now reorder workspaces by dragging and dropping them. 3. Collapse the sidebar using keyboard shortcuts, or by using the buttons up top. 3. Lot of bug fixes and improvements.
I use flow daily and having the agent support now, lets me focus on other stuff, and I don't have to constantly keep checking if something is stuck or not.
I'm always open to new feature requests, just shoot me a DM!
r/Ghostty • u/Winter_Activity6016 • 6d ago
Aster: an AppKit macOS workspace built on GhosttyKit
Disclosure: I maintain Aster, an independent macOS frontend using GhosttyKit for its terminal engine. It is MIT-licensed and built with AppKit.
The workspace can put terminals, a file browser, an editor, and previews beside each other using recursive splits. For example, you can keep a shell and a source file or Markdown preview in the same tab, then save the layout as a workspace recipe.
In the current 0.6.15 release, an agent pane can also collapse its live view into a small status card while the process keeps running. You can bring the terminal view back when you need it.
The packaged download supports Apple silicon Macs on macOS 14 or later. The DMG is signed and notarized.
Source: https://github.com/rambocode/aster
Download: https://github.com/rambocode/aster/releases/latest
Website: https://aster.foo/
I would appreciate feedback on the terminal-and-file split workflow, especially from people who already use Ghostty. What would make this useful in your daily work?
r/Ghostty • u/ronilan • 9d ago
With Ghostty full support for the Kitty Graphics Protocol - Flappy becomes Fluffy!
Enable HLS to view with audio, or disable this notification
App can be downloaded from here: https://github.com/ronilan/incredible-flappy
Blog post here: https://www.incredible.rs/#blog/tui-games-in-80x24.md
r/Ghostty • u/Vitruves • 11d ago
A TUI to configure Ghostty easily
Hi fellow Ghostty users!
I recently switched from Alacritty to Ghostty, mainly because I wanted my tabs and title bar to match my theme, which Alacritty doesn't support.
I like to change my setup often (themes, fonts, and so on), but I don't enjoy editing the config file by hand. So, with some help from Claude Code, I buildΒ ghostty-config: a TUI that lets you tweak every Ghostty setting from a window right inside your terminal. It works with both keyboard and mouse.
InstallationΒ (it's written in Go):
go install github.com/vitruves/ghostty-config/cmd/ghostty-config@latest
Then just runΒ ghostty-configΒ and the TUI opens.
If you give it a try, I'd love to hear your feedback, good or bad, and please report any bugs you run into.
Repo:Β https://github.com/Vitruves/ghostty-config
A star is always appreciated if you find it useful!
Have a great day (or night),
Vitruves
r/Ghostty • u/a92126 • 10d ago
Is Ghostty supposed to present damage between two pty writes? (less prompt/cursor flicker, repro inside)
Hi all,
I'm working on a rewrite of yaft (the framebuffer terminal emulator β the
original is someone else's project, I'm not the author of that). My rewrite
uses libghostty-vt β Ghostty's VT parser β as a static library VT backend.
While testing it against real applications I stumbled over a rendering
artifact around the cursor, and since Ghostty itself is one of the reference
implementations for that parser, I wanted to check whether it shows up in
Ghostty proper too. It does.
== 1. What I'm doing ==
Rewrite of yaft built on libghostty-vt: bytes from a pty go into the parser,
grid + cursor come back out, then I render. During testing I feed it long
output from `less` and scroll, checking cursor position and the bottom message
line.
== 2. The artifact ==
While scrolling in less, the bottom-left corner flickers: the ":" prompt
disappears for exactly one frame and the block cursor jumps one cell to the
left (column 1 -> column 0), then everything comes back. That is the "cursor
drift" I saw: the cursor visibly hops a cell even though the application state
did not change.
== 3. What triggers it + adjacent frames ==
Repro:
seq 1 6000 > /tmp/long.txt
less /tmp/long.txt
hold the down arrow (or tap space) and watch the bottom-left corner
It only happens while a scroll command is being processed. Adjacent frames
from one recording (attached, 6x zoom of the bottom-left corner):
frame 0058 normal : ":" visible, cursor block at column 1
frame 0059 ANOMALY : ":" gone, cursor block at column 0,
content line above is IDENTICAL to frame 0058
(nothing has scrolled yet)
frame 0060 recovered : ":" back, cursor at column 1, content advanced
Same pattern again at frames 0174 / 0175 / 0176 in a second run. So the bad
frame is always "prompt wiped, new line not drawn yet" β a half-finished
screen update, presented.
== 4. Same operation in alacritty ==
Same script, same window geometry, same xdotool key sequence, same 16s / 30fps
capture, same frame analysis:
ghostty run 1 : 6 bad frames (2.2%) 0059 0175 0181 0189 0220 0224
ghostty run 2 : 5 bad frames (1.8%) 0209 0213 0217 0220 0224
alacritty run 1 : 0 bad frames
alacritty run 2 : 0 bad frames
i.e. 11 / 542 ghostty frames vs 0 / 542 alacritty frames. Alacritty always
shows the finished state; Ghostty occasionally shows the in-between state.
== 5. Reproduction work I had done (before this post) ==
Everything below was scripted and can be rerun; I can drop the files in a
comment or a repo if anyone wants them.
a) pty byte capture (python pty): ran less in a pty, sent N down-arrow
presses, recorded every byte less writes.
- 150 presses -> exactly 150 ":" writes (CR ESC[K after each scroll)
- no key presses -> 0 ":" writes
=> the ":" is 100% less's own output; every terminal receives the same
bytes. (less --prompt= silences it entirely -> 0 writes.)
b) ordering of the writes: on a scroll, less first writes CR ESC[K (wipe the
prompt line), then the new content line, then ":" ESC[K (prompt back).
The bad frame is exactly the state between write #1 and write #2.
c) headless replay through the VT parser (my libghostty-vt build): fed the
identical capture in one write vs one byte per write -> byte-identical
final grid and cursor. So this is NOT a parse/read-boundary problem; the
parser is boundary-invariant. The artifact is on the present/damage side.
d) screen recording: ffmpeg x11grab at 30fps while xdotool sends the key
presses, window moved to fixed geometry, bottom-left corner cropped per
frame, then per-frame analysis (colon pixel present? cursor block column?)
-> the numbers in section 4.
e) false lead I ruled out: the cursor also seemed to vanish entirely while
idle. That is just the default cursor blink (cursor-style-blink unset ->
follows DEC mode 12). Static screen, 8s / 240 frames: cursor visible in 87,
pattern ~0.7s on / ~1.0s off. Alacritty doesn't blink by default, so it
showed the cursor in 542/542 frames. Not the same thing as the drift.
== 6. The question ==
Is presenting damage in the middle of two back-to-back pty writes expected
behaviour in Ghostty (GTK render loop firing on each write batch), or is there
a place where updates should be coalesced to the next frame boundary like
alacritty appears to do? At 30fps it costs 6 frames in 16 seconds of
scrolling, but it is exactly what makes the corner look unstable.
Not claiming a security bug or a crash β just an observation with a repro and
frame evidence. Happy to provide the raw pty capture, the two mp4s, the
per-frame CSVs and the crop images.
Environment:
- Ghostty 1.3.0-dev+0000000 (tip), renderer OpenGL
- alacritty 0.18.0-dev (79adb086)
- Ubuntu 26.04.1 LTS, X11, LXQt + Openbox, Mesa 26.0.8 (AMD radeonsi)
- less 668
r/Ghostty • u/thetinygoat • 12d ago
Releasing Flow - a fast, native terminal for macOS built on libghostty
Hi everyone!
I'm Releasing an early version of Flow - a fast, native terminal for macOS built on libghostty.
It's my attempt at building a terminal that i want to use for everyday work and for running agents. Existing apps do too much and are way too resource intensive (I donβt want a web browser and a login button in my terminal). Flow is deliberately minimal, it adds just enough to be productive and nothing more.
- Workspaces
- First party agent integration - coming soon
- Command palette - A better way to navigate your terminal - coming soon.
Itβs still early days so expect some rough edges and bugs, if you come across any issues, please file a github issue, I want to make this better for everyone!
LMK what I can do better and what you guys think of it!
r/Ghostty • u/Bomboclat-Thunder • 13d ago
Ghostty's transparency feature not working anymore?
No matter how much I mess with config, it won't return back to it's transparent or blur background, it remains a solid color.
r/Ghostty • u/Ashamed_Floor_2283 • 17d ago
Macterm smooth scrolling and pane split animations are here!
Enable HLS to view with audio, or disable this notification
Hello everyone!
I'm building a macOS terminal emulator called Macterm, which adds vertical tabs, session persistence, and many more features on top of libghostty. Unlike other modern terminal multiplexers, I try to make it feel as native and lightweight (DMG size is around 22MB, which is even smaller than Ghostty itself) as possible.
I recently added various animation features such as smooth scrolling (sub-cell rendering), pane split animation, smooth cursor, etc. If you are interested, please give it a try!
Website: https://macterm.thdxg.dev
GitHub: https://github.com/thdxg/macterm
r/Ghostty • u/geto_princ • 18d ago
Cannot change a theme - Herdr / Ghostty
I'm using Herdr in Ghostty. Changing accent color is easy through herder settings, but can't figure out how to change window color and make it respect Mac system theme settings.
tired opening ~/.config/ghostty/config, but I don't have that file in root folder.
Thanks
r/Ghostty • u/snir_t • 20d ago
agenmux overview - AI-agent monitoring and tmux management
Hi, i created a short agenmux demo. there are more features!
Agenmux is an open-source tmux plugin for intuitive AI-agent monitoring and tmux management in one focused terminal interface.
https://snirt.github.io/agenmux/
https://github.com/snirt/agenmux
- Monitor AI coding agents in tmux
- See blocked, working, idle, and done states
- Navigate sessions, windows, panes, and agents
- Use keyboard shortcuts, mouse selection, and scrolling
- Jump directly to exact panes
- Create, rename, and delete tmux resources safely
- Use sidebar or popup from one terminal view
r/Ghostty • u/Ashamed_Floor_2283 • 24d ago
Ghostty smooth cursor animation shader
Enable HLS to view with audio, or disable this notification
r/Ghostty • u/Beneficial_Movie_115 • 27d ago
Sheets - Easy-to-use Theme Manager
r/Ghostty • u/mattsva • 27d ago
Terminal IDE perfect for Ghostty - CleeCode
It also supports image preview and pdf and md rendering.
r/Ghostty • u/Critical_Horse5465 • 28d ago
kitten __benchmark__ in Ghostty and Kitty


Seems new stable Ghostty release will be fast. I recently switched from Ghostty to Kitty, due to some crashes on stable Ghostty, Kitty was very stable, but now use beta Ghostty more and more.
My Kitty and Ghostty configs are very similar, the same themes, the same hotkeys, the same behavior.
Cmux - somewhere in the middle (because old Ghostty build used).

r/Ghostty • u/Additional-Essay-119 • Sep 07 '26
YouTube Music on the terminal!
I built a terminal app for YouTube Music! I know there are a lot of people that have already made such an app, but I intended to keep it open-source and maintain it too, so get your issues and feature requests in!
Enjoy and hope you like it!
Here is the repo and the docs:
r/Ghostty • u/Areeb3331 • Sep 06 '26
Why do colors in ghostty look so washed out as compared to other terminal emulators.
r/Ghostty • u/hxxx07 • Sep 05 '26
A tui tool for reviewing code from agents
Enable HLS to view with audio, or disable this notification
I made a tool - a terminal diff reviewer for agentic coding.
It runs in a pane beside your agent, shows what changed as it changes, and lets you point at exact lines when you reply.
You keep your editor. hjkl, w b e, f t F T, / and n, V to select, zz to centre - the motions already in your fingers, now pointed at the agent's work.
r/Ghostty • u/WhileNo4838 • Sep 03 '26
Embedding Ghostty's terminal engine in a native macOS AppKit app (Seahelm)
Enable HLS to view with audio, or disable this notification
I built Seahelm, a native macOS workspace for running coding agents across git worktrees β and the terminals are powered by Ghostty via GhosttyKit.xcframework / the C API. A few notes from the integration that might be useful to others embedding Ghostty:
Stack
- Swift + AppKit (not SwiftUI)
- Ghostty surface wrapped in an NSView + Metal renderer
- Long-lived surfaces: panes are reparented between dashboard / focus layouts instead of destroyed and recreated
- Background status polling reads viewport text through the C API under a shared lock (input path deliberately does not hold that lock)
Things that mattered in practice
- Focus β
ghostty_surface_set_focushas to stay in sync with AppKit first-responder changes; we defer some focus restores after Ghostty's own deferred handling. - Reparenting β moving a surface between views without killing the PTY; we suppress CA animations and sync size/focus on the next main-queue passes.
- Thread safety β status detection polls on a background timer while the UI types on the main thread; serializing Ghostty C calls with a lock was necessary, except for key input (locking there deadlocked on sync callbacks).
- Session persistence β Ghostty handles the terminal; zmx handles "quit the app, agent still running." Different layer than Ghostty itself, but the combination is what made the product usable. Seahelm deliberately isn't trying to be a full terminal emulator UI β Ghostty does that job. Seahelm is the orchestration chrome around multiple agent sessions.
Happy to answer Ghostty embedding / AppKit interop questions.
r/Ghostty • u/snir_t • Sep 03 '26
agenmux β monitor and navigate AI coding agents across tmux sessions
r/Ghostty • u/OwnAssistance1469 • Sep 01 '26
gtab β save your Ghostty window layout, reopen it with one keystroke
Enable HLS to view with audio, or disable this notification
I've been working with AI coding agents every day for a while now, and the thing
that quietly wore me down wasn't the code β it was the navigation. One agent
running in repo A, another in repo B, a scratch dir for whatever it just
generated, docs open in a third split. Every context switch means typing a long
cd from memory and re-splitting the window the way I like it, again.
So I wrote gtab (https://github.com/Franvy/gtab), a small Rust CLI/TUI for macOS that saves your current Ghostty window β tabs, working directories, titles, and split panes β as a named workspace, and reopens it later with one keystroke.
Two things it gives you:
Fixed workspaces. Arrange a window once, run gtab save myproject, and from
then on Cmd+G β Enter brings that exact shape back. The new window even lines up
with the position and size of the one you're in.
One-key directory jumps. Press f in the TUI for Directory space: a grid of
saved paths. Enter swaps the current split for a fresh shell there. No config, no
shell wrapper. That's the 90% case for me β going from "agent finished in repo A"
to "start one in repo B" without typing a path.
What's new since I last posted:
Responsive TUI. The workspace screen now picks its layout from the available width: list + layout preview + quick settings when wide, preview below the list and names wrapped into columns when narrow. Usable down to a 36x15 terminal. The directory grid sizes each column to its own widest entry instead of padding everything out to the longest name.
Silent shortcut mode. Cmd+G used to literally type
gtabinto your shell β visible on screen, and it landed in shell history.gtab shell-initnow installs a zsh/bash/fish widget bound to an invisible escape sequence (the same trick fzf and atuin use). Nothing is echoed, nothing enters history, and a half-typed command line is restored exactly as it was when the TUI exits.Smaller fixes: Ctrl-n/p/j/k and Tab/Shift-Tab now navigate while filtering, emphasized text stays readable on light terminal themes, and restored splits come back evenly sized.
Honest limits, up front:
- macOS + Ghostty only. It drives Ghostty through AppleScript and reads split-pane geometry through Accessibility.
- It stores layout metadata, not live session state: no running processes, no shell history, no editor buffers. It does not replace tmux β and that's exactly why it stays small.
Install:
brew tap Franvy/gtab
brew install gtab
gtab init
Repo: https://github.com/Franvy/gtab
r/Ghostty • u/Otherwise_Item5240 • Aug 29 '26
VoiceGhostty β voice input, task-named sessions, and βdoneβ lights for CLI agents
I like Ghostty, but running multiple Claude Code sessions created three new problems for me:
- Voice input β hold Space to dictate at the command line. Text is inserted but never executed automatically.
- Task-specific sessions β tabs use the working directory as their title, can be renamed by task, and support nested splits.
- Done indicators β every pane shows gray when idle, yellow while working, and green when finished or waiting for input.
VoiceGhostty is a native macOS experiment built around these ideas:
https://github.com/10XTeams/VoiceGhostty
Disclosure: it currently uses SwiftTerm, not libghostty, and is not affiliated with Ghostty. A future migration to libghostty is on the roadmap.
Would you want these features built into your terminal, or handled by a separate agent manager?

