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 if you have any.
b3n 13 minutes ago [-]
Hi dakra!
> is there something Ghostel is missing
eshell allows me to manipulate text as I would in any other Emacs buffer. If I have a function which wraps a word in quotes, and bind it to a key, I can be confident it will work in eshell like it does anywhere else. It's a real killer feature. If I use evil-mode, or xah-fly-keys, or simply want to use ispell to correct the spelling of a word, it all works.
Unfortunately with Ghostel none of this works. It's not integrated in the same way. There are extensions like evil-ghostel-mode, but they are limited.
Are there any plans to improve this, or is it a limitation Ghostel has to live with?
LtdJorge 5 minutes ago [-]
I think the title should mention Emacs somewhere. A terminal emulator is different than a terminal emulator for Emacs.
vijucat 4 minutes ago [-]
Question: if I don't use TUIs or millions of lines of scrolling text, what am I missing by not using these newer terminal implementations? I use mintty on Windows and am pretty happy with it.
JoeBOFH 1 minutes ago [-]
Honestly not sure. I used ghosty and others for awhile but had continuous issues of it not passing a compatible term variable so a lot of tuis would break.
jdormit 3 hours ago [-]
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.
baokaola 2 hours ago [-]
Ghostel co-maintainer here: Understand if you don't have a repro, but if you ever have something actionable we'd love it if you filed an issue, or have the information get to us some other way.
The junk at the top of the screen sounds like it could be https://github.com/dakra/ghostel/issues/495 and it should be fixed on later versions. But maybe you're seeing another bug. The tricky part is replicating the libghostty-vt internal data into an Emacs buffer while only replacing the parts that need to be replaced. We have property based tests to exercise this a lot, but sometimes things slip through.
The latest released version as I'm writing this should have improved lifecycle handling, so maybe it also fixes some of your issues.
As you say, the project is still in the early phase so hopefully, we can iron things out over time.
pingisland 42 minutes ago [-]
I also switched from vterm and ghostel is much more responsive for me. Thanks for maintaining it! I use it everyday.
I do see a similar issue, where when I switch to the ghostel buffer and it wasn’t visible before, the text is scrambled. I’ll check if I can find a way to reliably reproduce it.
baokaola 35 minutes ago [-]
This is a known issue that I've been chasing myself. It most likely has to do with the fact that we cannot render hidden buffers (for reasons) so when the buffer reappears again, we have hooks to refresh it. But sometimes it fails to refresh fully.
When are you mostly seeing this? With agent TUIs?
2 hours ago [-]
ivanjermakov 1 hours ago [-]
> The native module is a prebuilt binary that auto-downloads on first use
Why? Keep it a part of distribution.
dakra 43 minutes ago [-]
That's because MELPA (and ELPA) doesn't have a way to attach platform specific files.
It's all just git checkouts.
That means we would have to check in the module binary for all platforms (>10MB together) if we want that it comes with the distribution.
Also looking at e.g. jinx, another popular package that uses Emacs native modules, it does it like vterm and offers to compile on first usage.
So as a Emacs package author, for a user friendly installation you can realistically only offer
to download or compile on first use.
aftergibson 2 hours ago [-]
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.
freedomben 4 hours ago [-]
[dead]
Rendered at 15:44:42 GMT+0000 (Coordinated Universal Time) with Vercel.
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 if you have any.
> is there something Ghostel is missing
eshell allows me to manipulate text as I would in any other Emacs buffer. If I have a function which wraps a word in quotes, and bind it to a key, I can be confident it will work in eshell like it does anywhere else. It's a real killer feature. If I use evil-mode, or xah-fly-keys, or simply want to use ispell to correct the spelling of a word, it all works.
Unfortunately with Ghostel none of this works. It's not integrated in the same way. There are extensions like evil-ghostel-mode, but they are limited.
Are there any plans to improve this, or is it a limitation Ghostel has to live with?
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.
The junk at the top of the screen sounds like it could be https://github.com/dakra/ghostel/issues/495 and it should be fixed on later versions. But maybe you're seeing another bug. The tricky part is replicating the libghostty-vt internal data into an Emacs buffer while only replacing the parts that need to be replaced. We have property based tests to exercise this a lot, but sometimes things slip through.
The latest released version as I'm writing this should have improved lifecycle handling, so maybe it also fixes some of your issues.
As you say, the project is still in the early phase so hopefully, we can iron things out over time.
I do see a similar issue, where when I switch to the ghostel buffer and it wasn’t visible before, the text is scrambled. I’ll check if I can find a way to reliably reproduce it.
When are you mostly seeing this? With agent TUIs?
Why? Keep it a part of distribution.
That means we would have to check in the module binary for all platforms (>10MB together) if we want that it comes with the distribution.
Also looking at e.g. jinx, another popular package that uses Emacs native modules, it does it like vterm and offers to compile on first usage.
So as a Emacs package author, for a user friendly installation you can realistically only offer to download or compile on first use.