Konsole is a fantastic and very mature terminal emulator, but it does have some real gaps that reveal its age.
The Qt toolkit that most KDE software is based on at some point introduced a next-gen toolkit-within-a-toolkit called Qt Quick, which most of our newer apps are written in. However, in its library form Konsole can only be embedded into apps that use the old gen toolkit. This is a real impediment to some efforts.
The old gen toolkit also typically doesn't use Vulkan or OpenGL for rendering (the new one supports both), and so Konsole's terminal renderer doesn't either. Konsole's real-world performance during use is arguably just fine, but it does leave a lot of performance and battery life on the table.
libghostty also has somewhat wider support for newer stuff like Kitty protocols, even though Konsole certainly trumps it in support for older stuff (like sixels).
There's some other shortcomings to Konsole that are not inherent to the technology, like accessibility support not quite being where it should be.
And while the default UI is, in most distros, OK, there sure is a lot of spiderwebs and spacebar heating lurking in the settings dialogs (of which there are strangely many). It's also a bit dated vs. our HIG at the moment.
Which is to say, these projects can and do have a point, especially if they provide a nice library instead of hoarding all the good to themselves.
1. By default, Konsole disables OSC8 link support. Users can enable it manually, but you need to ship fallbacks by default since otherwise the default users will have a broken experience. Ghostty, Kitty, WezTerm, etc all ship working OSC8 support out of the box.
2. No built-in Nerd Font support, so if you want to render icons, you need to tell your users to set up a patched font or else have fallbacks. Ghostty and WezTerm ship built-in Nerd Font fallbacks if your configured font isn't patched.
That being said Konsole is much better than most emulators. iTerm2 is not bad, although it lacks Symbols for Legacy Computing Unicode support (which all of the above have, including Konsole, and which is very useful for drawing prettier terminal UIs). The worst by far is Apple Terminal, truly the IE6 of terminal emulators.
> By default, Konsole disables OSC8 link support.
Is this for security reasons? I am sure the Konsole has a reason for it.1. The Kitty keyboard protocol, which makes it impossible to distinguish e.g. Shift-Enter from Enter
2. OSC8 hyperlinks
3. It breaks on APC queries, so you need special handling to not emit them
4. Symbols for Legacy Computing Unicode support
5. The Kitty Terminal Graphics Protocol (or sixel)
6. OSC 9 notifications (or any of the later versions)
and a bunch of other stuff, this is just off the top of my head. For a long time they didn't even support 24-bit color, although they fixed that in Tahoe.
It's totally fine for basic UNIX tooling, but pretty painful if you're trying to make nice interactive TUIs.
This sounds like a deliberate choice from Apple TBH because they, well, like their UIs and don't want to promote TUIs necessarily :)
The latter seems always to be about aesthetics, not about UX.
That is, in my opinion, the correct default.
This should be enough to avoid malicious links. I do not believe that completely disabling links is a good default, because they are very frequently useful when you read some text file in the terminal window.
Up until 5 hours ago this fix was not present:
> The displayed target is sanitized so invisible and line-breaking characters cannot conceal the effective destination.
https://github.com/ghostty-org/ghostty/security/advisories/G...
The sensible default is to have it turned off. And by the looks of it Ghostty versions before this you couldn't even turn it off.
If you don't want to be able to have clickable hyperlinks, by all means use Konsole — no one is forcing you to use Ghostty. But if you want to know why people like Ghostty's approach vs Konsole's, it's because Ghostty pushes terminal emulator features forward and is low latency. Konsole is low latency and adopts some but not all features that other people invent. It's a noticeable difference and so people who like the feature part of the former like Ghostty/WezTerm/Kitty more than Konsole. If you don't care or dislike that part, and want a more conservative terminal (that is also low latency), Konsole and many others further on the conservative spectrum exist.
I haven't used Konsole, but I do like this "recent" focus on terminals and have used many of the newer ones. Dailydrived st,alacritty,wezterm,ghostty,kitty,foot (probably forgot some) and I live for the regex pattern matching copy shortcuts etc.
I learned about OSC8 because my terminal (whichever it was) used one of its features and I didn't know it was possible to do that. My immediate thought was, how is the security?
And it is very disappointing to see how little effort people have spent on that. That is really one part that I expect more from modern incarnations of the old terminals where I can sort of forgive them for the lack of security posture.
I like ghostty, I really do. But this is not a good look, and to be clear it isn't just ghostty. Without looking for it I've stumbled upon several OSC8 and OSC52 bugs (in other software) recently.
If people want it enabled, they can enable it. It shouldn’t be the default.
Someone? Almost certainly
I wouldn’t mind OSC8 so much if it had proper security auditing but it doesn’t. The whole thing was pushed by one guy on a GitHub gist who blocked anyone who dared discuss security issues.
At least with browsers, you have masses of people testing these things. But there’s no rigour to any of the tests that happen with terminal emulation. Let alone independent security audits.
And at this rate, it’ll only be a matter of time until we see “don’t cat untrusted READMEs” advice because they might contain boobytrapped escape codes. Which is an absurdly bad place to end up.
2) Technical curiosity: some people probably started their own terminal project just for the fuck of having made their own - and they eventually gained a userbase.
3) Feature set: Most terminals implement most features these days, but at the time these projects started, you'd have a feature matrix between features and terminals because most terminals lacked some features; so people would pick whatever suited their needs.
Personally I've been using kitty for years mostly due to 3), at the time I chose my forever terminal, I evaluated like 12 different ones, and kitty was the only one that covered most of my needs without feeling like it suffers from random quirks, and I like that it has built-in terminal multiplexer (a'la tmux) and emoji picker.
Having having an industry player like hashimoto's superlogical driving terminal features is the extreme version of that
Can you please explain what this means? I have Ghostty installed just as a backup to use when I have terminal saturation in my default (MacOS Terminal). But other than being super responsive, I don’t know why people love it so. Perhaps I’m missing something large and compelling.
In terms of ghostty itself its just a highly competent use of libghostty, Mitchell’s message above about it being a tech demo is tongue and cheek, but its not far off from the truth. It is just a really solid no bells and whistles, bar excellent execution, terminal emulator that uses libghostty.
A lot of other terminal emulators can expose similar reusable things (alacritty comes to mind) but libghostty is the most well supported one
When looking at options I looked at speed and simplicity. Ghostty fit the bill but I did evaluate iterm as well. Excellent terminal but too many features for what I was looking for. I live in the terminal but am not a Terminal App power user if that makes sense.
So, it really comes down to what you want and what your workflow looks like. Ghostty has been flawless for me the past 9months. It gets out of the way and just works really well.
- in a running session text display would slow down intermittently. Like 2-3 words a second
- occasionally terminal would stop, some times in the middle of showing a response, and would need to restart the terminal to get it back. But I tailed the session logs and Claude code didn’t think anything was amiss. It was proceeding like normal
After switching to Ghostty these issues went away and has been rock solid since then.
EDIT: formatting
What is your justification for this statement? Why does it need to change, and what does it need to change to? Personally, I've not felt this (and I spend a lot of time in the terminal). Fish shell and Byobu give me everything I've ever wanted.
Like the poster you were replying to, I don't understand what these new terminal emulators bring to the table, other than potentially more resource usage.
I feel that there's something here that I'm missing (ghostty is clearly popular, so it must bring something both new and useful to the table), but I'm genuinely not sure what that is.
I have used Konsole for many years and I have used kitty for about 2 years in 2024/2025, then I have switched to ghostty around the beginning of 2026.
At least in my computers (with NVIDIA GPUs and Gentoo Linux), kitty was many times faster than Konsole and Ghostty even faster.
Moreover, in the now somewhat distant past when I was still using Konsole, it did not have some font rendering features that I desired, but that might have been solved meanwhile.
A reason why the terminal emulator speed is important for me is that I frequently compile big software projects and I find it unacceptable for a compilation to be slowed down by the low speed at which the compiler output is displayed on the terminal window, which happened frequently with all terminal emulators older than kitty and ghostty (I have always used CPUs with enough cores so that compilation itself is very fast, so the older terminal emulators become the bottleneck).
In Mac, we had the default terminal app which has some problems with TUI apps and other small issues. iTerm2 is the replacement that most users use, but it become too bloated with useless features and AI, while it was hard to keep a good config file that I could share between devices. Ghostty was a sane mid-term for me: a good and modern terminal, with a simple config file, maintained by someone that I trust (Mitchell Hashimoto) and only that.
About Linux: I don't use Ghostty in Linux because I'm comfortable with Konsole.
I like Ghostty because I find it both fast and configurable, and it's multi-platform without treating macOS like the red headed step child. I also appreciate how its configuration is text-based, which I prefer to someone's opinion of how a configuration GUI should behave, and I think it's good the developers aren't wasting a second of their time thinking about a configuration GUI.
Also the konsole context menu and default toolbar are a mess.
Ghostty is getting there though, and today is a milestone, not complaining too loudly.
Actually I think xterm was even more performant, but the eye sore wasn't worth it for me.
It wasn’t the only reason I switched, but I prefer config to be config and code to be code rather than my WezTerm config to be executable.
Cool! How fun, I'm a big fan of your work and will enjoy learning from this project too. (:
Namely it is wayland only, cpu rendered, and doesn't have any window decorations
I've just reverted back to using that as it's faster to load and has all the features I need.
To me the point of Konsole is that it works well, plus it's already there. Ghostty I need to make an effort to have it, however small it is, and I'm just trying to understand what I'd be missing if I didn't.
Surely you understand Konsole is not already there for most people?
> libghostty: a cross-platform, minimal dependency library that exposes a C API so feature-rich, correct, and fast terminal functionality can be embedded by any application anywhere.
Oh the author actually posted about it just now in rich detail. It's pretty exciting for people who spend much of their time in the terminal.
WezTerm can run on my Mac but give me a native GUI experience of a Wezterm session on my Linux workstation. It's like tmux, but with a native GUI experience including mouse click-drag selection that doesn't pick up "window" borders.
That alone is what is keeping me on Wezterm, since I get a native experience on some terminal sessions I access remotely on my macbook but then can switch to on my 30" screen when I'm at my desk.
Same boat here, though I also get to enjoy some of the benefits of libghostty, via ghostel in Emacs. Ghostel is noticeably faster when there's a lot of output being dumped, but I don't often need the speed and use it only because it's integrated rather well into the rest of my Emacs.
> tmux -CC integration
If you can stomach Emacs, there are at least two packages that implement this, one via eat and another via vterm, though none via ghostel just yet. Shouldn't be difficult to port, though.
I also hate configuring Konsole, most KDE apps for that matter. Being able to have a plaintext configuration file I can keep in my dotfiles is way simpler.
The acceleration is the primary point.
There was also some pretty noticeable differences in character rendering between the two with identical-as-I-could-make-them font settings.
I've tested a number of Terminal Emulators on macOS and Ghostty's rendering is always superior.
You should give 1.4 a try.
I feel like good tools should be invisible and Ghostty's lack of fully fledged Settings app is a feature, not a bug.
Just open it in Kakoune/NeoVim and change with a speed of thoughts. Never used any third-party Settings apps though.
Yeah, except the default config file doesn't EXIST and there is nothing but the reference docs to tell you what the hell you're supposed to put in there. What am I supposed to do, guess? Is it `font=` or `font-family` or `font-name`? That's fucking terrible. The very existence of a website like this: https://ghostty.zerebos.com proves the failure in my opinion.
Good tools should be invisible. Good tools behave the way I want them to. That's different than the way you want them to behave. Or appear. Good defaults are good. That is absolutely no excuse to abandon good UX for configurability.
I'm happy the defaults work for you. They don't for me.
And don't get me wrong, ghostty is a fine terminal and I don't begrudge it, and I think libghostty is awesome, it's just not the application for me.
A brand new ghostty config is an empty file because it only shows you what the overrides to the default config are, which means if you want to change your ANSI colors, off to the docs to look up what they're called as config keys and what format it expects as a value. Want to hide the Secure Keyboard Entry overlay? Off to the docs to figure out what the key is called. Is it a boolean? Does it accept true/false, or only 0/1? Who knows! Go to some website and scroll and scroll and scroll and maybe you can find it.
Or they can just put 'macos-secure-input-indication="true"' in a file it creates when it launches for the first time and notices it doesn't have a config file in an expected location. It can put that in there and every other default setting it actually is setting for itself, instead of just keeping it all socked away in the compiled executable as a behavior. Show me, on the computer I have, in the file I'm supposed to edit anyways, what all of the possible keys are, and some general indication or hint of what the fuck I can put in there. Don't make me fetch it for every single goddamn boolean. I wouldn't need to open a fucking web browser to hide the secure input icon because I'm not stupid and could infer it from the default config. Oh I bet it's the 'macos-secure-input-indication' key I need to set, lets flip that to false. There's a limit to this of course, not everything is going to be immediately clear, and for keybinds it might be a little preposterous to have all of the defaults listed, but for setting my themes? Colors? Fonts? Basic shit? Don't make me work, I have better things to do, but I need to be able to read my terminal.
The lie of "zero config" tools is that they are absolutely NOT zero config. They are usually full of changable behavior and they just skip the part where they make it easy for you to figure out how to change any of it, because...I dunno...configuring your software to work the way you want is...bad? Sounds stupid to me.
Xterm failed me :( Tabby just works.