11 ms·
<3 This has been a work of passion for the past two years of my life (off and on). I hope anyone who uses this can feel the love and care I put into this, and s
by mitchellh 2y ago
<3 This has been a work of passion for the past two years of my life (off and on). I hope anyone who uses this can feel the love and care I put into this, and subsequently the amazing private beta community (all ~5,000 strong!) that helped improve and polish this into a better release than I ever could alone.
Ghostty got a lot of hype (I cover this in my reflection below), but I want to make sure I call out that there is a good group of EXCELLENT terminals out there, and I'm not claiming Ghostty is strictly better than any of them. Ghostty has different design goals and tradeoffs and if it's right for you great, but if not, you have so many good choices.
Shout out to Kitty, WezTerm, Foot in particular. iTerm2 gets some hate for being relatively slow but nothing comes close to touching it in terms of feature count. Rio is a super cool newer terminal, too. The world of terminals is great.
I’ve posted a personal reflection here, which has a bit more history on why I started this, what’s next, and some of the takeaways from the past two years. https://mitchellh.com/writing/ghostty-1-0-reflection https://mitchellh.com/writing/ghostty-1-0-reflection
- jdmg94 2y agohow did you decided on building for arch and NixOS but not for red hat or debian?
- the_mitsuhiko 2y agoThanks so much for this. I really enjoy using it and I also refer to the source code quite a bit as I'm trying to get more familiar with Zig :)
- indigodaddy 2y agoLooks really awesome. I'm going to sound like I don't belong in the hipster terminal club, but the reason I shied away from some of the other terminals is the lack of tabs, which looks like yours has when I did a quick Google question/search. (if wezterm and the like have them, I must have missed it or it wasn't obviously apparent in the settings how to achieve them). I know everyone will say but tmux and/or native multiplexing bla, but I'm kind of old school and only do screen remotely if needed, and I just like a lot of terminal tabs in my workflow with a quick mod left/right arrow to navigate between (and if native multiplexing in Ghostty is simple and easy I'd probably do some of that too). Perhaps this is why I've never left iterm2.
- onli 2y agoWezterm does have tabs, and their related keyboard shortcuts are configurable. See https://wezfurlong.org/wezterm/config/lua/keyassignment/SpawnTab.html https://wezfurlong.org/wezterm/config/lua/keyassignment/Spaw... for a starting point in the config.
- indigodaddy 2y agoThanks!
- samatman 2y agoWezTerm has emulated tabs, not OS-native tabs. Some people will find that to be enough to suit their needs. Others will want 'real tabs'. For example, I can select a tab in Ghostty, pull it out into its own window, and then stick it into another window. This doesn't work in WezTerm, nor can you drag them around to rearrange them (keyboard shortcuts allow this however).
- nyclounge 2y agoSo is Ghostty a faster version of iTerm2 and it is Linux compatible?
- rererereferred 2y agoiTerm2 has way more features, more than I realistically use, but feels slower too.
- onli 2y agoI'm honestly not sure what a OS native tab is supposed to be, on Linux. And I do not see why "emulated tabs" of WezTerm couldn't just do the actions that you describe. The Firefox tabs do after all, and they do not look like they are built according to some (GTK?) tab standard (GTK.Notebook?). I'm pretty sure that X11 does not have native tabs, while some window manager do. Is there a linux standard I'm just not aware of that you are referencing here? Maybe it does not matter, the difference in functionality should count. Just highlighting that this messaging might not be understandable for linux users. I guess you are talking about some macOS thingie that's irrelevant to us.
- jbergstroem 2y agoI've been a beta tester from very early on. I came for the performance but stayed for the stability. I've only had a rare few crashes and all but one was a duplicate in the bug tracker. I thought I needed search but as Mitchell put it, not a 1.0 feature. Ripgrep was always the answer. Very happy to share the ghostty experience with the world!
- sionisrecur 2y agoSearch was the first thing I noticed it was lacking. I hope it can be added at some point, sometimes you can't just run a command again to grep it.
- mixmastamyk 2y agoGuessing y’all mean search of the scrollback buffers?
- 3r7j6qzi9jvnve 2y ago(probably, I was also looking for that)
- rainbowjelly 2y agoMitchell said it is planned in a recent interview on the Changelog podcast[1], just not in time for 1.0. [1]: https://changelog.com/podcast/622 https://changelog.com/podcast/622
- fn-mote 2y agoThe kitty method of piping the scroll back buffer to a pager is more general - it also seems like a quick fix to achieve this desired feature.
- sionisrecur 2y agoI noticed a keybinding for write_scrollback_file (defaults to super+shift+j) which does this. So you can use `grep something <super+shift+j>` to search for things. It's a nice workaround until search is implemented.
- levlaz 2y agoThank you for making this! I've been waiting to use it for quite some time. Really happy to take it for a spin.
- filmgirlcw 2y agoThank you for building this! I’ve loved using this over the last two months or so and really appreciate the work you’ve put into it. I’ve been a very happy iTerm2 user and support the dev on GitHub Sponsors (and I’ll continue to do that), but I love your commitment to making a fast, native app (and cross platform, no less) and really appreciate this very obvious labor of love that has also been really interesting to watch from afar as the development has progressed!
- cmgriffing 2y agoNo mention of Cool Retro Term!?!? Typical elitist behavior... /s I'm just having a bit of fun, but it is a fun terminal every once in a while. https://github.com/Swordfish90/cool-retro-term https://github.com/Swordfish90/cool-retro-term
- bioneuralnet 2y agoI LOVE Cool Retro Term! I mean, every once in a while. But if I’m sharing it in Zoom, I’m damn sure re-opening my tmux session in CRT.
- xrd 2y agoWow that's great
- SG- 2y agoyou can use glsl shaders with Ghostty including this CRT one to mimic what cool retro does https://github.com/m-ahdal/ghostty-shaders/blob/main/crt.glsl https://github.com/m-ahdal/ghostty-shaders/blob/main/crt.gls...
- cmgriffing 2y agoAwesome! Thanks! For anyone else curious about how to configure these, check out the docs: https://ghostty.org/docs/config/reference#custom-shader https://ghostty.org/docs/config/reference#custom-shader
- dsego 2y agoWill these work on MacOS or does it use metal for the mac version?
- cmgriffing 2y agoI'm using them on a new mac mini. Haven't tried on my older intel mac mini yet though.
- 2y ago
- cbushko 2y agoI think you've done an excellent job running the community for Ghostty and it is a prime example of how to do it right. From the Discord to Github repos you've been a class act all the way through and have pushed folks to be good, civil internet denizens. Much respect. If anyone cares to search through Github, they will see loads and loads of Issues and PRs created by Mitchell in many of the related Open Source projects that Ghostty uses/references. From zig to kitty to supporting libraries, Mitchell has been trying to get the terminal community working together and have some sort of standards. A lot of them are like "X does this, Y does that, why are you doing it this way? Can we all do it this way?" and then having Ghostty follow the most reasonable solution (or supporting several!).
- arghwhat 2y agoJust make sure not to get caught in the pitfall that is maximum render speed, which can lead to missing out on efficiency during slow and partial rendering. Missing damage tracking, always painting everything (even when the window is a full 4k monitor), etc. kills performance and input latency when dealing with realistic redraw workloads like text editing, blinking cursors and progress bars. Much too often to terminals worry only about the performance of `cat /dev/urandom`...
- _7tgr 2y agoRight, input latency is what matters for me. I'm not seeing whether they've measured that in the docs/on Github.
- CalebJohn 2y agoHe mentions input latency[1] as one of 4 aspects of being fast that were considered during development. I’m not aware of how that was tested, but would trust that it outperforms Iterm2 in that regard. [1] https://www.youtube.com/watch?v=cPaGkEesw20&t=3015s https://www.youtube.com/watch?v=cPaGkEesw20&t=3015s
- imron 2y ago> kills performance And battery. I gave up on alacritty because it was always using the dedicated graphics card of my MacBook and there was no reasonably way to use the integrated graphics card because it was “low performance”.
- mitchellh 2y ago- Ghostty does vsync by default and supports variable refresh rates (DisplayLink). If you're on battery and macOS wants to slow Ghostty down, it can and we respect it. - Ghostty picks your integrated GPU over dedicated/external - Ghostty sets non-focused rendering threads as QoS background to go onto E-cores - Ghostty slows down rendering significantly if the window is obscured completely (not visible) No idea if Alacritty does this, I'm not commenting about that. They might! I'm just talking from the Ghostty side.
- underdeserver 2y agoFor those interested, the link below from Mitchell's blog explains the different goals he's trying to reach, compared to other terminal emulators. https://mitchellh.com/writing/ghostty-is-coming https://mitchellh.com/writing/ghostty-is-coming
- gigatexal 2y agoShoutout to you sir for Shouting out the other terminals. It’d be easy for someone of your fame and talent and history to ride the hype to the GOAT of all terminals. But you stayed humble. Props.
- Fnoord 2y agoAlacritty on macOS and Linux user here (Windows Terminal on Windows due to easily different shells available, formerly used iTerm2 on macOS). I make up for lack of tabs with zellij locally (tmux remotely). Also allows me to relog or close/update Alacritty. I will give Ghostty a whirl but why no shout out to Alacritty? Which features am I missing out on?
- PcChip 2y agoI’m trying to figure out the same thing, sounds like just tabs?
- feketegy 2y agoGhostty's community is much nicer compared to Alacritty :)
- Fnoord 2y agoThanks. I'm interested in seeing examples (of Alacritty community not being nice). I'm aware of one now [1] but I have not been involved with the Alacritty community much. I read/write a few bug reports when the project was born; after that it has served me very well (compared to iTerm2 and Terminal.app). IIRC there was something with ligatures but I don't remember. Thus far I have not been able to get my italic bold font (Cartograph CF) working on Ghostty, but this is a minor issue. [1] https://news.ycombinator.com/item?id=42532762 https://news.ycombinator.com/item?id=42532762
- hitekker 2y agoOne issue I noted was when they advertised poorly implemented cross-platform support https://news.ycombinator.com/item?id=27079234 https://news.ycombinator.com/item?id=27079234 and then told Mac users to use other terminals. And then another where one of their maintainers had a meltdown and his fellow dev jumped in to protect him from... a bug report on the color green https://github.com/alacritty/alacritty/issues/1561 https://github.com/alacritty/alacritty/issues/1561 This was a few years ago so maybe they grew up since then.
- Nekorosu 2y agoIt's surprisingly convenient and works as I expect it to work all the time. Fantastic job!
- therealfiona 2y agoLooks cool man. Does it have a way to do tabs, and split terminal vertical and horizontal? Those are the only features keeping me on Terminator. I've tried Tmux, but it isn't the same, so please commenters, avoid from the suggestion.
- mitchellh 2y agoYes we have both as native UI elements.
- howon92 2y agoI'm a fan of your work! I'm curious about how you decided to work on building a terminal for your next project among your other ideas. If you have time later, could you share your main motivation with us or link to an existing post if you already mentioned it elsewhere?
- dbmnt 2y agohttps://mitchellh.com/writing/ghostty-is-coming https://mitchellh.com/writing/ghostty-is-coming
- timvdalen 2y agoEnjoyed hearing about this on The Changelog recently!
- slimsag 2y agoCongrats Mitchell! It has been really cool to see Ghostty progress as a project, and I've enjoyed having it as my daily driver these past few years :)
- hnlmorg 2y ago> Ghostty has different design goals and tradeoffs and if it's right for you great, but if not, you have so many good choices. I was looking on the website to try and understand this more but couldn’t find any information. Perhaps I missed it?
- mitchellh 2y agohttps://ghostty.org/docs/about https://ghostty.org/docs/about
- reissbaker 2y agoJust built this from source on Fedora and I have to say the experience even for building-from-source is flawless. Immediately replaced Kitty for me; it feels smoother and faster. Amazing work.
- glitchc 2y agoThank you for making this. Does it support quake mode? It's hard to tell looking at the docs.
- worldmerge 2y agoJust downloaded it because of the animation on the site. How did you make that? it's cute. The terminal is good. I don't have any issues with the stock mac os terminal app but I'll give yours a go for a bit. I can't tell exactly how, but it does feel faster - I'm not sure exactly how it is but it looks like it renders text faster.
- commandersaki 2y agoStock Terminal.app doesn’t do 256 or 24-bit colour, that’s really the big thing that drew me to ghostty.
- lenkite 2y agoIf the stock Terminal was updated to support nerd fonts, extra colors and horizontal/vertical panes - then would switch back to it in a jiffy.
- pfg_ 2y agoLower inout latency can make something feel faster. I haven't measured it but it's possible that's why with ghostty
- samgranieri 2y agoThank you for all the hard work you’ve done and for sharing your passion project with us.
- verandaguy 2y agoI haven't heard of Ghostty before today. I'm reading the docs; but what are the main selling points? Personally, I've used Terminal.app (for a bit), iTerm (for a long while), Konsole (in the past, on Linux) and more recently I standardized on Alacritty (macOS) and Kitty (Linux). GPU acceleration puts it in the same general bin as my current toolchain, but your comment alludes to it pulling in some concepts from iTerm, possibly -- is that the case?
- mitchellh 2y agohttps://ghostty.org/docs/about https://ghostty.org/docs/about
- verandaguy 2y agoThank you!
- redserk 2y agoYou've saved me an immeasurable amount of time and sanity over the last few years with the tools you've been building, and simply put: thank you. I'm extremely excited to give Ghostty a whirl.
- KolenCh 2y agoLooks great. Switching from wezterm and kitty before that, and the native feel on macOS is indeed better than those emulated tabs. Also it is really quite zero config where to me it seems only one line of color theme is needed, together with setting TERM for ssh. (Default font happens to be mine.) Bundling so much color theme felt a bit waste of space, but it is nice that I don’t need to define them myself which also makes switching theme tedious. I also love to see it lands at 1.0 where features, documentation, and promotional materials seem polished already. Chances are, it will become my default terminal in 2025! The only nitpicking is the doc does not seem to have a search function. It would be great if I can search color or ssh and find the relevant page address that immediately, without navigating the tree or relying on external search engines.
- brandoniscool 2y agothis guy is a billionaire guys...
- tylerchilds 2y agosuper cool! kitty has been my default for a few years now— highly superficial, but my designer side landed on kitty as it was one of the few that supports ligatures by default, specifically for the fira code font for my bias. does ghostty support ligatures?
- pfg_ 2y agonot only does it support them, but the default font provides them. although it splits the ligature in half if your cursor is in the middle of it which feels a little weird to me
- freeCandy 2y agolooks like it does! https://ghostty.org/docs/config/reference#font-feature https://ghostty.org/docs/config/reference#font-feature
- gigatexal 2y agoHow do you plan on sustaining the project? Do you have enough committers so you’ll not burn out? Will you need support? Is there a way to donate? I guess what I’m getting at is what is the long term sustainability work around this?
- tessierashpool9 2y agowhat was the motivation to start this project? it got so many points here, hence I assume there must be something really useful about it - but I so far fail to see it.
- sambeau 2y agoI love this page in your docs: https://ghostty.org/docs/about https://ghostty.org/docs/about Clear, friendly, modest, respectful and with the right balance of detail vs overview. Congratulations on your launch.
- balou23 2y agoI'm not sure why they couldn't put that on the front page. Or at least on the front page of the documentation. As it stands now, the front page is pretty useless if you never heard of ghostty. It's a ghost in a terminal? And there's tty in the name.... so is it a program to show ghosts in your terminal?
- Daneel_ 2y agoI'd never heard of it before today, so yeah, my first thought was exactly what you postulated. "Cool? Maybe it's a tool for generating animations in the terminal?" *edit - oh, no Windows support for now (my hands are tied at work).
- cruffle_duffle 2y agoOn mobile I thought this thing was some ascii art game for a hot minute before I tried clicking on the download link. Seems silly to admit that but there you have it.
- frereubu 2y agoAbsolutely agree, even if it was just the tagline on the first page of the documentation - "Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration." - underneath the "screenshot" and above the buttons on the homepage.
- Emigre_ 2y agoI've been looking forward to it for a while, I'm really happy about this. Thanks for your work on this project.
- mtlmtlmtlmtl 2y agoCongrats on your 1.0 release! Building a term from scratch is no small task. And it looks like after 2 years you already have something I'm seriously considering switching to. That's seriously impressive. And though I'm mostly a Linux supremacist, I genuinely appreciate and respect your dedication to providing native applications on all major platforms. I see too many projects do one of two things: only support one platform at first, with some vague promise of doing others in the future left unfulfilled for years. Or going the easy route of using electron or some other cross-platform toolkit, getting cross-platform support at the cost of a significantly worse experience. There is no substitute for doing the extra work, at the end of the day, and you're already well on your way there at such an early point. Again, I'm impressed! Now, the one thing I've coveted for years is a linux term with tmux control mode support, ever since I used iterm2 during my short tenure as a Mac user. I can see from your github issues that this is in the works(https://github.com/ghostty-org/ghostty/issues/1935 https://github.com/ghostty-org/ghostty/issues/1935), which is great. It looks like a lot of the necessary UI elements are already in place, as well as partial support for the control mode protocol. Do you have any idea how far off this is from being completed? I don't wanna make demands or anything, I know this is a passion project with lots of things still to work on. As far as I know(and I look around quite often) control mode support is still something no existing term for linux supports. Being the first could drive a lot of adoption! I'd also like to offer my help in pushing it over the goal line. I haven't touched Zig, but I'm a polyglot with plenty C experience and Im highly motivated to bring this feature to my Linux systems. Some guidance on things I might do to help would be welcome. The final 3 points of the checklist don't have much detail provided. Again, no pressure, thanks for all your amazing work, and good luck with continued development!
- pzmarzly 2y agoThis. To add some words why this is important: Given the remote-first container-based world we're heading towards, decoupling UI (terminal emulator) from its "backend" (tmux, code-server) is a great design decision, which I think will ultimately define what the "next generation" of terminal emulators is. Imagine being able to open tabs directly on remote host, reconnect without losing state, etc, all while using native UI (so Cmd+T to open new tab, Cmd+F to search, etc). Productivity game changer, which currently only the iTerm2 users can fully enjoy. Ptyxis (putting its backend in running containers), WezTerm (native handling of ssh sessions) and VSCode's terminal (starting a proprietary code-server binary and connecting to its TCP port) have reached some of this functionality, but in their design they need some out-of-band mechanisms to handle the connections, ultimately limiting the scenarios they can handle. Meanwhile tmux -CC [0] and ht [1] are sending both their control channel and data channel over the opened terminal itself (in-band), making them flexible enough to support any configuration. Something complex like `ssh jumpbox -- ssh prod -- podman exec -it prod /bin/bash -- tmux -CC` should just work, as if everything was running on your local machine. [0] https://github.com/tmux/tmux/wiki/Control-Mode https://github.com/tmux/tmux/wiki/Control-Mode [1] https://github.com/andyk/ht https://github.com/andyk/ht
- jmorenoamor 2y agoTerminals are always welcome :) I hope you can add Win supoort so I can try it at work. Congrats for the release and happy new year.
- blondin 2y agothank you and the community for the work. i hope to see blocks (not sure if this is a shell thing or a terminal thing) the same way warp does it :)
- ksec 2y agoCongratulations. On the cross-platform library, I wonder why "libGhostty" and not libTerminal. Which seems like a more appropriate in term of library?
- jez 2y agoCalling it libTerminal might be confusing. There are other terminal emulation libraries—for example libvterm[1], notably used to power the embedded terminal in Neovim.[2] [1] https://www.leonerd.org.uk/code/libvterm/ https://www.leonerd.org.uk/code/libvterm/ [2] https://neovim.io/doc/user/terminal.html https://neovim.io/doc/user/terminal.html
- mahdihabibi 2y agoHow you've managed to communicate effectively with so many people who were using the beta version to craft the final release is beyond me! I downloaded it last night, wrote one line of theme configuration (I picked the batman theme). and For me it just works fine and faster than any other terminal emulator I've ever worked with. Also great with 'less' and 'tmux'. I just switched to 'Ghostty'! so thank you.