Ghostel.el: A Modern Terminal Emulator for Emacs Powered by libghostty
Ghostel.el: Terminal emulator powered by libghostty
I introduce Ghostel, a new terminal emulator for Emacs that leverages the high-performance libghostty engine. Unlike older solutions, it supports modern features like inline images, rich underlines, and hyperlinks while maintaining seamless shell integration. With a native Zig module handling rendering and PTY I/O, it delivers superior speed and a flexible input mode system that bridges the gap between terminal commands and Emacs editing.
Ghostel is inspired by emacs-libvterm and follows the same two-layer design, but uses Ghostty's modern VT engine instead of libvterm.
- dakra
Hi! Maintainer of Ghostel here.
baokaola and I actually wanted to do a "Show HN" next week,
but looks like someone was faster submitting the link.
Have a look at the GitHub repo which is a bit nicer
for a quick overview: https://github.com/dakra/ghostel
To add some context, Ghostel is a terminal emulator for Emacs
powered by libghostty-vt.
There's a feature comparison vs vterm and eat: https://dakra.github.io/ghostel/#ghostel-vs-vterm
And here is a gist with images to compare performance and correctness: https://gist.github.com/dakra/4a0b76ebcf5d52338e134864378465...
But for me personally, it has not only replaced vterm/eat but also any
other external terminal like kitty/Ghostty.
Having your terminal text just like a normal Emacs buffer opens up so many
possibilities and extension points that are just not available on any other terminal.
Even simple stuff like searching in the scrollback, then navigating and selecting+copying a paragraph only with the keyboard.
For every Emacs user that's so natural and fast in Ghostel while often cumbersome in other Terminals where I just reach to the mouse because it's easier.
Happy to answer any questions and also like to hear feedback positive or negative.
If you're an Emacs user and tried Ghostel and are still using Ghostty (or another external Terminal),
is there something Ghostel is missing or is it just because you want some processes to run outside of Emacs?
baokaola and I are also very active on GitHub, so feel free to open an issue […]
- jdormit
I recently switched from vterm to ghostel, and it is generally much, much better - noticeably faster (e.g. fancy TUI apps that try to refresh the whole terminal every frame actually work), more reliable input handling, and a nicer ELisp API.
That being said, there are still some rough edges. Sometimes it fails to properly clear the terminal, leaving junk at the top of the buffer before the currrent prompt line. And on a couple of occasions it has totally frozen, with no fix other than killing the buffer and starting over.
Overall, it’s very promising and totally usable as a daily driver, but it needs a bit of polish and bug fixes before I would consider it mature.
- LtdJorge
I think the title should mention Emacs somewhere. A terminal emulator is different than a terminal emulator for Emacs.
- varjag
Been using it for bit over a month now. It's really nice that you can click on code references in Codex summaries and open them right there in Emacs buffers.
- aftergibson
This is working great, it plus the Claude code integration has really adjusted how much I use Emacs. It's become a bit of a hub for me now.