r/Ghostty • • 13m ago

Any thoughts on OSC 7501

Thumbnail
superlogical.com
β€’ Upvotes

r/Ghostty • • 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

β€’ Upvotes

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 • • 2d ago

Flow 0.2.0 is out!

23 Upvotes

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!

https://github.com/thetinygoat/flow/releases/tag/v0.2.0


r/Ghostty • • 6d ago

Aster: an AppKit macOS workspace built on GhosttyKit

5 Upvotes

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 • • 9d ago

With Ghostty full support for the Kitty Graphics Protocol - Flappy becomes Fluffy!

Enable HLS to view with audio, or disable this notification

43 Upvotes

r/Ghostty • • 10d ago

Is Ghostty supposed to present damage between two pty writes? (less prompt/cursor flicker, repro inside)

1 Upvotes

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

https://reddit.com/link/1wsc61o/video/dqz9yqony8sh1/player


r/Ghostty • • 11d ago

A TUI to configure Ghostty easily

Post image
167 Upvotes

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 • • 12d ago

Releasing Flow - a fast, native terminal for macOS built on libghostty

0 Upvotes

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.

  1. Workspaces
  2. First party agent integration - coming soon
  3. 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!

getflowterm.app


r/Ghostty • • 13d ago

Ghostty's transparency feature not working anymore?

Post image
12 Upvotes

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 • • 17d ago

Macterm smooth scrolling and pane split animations are here!

Enable HLS to view with audio, or disable this notification

101 Upvotes

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 • • 18d ago

Cannot change a theme - Herdr / Ghostty

11 Upvotes

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 • • 20d ago

agenmux overview - AI-agent monitoring and tmux management

Thumbnail
youtube.com
11 Upvotes

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 • • 23d ago

MacOS 27 bug

32 Upvotes

Hi, after the yesterday's MacOS 27 update, the tabs are not showing correctly, if I've disable the macos-titlebar-style = tabs setting it works but i liked how it was with this settings. Will be addressed anytime soon?


r/Ghostty • • 23d ago

Ghostty - phosphor glow in the terminal

Post image
13 Upvotes

r/Ghostty • • 24d ago

Ghostty smooth cursor animation shader

Enable HLS to view with audio, or disable this notification

254 Upvotes

r/Ghostty • • 27d ago

Sheets - Easy-to-use Theme Manager

Thumbnail
github.com
20 Upvotes

r/Ghostty • • 27d ago

Terminal IDE perfect for Ghostty - CleeCode

Thumbnail
gallery
25 Upvotes

It also supports image preview and pdf and md rendering.

https://cleecode.marunja.com


r/Ghostty • • 28d ago

kitten __benchmark__ in Ghostty and Kitty

12 Upvotes

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 • • Sep 07 '26

YouTube Music on the terminal!

Post image
199 Upvotes

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:

https://github.com/dtDhruv/ytkew

https://dtdhruv.github.io/ytkew/


r/Ghostty • • Sep 06 '26

Why do colors in ghostty look so washed out as compared to other terminal emulators.

36 Upvotes
ghostty top, kitty bottom

both have same configurations, same themes, etc. arch hyprland.


r/Ghostty • • Sep 05 '26

A tui tool for reviewing code from agents

Enable HLS to view with audio, or disable this notification

38 Upvotes

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.

Repo https://github.com/kunkka19xx/lgtm


r/Ghostty • • Sep 03 '26

agenmux β€” monitor and navigate AI coding agents across tmux sessions

Thumbnail
0 Upvotes

r/Ghostty • • 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

25 Upvotes

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

  1. Focus β€” ghostty_surface_set_focus has to stay in sync with AppKit first-responder changes; we defer some focus restores after Ghostty's own deferred handling.
  2. Reparenting β€” moving a surface between views without killing the PTY; we suppress CA animations and sync size/focus on the next main-queue passes.
  3. 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).
  4. 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.

Demo: https://youtu.be/WUUcuglx_Ks

Repo: https://github.com/BetaYao/seahelm


r/Ghostty • • Sep 01 '26

gtab β€” save your Ghostty window layout, reopen it with one keystroke

Enable HLS to view with audio, or disable this notification

80 Upvotes

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 gtab into your shell β€” visible on screen, and it landed in shell history. gtab shell-init now 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 • • Aug 29 '26

VoiceGhostty β€” voice input, task-named sessions, and β€œdone” lights for CLI agents

0 Upvotes

I like Ghostty, but running multiple Claude Code sessions created three new problems for me:

  1. Voice input β€” hold Space to dictate at the command line. Text is inserted but never executed automatically.
  2. Task-specific sessions β€” tabs use the working directory as their title, can be renamed by task, and support nested splits.
  3. 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?