Mitchell Hashimoto
Appearances
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
There's really obvious reasons why the terminal version is inferior. And my goal is to look into how to improve that. So concretely, for example, one of the things that brought up with Vim is that in the terminal version, you can't drag and drop things like images or even things like files to a certain extent. You can't just drag a file into Vim and have it open a new tab.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Going a little bit further, if you write
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
click in vim in the native app you'll get a native context menu and if you right click in the terminal you get this like kind of funky block character drawn one and that doesn't feel great in the native m you could have native tabs and so one of the things i'm actually looking into is how can you get a terminal program to be able to use native tab widgets even though it's driven by one program but it's showing up as multiple distinct tabs that you could pull out into separate windows and stuff like that
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And I think even, you know, one of the more extreme ideas I have is that a community member brought up is like, what if you actually had also had a browser, which, which seems weird, because I'm painting them as a dichotomy, but I don't think they're necessarily dichotomy. The argument was,
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
If you're browsing documentation, which is often in HTML, right now you have to do a link that opens in a browser in the same way that you could just draw text in a browser.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
What if you could just embed a browser widget into part of your terminal UI so that the documentation part just is, that happens to just be normal browser technology without, so you could like live in this sort of platform for reasonable overlap, right? I'm not trying to replace the browser, but just for a reasonable amount. If you're,
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, if you're like opening a PDF, like why does the PDF have to open in a separate thing? It opens directly in the browser. Why can't a PDF open directly in a terminal? Stuff like that.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Exactly. And I don't think it's like why and then I don't think every answer is we have to make that work in a terminal. I just like I think the knowledge of knowing why and being critical about if you can maybe extend the point at which you have to eject is a useful thought exercise.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I think so. So there are terminal people out there that I don't need to shame, but they are like sort of militant about disliking multiplexers. I'm not that person. If you want to use a terminal multiplexer and ghosty, I want to make it work. However, I do think that terminal multiplexers make the terminal experience worse, but but there's no better option right now.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So it makes sense that you're using them. So the reason I think a lot of people don't think about this is a terminal multiplexer is itself a full-fledged terminal where its UI is just text that's going to another graphical terminal. Like you're running multiple levels of terminals.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And one of the first places that causes issues is there's features that Ghosty supports that because something like Tmux doesn't support, you no longer get. And a good example is... Yeah, a great example is the graphics protocols. Like, we support graphics protocols. Tmux doesn't. You just lost that because the terminal within the terminal has to understand first.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And since it doesn't understand, it throws it away. And so... If we could get rid of that, then yeah. And one of the things I am thinking is the ability.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
My dream is with things like Tailscale out there and making it so easy to do networking, private networking, I want to be able to run basically like a ghosty host instance on my home computer, run it against your Tailscale network, and then anywhere you go, reopen, reconnect, and it's your same sessions like Tmux. But instead of just the text, it's actually like,
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
all your old windows and splits natively perfect, the same size pop back up.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And you could close all of them and it's all good because it's all remote. And it's, and like, you know, you own all your data. It's just running on your own machine. It's a tail scale, all that stuff. Like that is something I'm actively trying to do right now.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, yeah. I think the people behind Tmux and Zellege and stuff are great, but I think that philosophically I would love to see them disappear. Not the people.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, yeah. And if I could get a little bit more nitty gritty, one of the things that I think Ghosty, obviously, the way I've talked about the way we focused on it has been the application.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But I think long term, what Ghosty actually becomes is what I what I call lib Ghosty, which I'm really trying to build this cross platform artifact, this library that you could build terminal emulator applications on top of. So you don't have to reinvent the core of understanding Ghosty.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
all of the the terminal stuff you could just focus on sort of the ui part and that's not theoretical that's how the mac goes that's how both ghosty apps work they have a platform specific ui that shares a common core and that common core is actually a c library i'm not ready to ship that as like a 1.0 yet the actual core c library but
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Because the UI is pluggable, the community, we've already talked about, there should be a multiplexer like Tmux where the core is just libghosty and you just focus then on the stuff above it. And if you start doing that, we could do some sneaky things too where if libghosty detects that it's running within ghosty, it could just stop.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It could just pass through and you no longer pay for that anymore. But then... Um, the benefit of lib ghost existing for other terminals is you could get all the modern features that ghosty has without every developer having to reinvent that.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So I guess I'm, the point being is I'm trying to come at this multiplexer problem from different angles because, because I think it would take time for them to truly be obsolete. Um, yeah.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
In my personal world, it's not super important. But in the world of software, it's hugely important. And I could go back to Vagrant for this one. I mean, when I really focused in, I actually, one thing I did back, probably the year after we talked, back in 2013, is I bought a Windows PC, a ThinkPad, and I used Windows full-time for a year.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And that was because I really wanted to empathize with what the problems were with Vagrant on Windows. I didn't want to just get it working
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
in a couple hours one evening and go away i really wanted to like live in that ecosystem and understand and windows got a lot better i made installers things like that and the end result was that the vagrant growth was absurdly huge because the windows software development ecosystem is extremely large and they have a lot of paper cuts that they're dealing with and so i think the same thing with terminals i think that it's really important
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It's hard enough for sort of me as an individual to do Linux and Mac sort of as a side project. So Windows didn't make it for 1.0, but it's something I really want to do for future releases.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yet, yet, yet.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, yeah. And it's like, some people have got it working through WSL and... You can run Ghosty on Windows through that. I just say it doesn't work because to me, the Ghosty experience means that you're getting a truly native build, and we don't have that for Windows yet.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So my, yeah, I think the important part of the ambition point is that it's not,
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
financial the ambition behind ghosty is really terminals are a really fundamental part of a software developer's life no matter what sort of ecosystem you're in whether it's web technologies desktop you know etc whether you're a student a professional basically all these dimensions terminals are very important and i don't see that going away and i sort of think like what
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I don't feel like people have focused very hard on terminals. And can I sort of be that person for a while, the steward for a while, improve the ecosystem in some way, and sort of build a community that could then sort of carry that on later? But yeah, the real, I guess, to put it into one word, the real goal with Ghosty is impact. And to that end, I think that Windows support's important.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But more importantly, that's why libghosty is more important to me because I don't want ghosty to be the one and only terminal emulator application. I don't want to build an iOS application, an Android application, whatever future platforms exist. I want to enable others to do that without having to reinvent the core.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And so libghosty to me is like the actual impactful thing that's going to happen over the long term. And we could...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
get into licensing later, but that's sort of part of the reason why we ended up on the MIT license as well as I really just wanted, whether you're going to be commercial or open source or whatever, whatever you wanted to do with lib ghost C, I really just wanted to enable that impact no matter what.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, it's a great example.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Thanks. Thanks. Yeah. I, you know, I don't, whatever people write on Wikipedia, if there is anybody, anything then, then fine. But I think that, you know, part of the way I've described ghosty is this idea of, of technical philanthropy.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And, and one of the things I know about myself is, you know, like I just love programming and I love building and I knew that wasn't going to stop no matter sort of how much career success I had or, or things like that. And so, my thinking was, if I'm going to spend time on the computer programming anyway, is there a way to make that time meaningful?
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And, you know, I'm sure there's more directly meaningful ways that I could spend that time. But, you know, I felt that
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
doing this broadly used category of software for free and and trying to make it good i guess for for a blunt term just good is yeah could be meaningful and so that's that's yeah it's definitely a part-time thing i don't spend 40 hours a week i spend barely maybe 10 or 15 on this and it's just the the way i could have fun and pursue my passion but still feel like i'm helping something
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah. The discord is, I don't know what it is now, but it's somewhere between 20 and 30,000 people. And, uh, That's way too many people. And so there's been a good volunteer community of moderators that work really hard because it's also somewhat of a chaotic experience having 30,000 people in one text channel. And so they work really hard and do a great job and not just contribute on that.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
A couple of the moderators maintain the Discord bot that is used for a variety of things. In addition to that, there's been a couple hundred moderators
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
code contributors to go see already and the thing that stood out to me the most about that was I went back and listened to our 2012 vagrant changelog episode a week ago since I was like I wonder what I was doing back then that really threw me back and The first thing I noticed is we were talking about how Vagrant passed something like some number of stars.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But I remember it had just passed something like 100 contributors. And it was already two years old and pretty popular by the time we were talking. And we're talking about how I was so amazed by that. And I was thinking, wow, the software developer ecosystem has gotten so much bigger. Obviously, due to some of my background, it attracts more people. But
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Ghostie in private beta has more stars and almost double the contributors that Vagrant had after two years of being a public project. And so that was kind of like a mind-blowing thing. But that's, yeah, it's sort of built. The we is really the community in terms of people that are working, I guess, like even multiple hours a week on this. It's probably just me, but yeah.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Hey. There's a funny detail to that, I think, is that I thought for sure when I started working on a terminal more seriously that very few people, first of all, would care. But of those very few that cared, I thought that demographically it would skew to a more mature audience. Hmm. But what I've discovered is that a lot more people care about terminal aspect.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And predominantly of those people, it is young people. When I say young people, I literally mean teenagers in school, a lot of teenagers in school up to, early twenties, early career type people. And because of that, there's some shenanigans, I will say within the discord. And so the monitor and the moderators are very sensitive.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
There's been a lot of scams, a lot of phishing, a lot of stuff, just people just trying to get into the beta. And it's not that important, but you know, I think when you're younger, you're a little more zealous about these things. And so, and so the moderators I think are very,
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
There you go. I'm surprised you didn't get banned, honestly. Like usually those types of things pop up and there's sort of like, because there's like 10 moderators or less, I think there's like seven moderators and 25,000 people. Most of the time when stuff like that starts happening, moderators are just like, I don't have time for this. And they just ban you from the server.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Not as much as I would like due to time constraints, but it's something I'll keep thinking about. So for the 1.0 public launch, it'll just really be me and my side project. It's really my project type thing. A lot of community in terms of contributions, Discord, moderators, love all those people.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But I think that longer term, I am interested in some sort of governance model because I don't think I'm going to be working on a terminal the rest of my life. And I do want this to be impactful. So that's something I've definitely thought about. The beta testers have been involved in this. discussion we've had for almost a year based on project sustainability.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Because even though it's not something I want to pursue any financial gain for, I would like it to be sustainable for others. And so we've talked about, can we set up, whether it's, is it sponsorships? Is it this? Is it that? In order to, I don't want any of that, but in order to pay the infrastructure costs and also potentially in the future, pay contributors as well. And so that's something that
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
we're just talking about and we're not a hundred percent sure about, but that's sort of the extent to which I've been thinking about this so far.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah. I mean, yeah, for now it is definitely a BDFL model for now, but yeah, BDFL for now. Gotcha. BDFLFN. There you go. How long have you been working on it? So the first commit was actually March or April 2022. But it's very deceiving because I was still full-time working for HashiCorp. And you could just tell through the commit history. I worked on it here and there.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
There was like a three-month period where I didn't do a single thing. And then, you know, it was very, very on and off because it was really just me playing around with technologies. I think I got a little bit more serious probably last about over a year, a little over a year ago. Yeah.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I do fly planes. I do. Yeah, that is a hobby. But it's... I didn't get all pessimistic like a lot of people get. I still love technology and I think that technology is getting better and I think that there's a lot that could be done with it still. So I knew that I was going to stick around and do something.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
The important thing I did post HashiCorp was when I really formally really left, like wasn't getting any sort of paycheck or anything and had to get healthcare on my own and all that sort of stuff. When I really left, my daughter was about... two and a half months old. And so one thing I really wanted to do was just be able to spend a ton of time with her.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So for the majority of this year, and that's a big part of why I didn't publicly release Ghostie right away. For the majority of this year, I've been home and only working during naps or at night or whatever. Every time my daughter's been awake, I've been with her. And it's only been within the past month
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
month or so where that started to change a little bit as she's about 15 months now she has more things that she's going to and stuff and so I've been able to carve out more like dedicated even though she's awake like working hours and so I think I did spend that time but on the other side You know, I, I'm not someone that can't work. I love working and my family knows I love working.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And so finding that time, um, showing, being able to, as my daughter gets older to like see her dad working, you know, that's important to me. And so, uh, that's, that's all part of it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
She's got a – I know there's no video element to this, but I have all these stickers, like ghost stickers. They're not finalized yet, but I just have so many of these things. And she's at the age where she loves stickers, so I'll show it for you. Nice. You can see all these stickers. There's about a dozen. There's so many. And she has all of them, and there's ghost stickers all over her house.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And my wife jokes that she points at it and goes, oh, that's daddy's work because for now it is daddy's work. And so, like, that's – yeah, that's what it is.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Thank you. Yeah, it's been 10 years since the last show. And then the first time, the only other time I was on, I think it's been like 13, 14 years. It's wild.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Oh, yeah. I mean, even when I wasn't really when even when I was just doing go see, like literally at night after the baby slept, I was actually doing it. I require a lot less sleep than my wife. And so I've always been like a six hour a night kind of guy. And so I was actually when she was an infant and waking up in the middle of night.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I was just not going to sleep before she woke up that first time. I was like, I will just work, and then I will handle the baby and feed her the bottle and put her back to sleep, and then I'll go to bed after that. And so that was sometimes midnight or something. And I would sometimes run into my wife when she was awake. I'd run over to her and have my phone out.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And I'd be like, look at this, look at this. And she's like, oh, do you have a cute video of our daughter? And I'd show her the video, and it would be like font rendering. And she was so disappointed.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, you could find a tweet I did, I think, end of 2021, very early 2022, where I talked about how I was interested in Zig, but I had no time to use it. And it was always in the back of my mind of this interesting programming language. And I think as important background to me, I was a...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
That was 2007. 10. I don't know, but yeah. Wow.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
professional paid C programmer for a year or two of my life, somewhere between a year and two years of my life. And, and I like low level system stuff. I actually like C and so I wanted to, it was very, HashiCorp was very close to getting all software written in C by the way. That's very, it was very close.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It was between C and go and go one, but it was very close to C. And I wanted to, to get back to systems programming, but I, I recognize the warts that C had, and I was looking for a better C. And Zig, to me, always felt like that. And years into using Zig, I feel the exact same way. I feel better about it. it brings me joy every day to write Zig. And, and so that's really it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
You know, later on, I learned about the community. I like the community, the sort of the founder of the Zig programming language, Andrew, really, we've now hung out in person multiple times, really awesome, like kind person and his technical points of view are fantastic. And, and so everything sort of came together where I'm just having a lot of fun. Yeah. And that's sort of how it, how it goes.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Did you try Go?
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I knew Go wouldn't be a choice because I knew I wanted to do something that really, I owned every single allocation and every single instruction that would ever be run. And having an active runtime that was running was never going to be, and a garbage collector was never going to be an option. The real plausible option there was Rust.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And I didn't try it with the terminal because by then I had already had enough experience with Rust that I knew I didn't want to write Rust every day. The way I describe it is I philosophically and as a technical achievement, I have absolutely nothing but respect and I'm impressed by Rust. I think it's very impressive. But as a personal basis, it's very superficial.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
When I write and read Rust, I'm not having fun. And I want to have fun. And part of the joy is writing the code. And, you know, it's very much a stylistic choice. I hate to put it in that perspective, because I think engineers want some sort of concrete objective reason of why one versus another is better. It's really a vanilla versus strawberry ice cream flavor sort of thing for me.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It's they're both great. They both are edible, you know, but I, but I choose one over the other. And, um, that's, that's really what it came down to for me.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I think so. I think so. And I think Andrew and people on the project would say the same thing. So, I mean, very directly before the project, I literally contributed to the compiler. So there's that very direct personal relationship. But with the project, I mean, Zig's still such a new versioning language that there aren't very many real-world users.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
No, I say ghosty. I say ghosty.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And I think having this real-world use case exposed a lot of... not just bugs, but ergonomic improvements and issues. You know, one of the things that I think a very big thing, a couple of very big things that popped up really immediately was the need for package management and then beyond that, which is now sort of solved and within Zig, and beyond that, the need to enable packages
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
system packagers, which are separate, like, you know, one of the things I'm doing with ghosty is I'm not doing any of the packaging, I'm going to release the source, I'm going to do the Mac app, because that's kind of you need to like kind of pay and sign in, blah, blah, blah. But all the Linux stuff, if you want to Ubuntu app package, or RPM, or Nix package, like I'm not doing any of that.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And that's pretty classic, right? Like open source, like packagers are other people, you But Zig is such a new thing that I knew that would be challenging for those people.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And so Andrew did a really great job of listening to my feedback, but other real world projects and building in the system packaging mode and guidelines into Zig where I feel pretty good about when we go public that we're going to be in a place where
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
hopefully ghosty pops into debian repos and stuff pretty quickly but that that's i think a good example of how things go um and then just compiler stability i mean the zig compiler moves super fast and i'll regularly just say ghosty doesn't compile anymore not because you made a breaking change but because like something's actually broken and i believe they use ghosty here and there as sort of a canary of whether the compiler is stable like can ghosty build and run
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
If Ghostly can build and run, then that's a pretty good, it's a pretty good sort of like big integration test, right, for the whole compiler.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I have to laugh at that because the joke I always make about my work on Ghosty is that what I really ended up building, 70% of my time, I'm just building font rendering and the other 30% of my time is a terminal emulator. So I think that the really big hairy thing, is really font rendering. It is a minefield. And when I say font rendering, I don't mean just reading a font file and drawing a glyph.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I mean, everything from Unicode handling, emoji, skin tone emoji, East Asian languages, and then drawing them as well. I mean, that whole path is... A crazy mess. And even just today, just total coincidence today, I tweeted about a bug I found with skin tone emoji. And that's just a coincidence. But my life has been dominated by font rendering. But luckily, I found a lot of joy when I get...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
when I get it fixed, but I've been shocked by how much time I spend thinking about it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I thought it was in the past. I always think it's in the past, and here we are. Right, you think it's done, and then there's another bug. But today, it's done today. We're good. Now it's in the past.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
There's a lot of layers. And it is to some artistic, right? The way fonts look and stuff. And there's not a pixel perfect specification that says... that given this font and these characters, whatever, this is how it looks. It really is mathematical with a lot of wiggle room in terms of how much anti-aliasing you use, the spacing, where it floats on the line. There's a lot of wiggle room.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And so I think in addition to sort of the core technical challenges of so many different phases of fonts, there's also like people that just come up and say, it doesn't look good. Nothing's wrong. I just don't like the way it looks. And then you kind of have to dig into why that is. And Ghosty provides a ton of knobs for those people to get fonts looking the way you want.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And then our gold standard has basically been we want our fonts to look like Mac default. So like TextEdit, honestly, is our gold standard. The way text looks in TextEdit is the way it's going to look in Ghosty by default. So yeah, that's been that. But I think also just finding... all the layers I never thought about.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So I think the first one that shocked me that I had never considered as an engineer was how do you pick a default font? You have a monospace application. In a web browser, you say font family monospace, and the web browser picks it for you. Right, like a fallback. Yeah, there's that...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
doesn't exist at the os level right you have a list doesn't no you have a list of fonts they have different properties some are monospace and not that's an easy one to just break down but within the monospace now you have a bunch of different ones and like how do you choose which one you want to use and it has to be deterministic because if they launch their terminal every time and you choose a different monospace font it's going to be a problem and so yeah it doesn't exist and so like that was the first thing where i was like
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
why am I thinking about this? Uh, because yeah, it feels like something that OS should do for me. And so that was, that was sort of the first challenge.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I don't know how they do it, but they, they tend to use, uh, I think, I think they probably hard code. Uh, Menlo. Yeah. Is it Menlo? Yeah. Um, I think they just use the, the like Apple, like usual one. And that, so Apple's kind of easy because Apple does, they solve some of that problem.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah. And you could always, Apple's easy because there's so much homogeneity across the platforms. Right. You could kind of just say, I'm going to do whatever Apple does. Linux is the really hard one. Okay. So what do you do? Basically, I look for, obviously, monospace font. That's an easy one. And then I look for one that has ASCII characters.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And then I look for one that has more ASCII characters than anyone else. And then, you know, I sort of just apply the scoring algorithm to it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
If it has emoji within it, it's even better because it's likely the font designer made them work together. So I tend to score things with more glyphs in it higher. If it has more faces, so if it has italic and bold as well, then it gets scored higher than something that only has a regular. So yeah, you just apply all this scoring to it and hope for the best.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And so far, the beta community has felt...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
pretty good about it did you consider just getting opinionated and just packaging your favorite one and saying like this is ghosty's default is this i do i do actually um but i do as well i do as well so we if i don't find basically a font that i'm satisfied with then we fall back to using the packaged font which is jetbrains mono um with nerd fonts already applied great choice thank you thank you it's it's
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
all of the defaults of ghosty for the most part are the ones that i would use and so yeah but yeah so we do that as well because there are in particular a really problematic area of linux is there's a lot of installations of linux that don't have emojis for example and so we we package an emoji font so that emojis just work out of the box again these are things that don't happen on closed apple computers but online we have to think quite a lot about yeah
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
If you want to be pedantic, terminal emulator, but you really don't have to be. I think to most people, terminal would make the most sense. Yeah.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I don't personally love. I don't think they look that good. Yeah, same. So I wish that Apple would license their Apple emoji so that it could be used cross-platform, but you can't. Legally, you can't. There's people online, obviously, who have pulled it out. You can find them, yes. Yeah, so you could find it, but as a... As a distributor of software, I cannot.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
One of my favorite things I tell people when they ask more and more about fonts is the best source of figuring out how to do anything is...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
web browsers every every independently every person i've run into that's done a lot of text work has landed on oh yeah i read firefox and chromium source code and blink and like all these different things like and that is true of ghosty as well like whenever anyone has been like i want to support this feature and i think how do you make that work you find the answer because web browsers have solved it and they've their cross platform and things like that um yeah
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
That's usually the first thing I get asked. Yeah, I mean, I think... I think the important thing to know is I didn't set out a couple of things. I guess I didn't set out like knowing I wanted to work on a terminal emulator. And second, even when I decided, Hey, I want to work on this. I didn't think anyone would actually care.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, I mean, depending on the audience here, I mean, I think my thoughts on configuration are going to be loved or hated. I've created a good duopoly of people that either love HCL with Terraform or think that I've crapped on the entire industry with this thing that people have to do every day. It's one or the other. No further comment on that, but I think because of that, I think...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
There's a lot of experience I have with configuration. Vagrant was Ruby. Packer has JSON and supported JSON and then now supports HCL. Then Terraform is HCL. I sort of got done the spectrum. And so I was coming into this a little with some experience and opinion. And Ghosty's primary... So its configuration file is a custom text-based non-programming format. There's no conditionals. It's just...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
key equals value straight down. People have described it as very any-like, but there's no categories like any. It's just key equals value. The principle why behind that, and I suspect I'm going to have to keep defending this over and over, but the principle why behind it is that the config file and the command line arguments are...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So anything, any key equals value you could set in the file, you could do dash dash key equals value on the command line and they perfectly match. So if you know how to do the CLI, you could do the config file and vice versa. And that's a very important property I want to keep. I think it's very educational friendly to a tool. And then the other reason is because it I could parse it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
validate it, and load it in a single forward pass. So this was more of a performance thing, but I don't need to maintain an abstract syntax tree like you might have to with a YAML or something. I could have an array of bytes, you know, conceptually an array of bytes, read one at a time. I only have to keep a small, you know, fixed size back buffer, move forward, and I could parse the config.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And it is... it is definitely a detail that's probably not super important, but because of that, ghosty has the fastest config parser and you have to read the config every time you start ghosty. And so it's, it's something that I didn't want to waste startup time on. And so that's a big reason why I chose that format as well.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Uh, but the why really goes back to, I wanted to post HashiCorp sort of get back into different categories of programming that I hadn't had the time to work in and felt a little rusty. And, uh,
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But yeah, I mean, I, I really haven't gotten any from the people who have actually used ghosty. I haven't gotten any pushback on it. It's hard to dislike. I mean, the only thing you might want is like conditionals and things like that. And And I just think philosophically, I tell, you know, those people you should be using Western or something that supports Lua.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Like that's, that's not something I'm never, I'm never going to make initializing a runtime loading files, evaluating code, part of the startup path of my terminal emulator. Like it's not going to happen. So yeah.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It has implications. I'm not sure exactly for what yet. I mean, I think the one that popped up first was people wanted a different theme for light versus dark mode. And so that was sort of the first conditional thing that popped up. We solved it in a different way. You can just specify a light and dark theme. as separate config options, pretty straightforward. But there's other ones, too.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So I think the one that's looming right now that actually hits me is that I want different key bindings between macOS and Linux. I'm somebody that spends a pretty 50-50 time between macOS and Linux. And so I want the key bindings to be slightly different. Because there's no command character when I use Linux. when I use Linux. And so there's workarounds for that that really aren't very ugly.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
We have the ability to load additional config files only if they exist and not error, basically only warn if they don't, log if they don't exist. And so you could actually create, you know, Mac config, Linux config, and have it not exist on that platform. And that solves that problem to some extent. But I do want to solve that in a less duct tapey way. And so there's implications. But I think that
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
My view generally on... I don't want to get too abstract here, but my view generally on problems is that constraints are good. And so I think we've defined our constraints, which is that I want a forward pass, single, you know, parsable thing. I want it to be fast. I want it to be isomorphic with the command line interface and config file. And I think those constraints are set in stone.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And if you have some fundamental constraints, then you could actually start a discussion of how you solve it. I think that... Generally speaking about about software in the industry that I see is too many people are choosing the most generic thing without constraint as the answer. Like, I'm just going to let you write arbitrary code to do this or I'm like this. This is the do anything machine.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It's like I I feel better about constraints. So that's just a philosophical tangent.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
no pun intended and um i you know for me that meant you know non-infrastructure non-server side you know desktop side software using a gpu something i never used you know while we're at hush corp at least not too much graphics programming you know just everything the polar opposite of what you could think of what i've been doing i wanted to get back and play around with it and
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah. Yeah.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, yeah. I mean, I, I think you're exactly right. I think, I think what Warp did with that is very good. You know, I don't, I don't even know if Warp's open source or anything. I don't know how they did that specifically. I know I have ideas. I know how I would do it if I did it, but I don't know how they specifically did it. But that is something. So I guess there's two answers to that. One,
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
is it is on our roadmap to a certain extent in the sense that Mac, I assume you're on a Mac if you're using Warp. Mac has a bunch of standard text. I think Apple calls them actions and they're named things like select previous paragraph, select next paragraph. They have like names. One of the open issues on GoSee right now is to implement those actions and just do them in some way.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And I say, so then part two is in some way, the challenge is that the thing that's actually doing the text editing is the shell and not the terminal. And this gets into a layering thing that I think an everyday person doesn't care about. And I want them to not have to care about it. I'm just talking as an, I don't care about it. Yeah. Yeah. I'm just talking as an implementer.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I'm just saying why this is being funny. No, it's all good. Most people don't care about it. But for me as an implementer, it's what makes my life hard because it's really not my problem that I could easily solve. Because what a terminal emulator does is you enter characters, we encode them as some events, and we send them to the shell. We're actually not
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Editing that prompt right the shell is editing the prompt and the shell is moving when you did a back arrow I'm not even moving the cursor I'm sending a back arrow to the shell and the shell is sending a message back to me saying move the cursor left by one But it could do anything it wants in the same way that when you hit the up arrow It's not telling me to move the cursor up It's telling me paint this text which is history that I don't know anything about the shell knows about and so
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It's hard for me to solve because we don't own that text input. There's very hacky things that Ghosty and other terminals do. If you shift-click somewhere into the prompt, the cursor moves there. I think it's shift-clicked or shift-command-clicked. I don't even remember off the top of my head. And when someone suggested Ghosty support that, I gave them this answer of, like, I can't do that.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
They said, oh, other terminals support it. And so I went and looked, and I was like, how do these other terminals do it? They actually synthesize arrow keys is how they do it. They guess. They guess. You click one row up and four cells to the left. I'm going to send you one up arrow and four left arrows and hope your cursor gets there. And it leads to all sorts of weird stuff.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So if you like, you could do this in Ghosty. You could do it in other terminals where if you click up too many times, history will start showing up. because it's sending up arrows and history is actually showing up instead. And that's a terrible experience. And so this is a long, rambly way to say, it's not my problem, but I do want to solve it. I do want to help make it easier.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I poked around at a few things, but felt that a terminal emulator was a good combination of those things I wanted to play around with. And as I sort of spent more time doing that, recognized, hey, I think terminal emulators can actually be a lot better. And I think there's like an opportunity here to do something that people really love. And that turned into a much more serious thing, I guess.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And this is one of the areas where I want a terminal to provide better tooling to shells so that we could actually do this in a very user-friendly way.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
The community suggested this as an option, as a configuration option. I could solve it by separating out where the prompt is and where the output is. And I think that's what Warp does. you know, your, your, your prompt input is like a totally separate box from where the output goes. And in that way, I could just defer sending stuff to the shell. You know, I could actually own the input fully.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And only when you sort of hit enter or hit tab or hit certain control characters, I could actually flush it out to the shell and be like, okay, what's the deal and sync back up. I'm not trying to over-trivialize that problem or anything. I think what Warp did is really good there. But that's how I could solve it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But it would feel distinctly different for people that actually want a prompt that starts marching down your screen.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
The directory maybe didn't exist?
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, I completely agree. It's actually one of the last remaining discussion points before the 1.0 is some of these defaults that we want to set in that sense. Because the trade-off between these defaults is that if we put those key bindings as defaults or those behaviors as defaults, then things like TUI programs can't map them because you're taking over them.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And so do you want to actually... We're talking about whether that's important or not or if it's more important that by default people expect what you just did. And I think it's also important when I consider that it's where people are coming from. If you're coming from Terminal.app or iTerm or something, then this is likely to not really be an issue because we behave... almost identical to those.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But if you're coming from something like Warp, then yeah, it's going to be a big issue. And so... I'm not super sure. I mean, that discussion actually did lead to the sort of, I think, extreme path, which we're not going to go down because it's too complicated, of inspecting their machine to be like, are you a ZShell user? Were you a warp? Is warp installed?
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Like, should we behave more like warp on first startup? Like, are we going to guess basically based on what you have? And I'm not ready to go down that path yet. We do it. We do that for other things, but I'm not ready to go down that path for things like input manipulation. But it's unfortunately complicated. But I agree with you.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It's not even the speed. I'm not a big fan of the built-in one, but yeah. Gotcha. Yeah, I mean, I think that one thing I've always said about terminals is that I think if you compare them conceptually to a web browser, then it starts to make a lot more sense about why I care about terminals.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I, I, I fight the nerd snipe every day of my life to write a shell. I, I, that's, that's something I'm holding. When are you going to give in, man?
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I'm holding strong. Cause there's so many bug reports. So many that I get that I am like, this is a shell bug, not my bug. But then, you know, I do think I do. I don't just dismiss it. I do think, can I as a terminal emulator, uh, mitigate this bug. But ultimately, this is not my bug. And so, yeah, it's frustrating.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It's also frustrating because all the cool new post 1.0 features we want to build that we kind of touched on, it's going to be blocked on downstream adoption. right? It's like any, you know, web browser comes out with a feature. It doesn't matter until a website implements it. And so that's going to happen here too.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But if we have, I've, I've joked around building a ghosty shell that only works in the ghosty terminal emitter. So it's kind of crap because you would never use it remotely, but like, it's more of a tech demo of like, this is what shells could be if they implement all the capabilities of ghosts. It's kind of like Chrome web experience, web experiments.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Like we need the ghosty terminal experiments to like, where people visit it and with the Chrome one, like I would visit it and be like, holy crap, a browser could do this. And then it changed my whole perception of a browser, like sometimes years before any website behaved similarly. And I have talked with, with folks about doing the same thing for terminals.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
this 2e works best in ghosty you know that's already happening i think more than people expect um i would i would say right now like neovim works best in ghosty and then it works it degrades great for other for other things but they're i think almost the entire neovim
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
maintainership is in the ghosty beta and it's a collaboration between us implementing something and NeoVim shipping it like two weeks later and most people have no idea because unless you're in ghosty a feature detects it those things don't turn on that's crazy so if you're using NeoVim you want to be using ghosty And maybe vice versa. I'm biased, but yeah, I think so. Are you a NeoVim user?
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And what I mean by that is the web browser has for better or worse, just, I don't think it's controversial to say that it's one sort of the graphical interface ecosystem of the world.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I am a NeoVim user. And I don't know how many of the actual NeoVim maintainers actually use Ghosty. They all have access. I don't know how many actually use it. But I know that more than one mains Ghosty all the time. And so, yeah, it's something that NeoVim is always going to work in there. And we're going to work really hard to make it a great experience.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Here and there. If it's loud enough. Sometimes you can't help yourself but pay attention.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I might be making this up. I can't fully remember. I'll start with what I know for sure I'm not making up, which is that I've gotten mentioned a lot on Twitter with DHH and others with people telling him or asking him to look into Ghostie. That I know for sure. That happens actually fairly regularly, probably due to the stuff that you're talking about.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
What I don't know, what I can't remember is I thought He said that he only wants to use software that is publicly available that everyone could use, which is a totally obviously good take because he's shipping stuff that people want to use right away. And I don't think he said that directly in response to Ghost. I think it was just like a general thing where people sending him stuff to use.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But I imagine that that's... you know, a big thing holding him back if he even knows about go see it all. But I hope when it's public that he would at least give it a shake. I've always said, even if you don't use it, I would just like to know why, why you don't use it. And that's perfectly valuable information. Um, so yeah.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Like if someone's building a graphical interface today, nine out of 10 times, probably more than nine out of 10 times, they're using a web technology, whether it's actually in the browser or electron or whatever it is. And, I think there's still a good place for text-based interfaces. And the terminal has always been the place for text-based interfaces.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
is when is this going to be available to the public yeah when is 1.0 going to drop yeah so we're recording this in december and i promised it would be released in december and the plan everything still looks good for december so sometime this month i don't have a day i really don't uh it's just sometime this month i think the software is in a pretty good place there was a few blockers that i had one of them was the icon that i wanted to i wanted a fresh icon for the 1.0 that's done i i
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I tweeted that out and it's in the beta builds already and that's all done. Another one that I'm waiting on is sort of like web design and website docs work. That one, you know, it's all volunteer. I'm not the best at web technologies right now, especially front end. So I have friends helping me.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
with that and i don't want to pressure them it's the holiday season things like that like if if the website doesn't get done in december my plan is probably to publicly release without it and just just you know say that's coming later probably make a bunch of markdown files to kind of help people in the repo with docs but we'll see about that but i'd say that's the major thing blocking right now and then the third thing is sort of some some amount of release management we have nightly builds right now but i haven't actually written the
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
the GitHub action automation stuff to tag and build like a numbered release and so I'll have to do that for the 1.0 and obviously that's not a huge blocker that's probably like a day of focus so we're still looking good for December
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
The winking ghost. Do you see a winking ghost? Yeah, yeah, that's it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, that's on purpose. That's on purpose.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, obviously. There's obvious differences. I would say, if you can, open the terminal icon. than the 512 or 1,000 pixel version and open the ghosty one in the 512. One thing we did with the designer who did this is a well-known, really awesome designer.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I've been a fan for so long, so I was actually really excited to actually get an icon designed by this person that I've been a fan for his icons. But one thing he does really well, which is very Apple-esque, is that the level of detail in the icon differs based on the size of it. So if you're looking at it in the dock versus the big version, it's different. So look at the big version and compare,
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
It's super an homage to terminal.app, but we tried to add a level of depth and reality. So things like the aluminum border has texture. The pixels, you could see the individual pixels of the screen, and they were warped because the screen is curved. There's a soft glow around the ghost, you know, things like that.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So, yeah, I just want to call it out because he worked hard on it, and I think it's cool. And I think it also shows sort of the level of detail that we've been thinking about with this software.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Michael, I don't know how to pronounce the last name, Flairup. His company is Pixel Resort, I think. Yeah, you could see his whole portfolio on that. He's done hundreds and hundreds of icons over more than a decade and really big fan of his work.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And sometimes the terminal lives in a browser, you know, if you're using like a web-based text editor and stuff. But I think that if you look at web browsers, they get hundreds, maybe like a couple hundred if you're being conservative, new features and innovations every year. And if you look at a terminal, they get I don't know, keep probably count on a couple of hands, how many they get per year.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, and he's still doing a little bit more work for Ghosty. And I'll just hint. I mean, it's going to be more than a hint. I'll talk about what it is. It won't be in for 1.0, but probably shortly afterward. We're making it so that the icon, we're going to dynamically change the color to match your theme. So on disk, it's always got to be sort of the default.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
But when it's running, Apple provides APIs where you could add a custom image. And we want to make it so that the bluish color will actually be your actual background color and the text and things like that. And it's just going to happen automatically. Nice.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I don't have it open in front of me, but I think something like 10% of the code base is Swift right now, which is kind of scary. Yeah, and that's why I think that I've harped on this so much, but that's why I think libghosty is so important because it shows the amount of work that goes into building an end state app is how much code is required and stuff. Right.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, I think there's a lot of Swift in there, a lot of Apple-specific functionality.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
implementation consumer of ghosty, which will probably be like the ghosty Mac app and Linux app. And so the Swift code will only increase, but I'm not sure percentage wise what that looks like as, as the core functionality changes and stuff. I'm really not sure.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
There was a number of features that there was a certain amount of stability. Obviously, stability is hard to quantify, though. It sort of is more of a feeling of when you get enough beta testers that aren't reporting bugs. That was sort of a vibe. But in terms of features, there was a list of features that we wanted to implement and performance metrics we wanted to hit.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So just things like supporting image protocols and like ways to input and making sure I basically went out and just looked at all the available functionality the terminals have and asked myself whether it's important.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
to have it and that was sort of a marker because that 1.0 goal was to be the best existing terminal you know you kind of have to do most of what existing terminals do I drew the line at like terminal stuff not like UI stuff because there's a lot of terminals out there that'll do like SSH libraries and double click and you can just go straight in and things like that I sort of drew the line where
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
When I say existing terminal, I mean the functionality below that line. But that was sort of the goal. I mean, I think the one feature that was always, there's two things that were always, to me, a release blocker that I've not given up on. I've just like, you know, I've let go in terms of blocking the release, but we're going to still do it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
One of them is a totally graphical configuration mechanism because for Mac and Linux users, for the Mac,
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
majority of users they don't want to be editing a text file to doing their configuration so we do want to build a native UI to manage your config and that's still coming and for sure something we'll do and then the second thing which is I think a really big deal and I think a lot of people will probably be not very happy about with the 1.0 is search I don't know if you noticed that yet but command F doesn't work it doesn't do anything I have not noticed
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And I just don't think it's a very exciting, innovative platform for developers. And I, I just sort of wondering like what happens if you do make it exciting, like, or does it become exciting? I don't know. And, and to me, the worst case, if it doesn't become exciting is we still use terminals every day. So at the very least, I think you've built a better terminal. So.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So surprisingly, we have something like 5,000 active beta testers right now. Really surprisingly, it's not been a big issue. I thought within the first month of beta testing, when we had 50 people, that people would say, oh, this is not usable because there's no search. I don't use search in the terminal, clearly, because it hasn't been built yet. But I thought that would really pop up.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And we're 5,000 people in. And I think that issue by far has the most upvotes. It has something like 120 upvotes.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
or 150 or something but you know it hasn't stopped a considerable amount of people from using it so that's what changed my view on let's just slip this post 1.0 it's an important thing to add but i think there's a huge number of people that'll still get value without it so it is something like you'll see in the 1.0 release blog post so i'm going to call it out directly because i don't want people to think i'm like trying to trying to make some some message about not supporting search we'll support it eventually but yeah
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
So yeah. So any Tmux user wouldn't, wouldn't notice because search doesn't work in any terminal with Tmux. Right. Yeah.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Waiting, waiting, waiting. There was a question, actually, on X that I saw that I was like, no one's actually ever asked, and I never thought about before they asked it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, yeah, yeah, yeah. And he made me think, and I was like, that is an interesting...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah. And I think it's a good question because it's not, we have talked about how NeoVim is good in Ghosty, but I think more generally, the question to me was like, what makes a terminal interesting that, you know, that you wouldn't really notice, I guess, until you actually used it. And I think that that's something that people don't realize a lot.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Because I think the biggest one is there's so many terminal.app users, like serious, very online developers that are using terminal.app. And it's funny to me because it's such a bad terminal. And just to be very concrete about that, it only supports, I think, 256 colors. There's so many people out there that don't realize that terminals for over a decade have supported 32-bit color.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And you don't realize it because all terminal programs, almost all terminal programs do such a good job of gracefully degrading and just realizing what environment they're in and working. And so if you only ever ran something like NeoVim in Terminal app, it obviously works great there. You would only ever see 256 colors.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And then you run something in Ghostly and suddenly you're like, wait, why does syntax highlighting look better or something like that? It's because, you know, you're using full like RGB with some transparency and things like start popping in. And so...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, I mean, I think that one of the things that that stands out immediately is because Ghostly supports modern like input protocols, for example, you could bind every key. And I think there's a ton of people I've talked to that don't realize you can't bind in every key, not because they haven't tried it, but because they tried it, it didn't work and decided, that's just how it is.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I'm never gonna do that again. But realizing it's just because most terminals are built on like a 50 year old input stack. But if you look at
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
kitty or go see um i think west term also supports it alacrity does not but um if you look at if you look at like those three for example then you can now bind things like backspace and escape could be separate before like when if you bound escape and you press backspace it would trigger escape now they could actually be distinguished and things like that and i think that that enables a lot more functionality and things like that so
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I guess my view is there's a lot of people out there I've talked to where it's just like, I'm happy in Terminal.app and I'm happy they're happy, but it's one of those things where I described it like a retina screen that Apple shipped. You don't realize how good it is until you use it. And I'm not even pitching Ghosty here. I'm pitching any modern terminal.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Just give it a shot because I don't think most people know what they're missing out on.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I think tmux requires extra config in order to take advantage of some of these modern things, which is... unfortunate because they are detectable, but yeah, that might be part of the reason too.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
That was definitely, I won't lie, part of implementing that feature was like the, I'll just say like marketing factor of it, just like the cool factor for sure. But, you know, really also was how many people came and said like, they must have that to use this terminal because... I term supports it. And I think I term is the only terminal that supports it.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yes, you can. And yeah, there's, there's actually a couple of beta testers. blows my mind that they are full-time professional software engineers and they exclusively use that as their terminal. They don't use, they have no floating windows. I'd love to watch them work. I did too, yeah. So they're coming from iTerm and they're like, I only have one terminal
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
and in ghosty language it's called the quick terminal it's like I only use the quick terminal so they're finding some really interesting bugs because it was like they're sort of getting fixed now but they're using it so heavily but I never imagined people would use it without another floating window which complicates like if you have three screens which screen does it float down from and things like that they're finding some good stuff and that's all going to get fixed before 1.0 but it's very interesting how diverse the user base is out there
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
How do I do it? Okay, well, one, if you don't want to bind a key, it's in the menu. So if you just want to see what it looked like, it's in the menu. Oh, really?
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, I've done that. It's in view, I think. Yeah, view quick terminal.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
that's not very practical as a way to use it it's more of a discovery mechanism do you still want to know the config to bind yes i do that's why i asked okay so key bind all one word k-e-i-b-i-n-d equals space or no space i don't care equals and then let's just bind it to something dumb let's just type the letter j colon yeah we'll bind it to j for now you could replace that later j colon and then toggle underscore quick underscore terminal
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
okay and then save it and then hit hit command comma that'll reload your config and then hit j almost a fat finger because my my oh wait the config opened up or something uh you might hit command shift comma i think i might have done that yeah oh yeah command shift comma is actually what you need okay command comma does open it yeah i was like what is this
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I'm surprised I forgot to mention that. Yeah, I am going to. age myself a bit here especially given my discord community but I remember the pre inspector days and specifically I remember when firebug launched firebug maybe yes yes and I was an active rails developer web developer when firebug launched and yeah overnight web development got so much better.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And I felt like you could do so much more because of the visibility it gave you. And the terminal inspector still has a long way to go to get there. But that's what I was thinking of when I built that was like, I want this to be a text platform where people could build applications. And to do that, you need good debuggers and debugging tools.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And I felt that with a terminal inspector, similar to fire, we need the firebug of terminals. And that truly was the motivation for that.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, it's cool. And I think it educates people more. I don't know if this will be true about terminals, but I suspect it will. Because with the Inspector, I've had non...
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
like non-developer friends find that feature in browsers and just like click around and they've sort of mentioned to me like oh i realized i could change the color of this thing and that's how that works and you know just sort of like some sort of education and i'm hoping that there's like terminal people users that aren't ever going to build a terminal application but will open that inspector and just kind of yeah you know mess around and be like oh that's probably how that works in a terminal and yeah
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
What will the URL be for Ghosty? It's going to be ghosty.org. Okay. I already have it, and that's what it'll be. To match the GitHub org is ghosty-org.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
If my greatest social good is getting people out of terminal.app, then I will die happy. Yeah. impact baby impact thank you very much yeah i'm happy to be back like i said i listened to that episode from 2012 and uh yeah so it's funny to be here what 13 years like a time capsule yeah it is how about is that it's cool i even sound i even sound my my my wife was listening as i had it playing and
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah. So what I like to say, especially for the 1.0 release, what I'm trying to do is build a terminal that is the best, what I call existing terminal. I'm not trying to innovate too much on what a terminal can do. I'm just trying to make what terminals historically have done a very, very good experience.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
She said I sound like a child and I was a child. So, yeah, maybe I'll look back in 13 years and say I'm now a child right now. But but you've grown up, man. Hopefully.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And the way I'm sort of carving out what makes Ghosty different for now and what, if any of these are important to you, I think you would find a lot of joy in using Ghosty is I'm trying to build something that's fast and cross-platform and fast.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
native and the ands in there are important because there's a lot of terminals out there that are fast or, or native or, or cross platform or, but there's, I felt that I couldn't find one that anded all three of those properties. And Ghosty does that, in my opinion. I mean, that's what I set out to do. And so it's fast. And when I say fast, I'm not trying to say it's the fastest.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Depending on the benchmark, sometimes it's the fastest. Sometimes it's number two. But importantly, it's very, very close to the fastest. And I don't think you could ever argue it's not fast to say that. Cross-platform, it works for launch. It'll work on Mac and Linux. And native on Mac, it's a native Mac application using Swift UI. The UI is written in Swift on Linux.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
There's no real definition of native, but it's a GTK based application. And it'll feel, you know, the way I describe it on Linux is if you use Alacrity or Kitty or West term or something, you'll immediately notice the difference between that and ghosty in terms of how it integrates with your desktop environment.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
That's a great question because actually when people say this terminal or that terminal is fast or slow, it actually really frustrates me because it's so complicated how you define that because fast doesn't mean anything if you just say fast, unless you're saying in every category possible, which no terminal is. And so, yeah, there's a few ways people tend to define fast.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
One of the ways is simply how fast it could read data. files, how fast text can go through your terminal. Some people say that's a useless metric. I think it's super important because tailing logs or accidentally catting a file is stuff we do all the time. And another one is something we call input latency.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Basically, when you press a letter on your keyboard, how long it takes for the photons to appear on the screen. Another one is sort of rendering speed. What frame rate can you maintain while you're, say, scrolling through a Vim file or something? And that's slightly different from the speed it can read. And there's a couple more, but there's so many different dimensions here to speed.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And we've tried to really be, like I said, not necessarily the best, but in the inarguable class of the best for every one of these categories.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah, there's, again, because there's so many dimensions to speed, there's also dimensions to how you do it. And one of the ways is being a native application, taking advantage of things that are hard to take advantage if you're not. So, for example, we spent a lot of time coming down to really the instruction level architecture of the program.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And if you're on a Mac computer, a new Apple Silicon Mac computer, we take advantage of literal ARM instructions that aren't available elsewhere to make things faster. Likewise on Intel, I'm talking mostly about SIMD work to make things read speeds and parsing speeds very fast. But from the rendering side, we use Metal directly on macOS. We use OpenGL on Linux.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
The Metal part is really important on macOS because there's very, very few terminals that use Metal. iTerm supports Metal, but disables it if you use ligatures, for example. I think that I don't, It's either number one or number two. I think Ghosty is the only terminal that has a pure metal renderer that also supports ligatures.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And that's just important because by using OpenGL on metal, there is an overhead because Apple does not natively support OpenGL. So what it's doing is translating that to metal. So there is an overhead. And you can actually notice that if you do renderer speeds between Alacrity and Ghosty, you get about a 10% frame rate.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
difference on the same workload with Ghosty under basic load, not even heavy load. And so those are just a couple examples of the things that we're looking into.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Right. I do want to put an asterisk on that though. It's the terminal as it is, but supporting all of the most modern features that have been created And I think that, you know, my bias, but Ghosty is the most feature rich in terms of terminal specifications that, you know, in terms of Kitty image protocol that Kitty defined and some other things that are all over.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
And we could talk about that later. But even though it's the best existing, I think we bring together all of the most modern things as well.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
Yeah. I mean, I think that's exactly right. That's the way I would look at it. The question I've asked people is when they're not using a terminal for something, especially if it's something that's very terminal-esque. So for example, the people I like talking to the most right now are people that use something like MacVim or NeoVim in a separate native application or something like that.
The Changelog: Software Development, Open Source
We ain't afraid of no Ghostty! (Interview)
I usually ask them, why aren't you using Vim in a terminal? What's they're so close, so why aren't you doing that? And even going further then, I will ask people that simply use VS Code or a total non-editor, I mean, anything, what draws you to using a graphical interface over a terminal one? And right now, that answer is really easy in a lot of cases.