<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/ghostel-el---terminal-emulator-powered-by-libghostty-uqiwmfmiz" -->

---
title: ghostel.el - Terminal emulator powered by libghostty
description: Ghostel is a new Emacs terminal emulator package that uses libghostty-vt (the VT engine from the Ghostty terminal) as its core. A native dynamic module written...
canonical: https://daily.dev/posts/ghostel-el---terminal-emulator-powered-by-libghostty-uqiwmfmiz
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: ghostel.el - Terminal emulator powered by libghostty | daily.dev
og:description: Ghostel is a new Emacs terminal emulator package that uses libghostty-vt (the VT engine from the Ghostty terminal) as its core. A native dynamic module written...
og:url: https://daily.dev/posts/ghostel-el---terminal-emulator-powered-by-libghostty-uqiwmfmiz
og:image: https://api.daily.dev/og/posts/uqIwMFmiZ.png
og:image:alt: ghostel.el - Terminal emulator powered by libghostty
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# ghostel.el - Terminal emulator powered by libghostty

**[Hacker News](https://daily.dev/sources/hn)** · 65 min read · 1 upvotes · 0 comments

## Summary

Ghostel is a new Emacs terminal emulator package that uses libghostty-vt (the VT engine from the Ghostty terminal) as its core. A native dynamic module written in Zig handles terminal state, rendering, and PTY I/O, while Elisp manages keymaps, buffers, and commands. It supports modern terminal protocols including the Kitty keyboard and graphics protocols, OSC 8 hyperlinks, OSC 4/10/11 color queries, synchronized output (DEC 2026), and inline images. Key features include five input modes (semi-char, char, emacs, copy, line), automatic shell integration for bash/zsh/fish/nushell, TRAMP remote terminal support, password prompt detection, calling Elisp from shell scripts, and cross-platform support including Windows. Pre-built binaries are auto-downloaded on first use; no Zig toolchain required for typical installation. It is compared favorably to vterm and eat.el, offering modern protocol support that libvterm lacks.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://dakra.github.io/ghostel>

## Questions this post answers

### How does ghostel's terminal throughput compare to vterm and eat in Emacs?

Ghostel reaches about 75 MB/s on plain ASCII throughput, roughly 4x vterm's ~18 MB/s and 12x eat's ~6.2 MB/s, measured on Apple M4 Max with Emacs 32.0.50 using a 1 MB streamed benchmark with ~1,000 lines of scrollback. On URL-heavy output ghostel drops to about 36 MB/s (78 MB/s with link detection disabled) due to its clickable-link scanning, a feature vterm and eat lack entirely.

_Compare emacs terminal emulator performance trade-offs on daily.dev before picking one for heavy log streaming._

### What terminal protocols does ghostel support that vterm and eat lack in Emacs?

Ghostel supports the Kitty keyboard and graphics protocols, five underline styles, OSC 8 hyperlinks, OSC 4/10/11 color queries, and DEC 2026 synchronized output, none of which vterm supports; eat lacks the Kitty protocols, OSC 8, and desktop notifications but does support Sixel graphics and colored underlines, unlike vterm. This comes from wrapping libghostty-vt, the VT engine from the Ghostty terminal, rather than libvterm.

_Track which emacs terminal packages support modern protocols like Kitty graphics on daily.dev._

### Does ghostel support remote terminal sessions over TRAMP on Windows?

Remote TRAMP terminals in ghostel are limited to POSIX remotes reached through SSH-style TRAMP methods; Windows remotes are not supported because ghostel's remote wrapper relies on POSIX shell and tty facilities. Windows-to-TRAMP sessions can run but dynamic window resizing is currently unsupported, unlike POSIX-to-POSIX TRAMP connections which rely on the SSH client to propagate window-size changes.

_Check platform-specific TRAMP limitations before configuring remote emacs terminal workflows via daily.dev._

## Similar posts on daily.dev

- [Ghostty Terminal: Never Understood the Hype Until I tried it](https://daily.dev/posts/ghostty-terminal-never-understood-the-hype-until-i-tried-it-fhwfcvjbc) · It's Foss · 54 upvotes · 5 comments
- [Ghostty terminal is now available in the Ubuntu repos](https://daily.dev/posts/ghostty-terminal-is-now-available-in-the-ubuntu-repos-dkzeydunw) · omg\! ubuntu\! · 69 upvotes · 2 comments
- [Ghostty OpenGL-Accelerated Terminal Available On Ubuntu 26.04 LTS](https://daily.dev/posts/ghostty-opengl-accelerated-terminal-available-on-ubuntu-26-04-lts-w8seh01ht) · Phoronix · 15 upvotes · 2 comments
- [The Modern Terminals Showdown: Alacritty, Kitty, and Ghostty Comparing Alacritty, Kitty, and Ghostty for Speed, Features, and Customization](https://daily.dev/posts/the-modern-terminals-showdown-alacritty-kitty-and-ghostty-comparing-alacritty-kitty-and-ghostty-05tu6iisw) · The Miners · 17 upvotes · 4 comments

---

Tags: [#cli](https://daily.dev/tags/cli), [#zig](https://daily.dev/tags/zig)

[View this post on daily.dev](https://daily.dev/posts/ghostel-el---terminal-emulator-powered-by-libghostty-uqiwmfmiz)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"ghostel.el - Terminal emulator powered by libghostty","url":"https://daily.dev/posts/ghostel-el---terminal-emulator-powered-by-libghostty-uqiwmfmiz","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/ghostel-el---terminal-emulator-powered-by-libghostty-uqiwmfmiz"},"datePublished":"2026-07-12T13:55:13.031Z","dateModified":"2026-09-14T07:00:13.726Z","description":"Ghostel is a new Emacs terminal emulator package that uses libghostty-vt (the VT engine from the Ghostty terminal) as its core. A native dynamic module written...","image":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","thumbnailUrl":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/ghostel-el---terminal-emulator-powered-by-libghostty-uqiwmfmiz","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"cli,zig","timeRequired":"PT65M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"ghostel.el - Terminal emulator powered by libghostty"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/ghostel-el---terminal-emulator-powered-by-libghostty-uqiwmfmiz#faq","mainEntity":[{"@type":"Question","name":"How does ghostel's terminal throughput compare to vterm and eat in Emacs?","acceptedAnswer":{"@type":"Answer","text":"Ghostel reaches about 75 MB/s on plain ASCII throughput, roughly 4x vterm's ~18 MB/s and 12x eat's ~6.2 MB/s, measured on Apple M4 Max with Emacs 32.0.50 using a 1 MB streamed benchmark with ~1,000 lines of scrollback. On URL-heavy output ghostel drops to about 36 MB/s (78 MB/s with link detection disabled) due to its clickable-link scanning, a feature vterm and eat lack entirely. Compare emacs terminal emulator performance trade-offs on daily.dev before picking one for heavy log streaming."}},{"@type":"Question","name":"What terminal protocols does ghostel support that vterm and eat lack in Emacs?","acceptedAnswer":{"@type":"Answer","text":"Ghostel supports the Kitty keyboard and graphics protocols, five underline styles, OSC 8 hyperlinks, OSC 4/10/11 color queries, and DEC 2026 synchronized output, none of which vterm supports; eat lacks the Kitty protocols, OSC 8, and desktop notifications but does support Sixel graphics and colored underlines, unlike vterm. This comes from wrapping libghostty-vt, the VT engine from the Ghostty terminal, rather than libvterm. Track which emacs terminal packages support modern protocols like Kitty graphics on daily.dev."}},{"@type":"Question","name":"Does ghostel support remote terminal sessions over TRAMP on Windows?","acceptedAnswer":{"@type":"Answer","text":"Remote TRAMP terminals in ghostel are limited to POSIX remotes reached through SSH-style TRAMP methods; Windows remotes are not supported because ghostel's remote wrapper relies on POSIX shell and tty facilities. Windows-to-TRAMP sessions can run but dynamic window resizing is currently unsupported, unlike POSIX-to-POSIX TRAMP connections which rely on the SSH client to propagate window-size changes. Check platform-specific TRAMP limitations before configuring remote emacs terminal workflows via daily.dev."}}]}
```

