Mitchell Hashimoto joins the show to discuss Ghostty, the newest terminal in town. Mitchell co-founded HashiCorp, took it all the way to IPO, exited in 2023—and now he's working on a terminal emulator called Ghostty. Ghostty is set to 1.0 this month, so we sat down to talk through all the details. :link: https://changelog.fm/622
Ch | Start | Title | Runs |
---|---|---|---|
01 | 00:00 | This week on The Changelog | 00:57 |
02 | 00:57 | Sponsor: Fly.io | 02:45 |
03 | 03:43 | Start the show! | 00:22 |
04 | 04:05 | Let's talk Ghostty | 01:15 |
05 | 05:19 | What is Ghostty? | 02:13 |
06 | 07:32 | Terminals are like web browsers | 02:02 |
07 | 09:34 | Where did you start? | 02:01 |
08 | 11:35 | What does fast mean? | 01:17 |
09 | 12:53 | How do you make it fast? | 01:41 |
10 | 14:34 | Terminal as a platform | 04:18 |
11 | 18:52 | Ghostty passed Jerod's sniff test | 00:24 |
12 | 19:15 | Should tmux be baked in? | 02:48 |
13 | 22:03 | libghostty and Ghostty app | 01:26 |
14 | 23:29 | The importance of Windows support | 02:00 |
15 | 25:30 | The ambitions of Ghostty | 02:02 |
16 | 27:32 | Impact, but not as a business | 02:10 |
17 | 29:41 | Sponsor: Eight Sleep | 02:17 |
18 | 31:59 | Sponsor: Wix Studio | 00:53 |
19 | 32:52 | The Discord is active | 05:06 |
20 | 37:58 | Who's behind Ghostty? | 01:39 |
21 | 39:37 | How long have you been working on this? | 00:29 |
22 | 40:07 | Post HashiCorp hobbies and stuff | 03:46 |
23 | 43:52 | Nerd snipe BINGO (Zig) | 03:25 |
24 | 47:17 | Symbiosis with Zig | 02:12 |
25 | 49:29 | Any large technical problems? | 01:26 |
26 | 50:55 | Why is font rendering hard? | 03:29 |
27 | 54:24 | Packaging a favorite font? | 02:49 |
28 | 57:13 | Let's talk config | 05:30 |
29 | 1:02:43 | Comparing to Warp's prompt | 08:17 |
30 | 1:11:00 | Sponsor: Retool | 04:30 |
31 | 1:15:30 | Should Mitchell write a shell too? | 02:48 |
32 | 1:18:18 | What's DHH's terminal? | 01:38 |
33 | 1:19:56 | When does Ghostty 1.0 drop? | 01:33 |
34 | 1:21:29 | App icon - the winking ghost | 01:40 |
35 | 1:23:09 | Designed by Michael Flarup | 01:12 |
36 | 1:24:21 | How much SwiftUI is in here? | 01:03 |
37 | 1:25:24 | Major 1.0 blockers? | 03:13 |
38 | 1:28:36 | Good question on X from Mark J | 02:31 |
39 | 1:31:07 | Happy with Terminal.app? | 01:05 |
40 | 1:32:12 | Visor mode!! | 02:59 |
41 | 1:35:11 | Terminal inspector | 02:01 |
42 | 1:37:13 | Wrapping up | 00:42 |
43 | 1:37:54 | Go to ghostty.org | 01:15 |
44 | 1:39:09 | Closing thoughts and stuff | 03:42 |
Love all the activity around shells, terminals and hybrids.
Also, while I know it doesn't replace tmux, the Windows Terminal supports splitting the pane to run things like your editor (Helix, Neovim, Micro) next to, or above/below, a shell pane.
I'll be keeping an eye on Ghostty once it gets released to the rest of us.
How long before Hashimoto moves on, hands it over to someone that turns out to be a rent-seeker, and Ghostty's licence is changed to BSL with a mandatory cloud subscription? :P
I do love that Hashimoto owns that his decision between Zig and Rust is emotional and subjective
I see flame wars and toxic posts, especially in the Phoronix forums, that are anti-Codes-of-Conduct or anti-systemd, or anti-Rust, or anti-Wayland, and the authors always pretend to be objective but it takes almost no probing at all to see these are emptional preferences, not technical
And it's perfectly fine and human to have emotional reactions, as long as we know when it's happening and not lie about it
Is anyone using Ghostty that has used Wezterm? I've been so happy w/Wezterm (switched after Nick Nisi brought it up) that I'm curious if anything will get me to switch off of it
Ghostty uses GTK on Linux, and that's actually a drawback for me
I actually prefer that alacritty and wezterm are so toolkit agnostic
Going with GTK is the right move if you assume GNOME is the most popular desktop, but it'll rub everyone else the wrong way, IMO
@Lars Ellingsen I think if you've got a bunch of custom Lua in your wezterm setup, and you're really happy with specific custom behaviours you've built, then you might miss that by switching to Ghostty
However, it's probably worth playing with just to appreciate the differences in either direction
I haven't tried alacritty since I had a mac, and never used wezterm. Both worth revisiting. I'm a tmux-loving kitty user which smells contradictory :sweat_smile: . I like how Mitchell distanced himself from some of the tmux disdain out there.
What is probably needed is something like WHATWG or freedesktop.org but for terminal emulator and shell standards, so that existing protocols can be documented and new protocols can be discussed and implemented
There are various issues that can't be elegantly solved in a terminal emulator without more information from the shell
And it'd be awesome for terminal emulators to agree on how to advertise native widgets to shells
And yeah, intermediate layers like muxers can then also implement those standards
There is https://gitlab.freedesktop.org/terminal-wg, but they haven’t gained much “authority” in the space
I can't wait to try GhosTTY! I'm using Guaketerm on linux mint now to get the "visor"-feeling that Jerod talked about (or was it Adam? I have a hard time distinguishing their voices). it's fundamental to me, and Guaketerm also supports split pane which is also fundamental.
We'll see what GhosTTY gives once it's released to the public, pretty stoked!
Edit: If I'd have to choose either feature, it's split pane > visor/quaketerm functionality
It's now live :eyes: #general > Ghostty is now v1.0 (and Open Source to all)
Hah, BDFLFN amused me. Partly because I started a new project recently, intended for open-source, and wrote in the first RFC that the project would follow a BDFN model until it grew enough to need actual governance. I think it's not a bad concept!
(Needless to say Ghostty has grown a little faster than my project which hasn't make it out of private-repo stage :joy:)
I would love if Ghostty could handle connection breaks over an ssh connection. The mosh port is blocked at work and it’s pretty much the only reason I use tmux/zellij
fwiw wezterm gets you that. and @Jerod Santo made a comment similar, to the effect that he'd be sold if a terminal solved getting rid of tmux.
with wezterm, so long as you have it installed on both systems, you can use its built in multiplexer to transparently open new windows/panes inside the ssh context.
I dont much get the hype around ghostty tbh. i've nabbed multiple lua snippets for neat dynamic functionality, so it seems like it'd just be a step down always to not have scriptability
That's not replacing tmux though? That's just giving you tabs in the app instead of/in addition to tmux.
I'm in a similar boat as Dan.
I'm excited to try Ghostty (mostly for scratching my itch for trying out new shiny things) but it would have to deliver a lot more differential features to compel me to make a switch. Last major switch was from Kitty to WezTerm and I've been pretty happy with it so far.
Can someone, who has tried both WezTerm and Ghostty, share their experiences?
@Siddhartha Golu you can be that someone who tries both WezTerm and Ghostty and have your own experience. Only you can know if it fits your use case. Also remember Ghostty has been in development for less than 2 years and just released 1.0. Every other terminal has years on Ghostty.
wezterm was my primary terminal emulator for years
For me, it's tradeoffs are that there's the tiniest performance impact from having a Lua runtime for configuration, but in exchange it is extremely flexible and rich in features, and the majority of it is Rust so it's likely to be as fast as the equivalent written in C or Zig (plus without thread safety issues that C and Zig happily allow)
wezterm does use Vulkan on Linux, unlike OpenGL used by alacritty and Ghostty, so if you like leaving legacy technology in the past then this is a plus
The Rust libraries for Wayland (Linux) had a major update that completely changed their APIs, and wezterm is in the middle of an upheaval there, which make it unusable for me, but I keep meaning to dive in and see if I can contribute some PRs
Due to those Wayland issues, I've switched to Ghostty on macOS and Linux for now
Zig _is_ indeed a much better C, but I want as much of my system to benefit from memory safety and thread safety, I don't care if this is Rust or Swift or Erlang/Elixir or some new language, but Zig is not safe enough for my goals, so I'll drop Ghostty and go back to wezterm as soon as that meets my needs again
I also understand why they chose GTK, but saying that it's "native" on Linux is not exactly accurate, and I personally also want to be removing as much GTK and Qt from my systems going forward too (big old blobs of memory-unsafe C++, not to mention I just subjectively dislike how they look)
Dustin said:
That's not replacing tmux though? That's just giving you tabs in the app instead of/in addition to tmux.
perhaps i didn't explain it right, but it is literally replacing tmux. Your remote machine sessions are retained there if you disconnect. It's just more seamless because it attaches without nesting, and retains all the "native" window functionality.
Ah I found the docs. Cool!
Last updated: Jan 13 2025 at 01:14 UTC