The shader support offers a hook to trigger on the bell character, so of course I had to hook this up to a screenshake shader. Get fish to emit a bell on a nonzero command exit, and I have screenshake on failed commands. I expected this to be really annoying but it's actually kindof great:
That's one of the reasons I avoid Kitty. Calibre's backend is powerful, frontend is a boiling oil level of a hot mess. At some point many years ago I tried looking into the code to maybe separate out the parts I was interested in and had to abort on the first source code page.
Apart from that, Kovid avoids providing proper packaging except for self-extracting installers and tends to create new "standards" like Calibre's web server instead of ODPS and in Kitty's case the whole annoying lot of Kitty-derived and Kitty-standardized features every terminal emulator is now supposed to support, which also break existing compatibility -- with the usual "you are holding it wrong" arguments when someone points it out.
In my opinion, Kovid is the original vibecoder -- extremely productive, extremely functional, extremely successful but despite the code (and UX) quality, not because of it (to be fair, I haven't looked into Kitty's code). I'm glad it works for him, I just wish I could use his products without getting aneurysms while wrapping my head around them.
> and in Kitty's case the whole annoying lot of Kitty-derived and Kitty-standardized features every terminal emulator is now supposed to support, which also break existing compatibility -- with the usual "you are holding it wrong" arguments when someone points it out.
What an odd complaint; it's not like he's going about to other projects forcing them to add them. I suspect the reason some of Kitty's standardized features are being independently adopted by other terminal emulators is because they are genuinely useful.
Wow. It works for him and it works for me. I'm forever grateful for what he's done and I feel this bashing is totally undeserved. Kitty and Calibre are two of my favorite software thingies ever.
Have to agree - Calibre is amazing and powerful software, and also incredibly obtuse to actually use. This has always been a massive shame.
As for kitty, it seems some of its new standards have unlocked actually useful features, especially in AI's terminal-powered era. But creating new standards and breaking compatibility ought to be avoided unless necessary.
The first time I used Calibre it was such a bad experience I thought it was a joke software. Can’t say I’ve consciously used or wanted to use a single kitty feature, either.
The bar is pretty low for some basic UX, and these two projects consistently fall under. But to each their own.
What does that even mean. It is design produced by the user and maker of the app. If you hire a designer that's neither, doesn't that actually make them the outsider?
He's not making a traditional art form as someone who's untrained. He's designing Calibre, and he's the most qualified person in the world in doing that.
Outsider design? It means it’s designed by someone self-taught or not classically trained in the subject. It’s neither insult nor praise, it’s a classification, though often used as a way to express something as being unconventional and interesting.
> It is design produced by the user and maker of the app. If you hire a designer that's neither, doesn't that actually make them the outsider?
No, because it refers to “outside the world of design” not “outside the world of this product”. It’s two words but a single term.
> He's not making a traditional art form as someone who's untrained.
Your parent comment didn’t claim they were making art. But they are designing the app are are clearly untrained in design. Again, that’s not an insult. How many of us here are self-taught programmers?
> He's designing Calibre, and he's the most qualified person in the world in doing that.
That doesn’t necessarily follow. If that were the case there would be no designers, everyone would just do their thing. The point of learning design is to understand what works and why and how to apply it. It is perfectly valid for you to have a vision of what you want the thing to do but to need help in presenting it more effectively.
Outsider art, outsider music refer to art, and even in those practices a lot of celebrated artists are the ones that eschew the established norms.
But design is functional. Grows organically by needs of the user. If so many people swear by Calibre, it is well designed for calibre’s use case. It is not only about the aesthetic design trends. They don’t need to apply a coat of liquid glass and modern icon treatment to make it well designed. Software like Calibre are a toolbox full of screwdrivers and random things that are not in the same color hue and size and rounded corner treatment. You open the toolbox and immediately know what you need to reach for and where, get the job done and close it.
This appeal to authority is why we end up with everything looking like Juicero of software. Shiny, the same components and pricing plan as
everything else. But absolutely soulless and often user hostile.
> Outsider art, outsider music refer to art, and even in those practices a lot of celebrated artists are the ones that eschew the established norms.
I don't think many of those artists were celebrated during their lifetime, or at least not until the their form became more widely accepted in the mainstream.
> Outsider art, outsider music refer to art, and even in those practices a lot of celebrated artists are the ones that eschew the established norms.
Which is what I said, in different words. If you understood the term, why did you ask what it meant?
> If so many people swear by Calibre
There’s no true alternative. A lot of people use Calibre despite how it looks, because it does all the things. The world of messing with ebooks outside the vetted stores isn’t that big.
> It is not only about the aesthetic design trends.
I didn’t even so much as hint that. Please don’t straw man.
> They don’t need to apply a coat of liquid glass and modern icon treatment to make it well designed.
Again, didn’t even so much as suggested that. I personally dislike Liquid Glass.
> toolbox
Again, there’s nothing wrong with being a toolbox nor have I claimed there is.
> This appeal to authority
There was no appeal to authority. You paid no attention to words in the comment, you fabricated an argument in your head and are fighting that.
Fucking hell, HN is tiring. Stop being so angry all the time, we’re not on opposing teams. Not every comment is a criticism or disagreement for you to rally against.
Calibre is great and I’m happy it exists. I recommend it to people despite not using it myself (I make my own tools). When I used it I found it to be very ugly and at times confusing and found it could benefit from applying some basic well-understood and researched design principles. But that’s all my opinion. You’re welcome to have yours, I don’t care, use whatever you like. Just please don’t mischaracterise my words and don’t come all angry and citing misapplied fallacies at me. I didn’t do that to you and would appreciate the same courtesy. Don’t stoke hate.
Sorry I made you feel like this. There are no shortage of “Calibre but well designed” tools, as long as Calibre has existed. I am just tired of hearing Calibre and other open source apps are badly designed as if that is an objective fact. So I ranted against a general sentiment rather than your arguments in particular and I did not mean to put words in your mouth or offend.
However, when can we accept a design stands the test of time and maybe it is in fact well designed? So many objects that are considered well designed today look that way because they got refined over the time and designed through their goals and constraints. Only in retrospect we call those well designed because they were original and not designed by committee. Can you give benefit of the doubt that maybe Gimp’s, Emacs’ and Calibre’s of the world might be in that category?
Lots of people. It’s great that you don’t, really, but Calibre is very ugly¹ and I have no doubt that limits its adoption. Subconsciously, people associate ugly apps with unpolished or unfinished apps.
I don’t use Calibre (I rely instead on command-line and bespoke tools) but I do recommend it to less technical people and I always make it a point of saying “it’s very ugly but it does everything and does it correctly, it’s the gold standard for what you want to do” because I’m pretty sure if I didn’t add that disclaimer the people I recommend it to would think they downloaded the wrong thing or abandon it as soon they opened it.
¹ That’s just personal opinion, we don’t need to have a debate about that. If you find Calibre beautiful, more power to you.
> “I manage my Kindle reading list with home-made command line tools” is a very niche situation.
I don’t use a Kindle (it’s a Kobo, those are very hackable) and don’t use my tools to manage the reading list, I prefer to do that on device. But sure, I’m not claiming it’s for everyone, there’s a reason I recommend Calibre to other people. My needs are fairly minor, I don’t even use any of the popular alternative interfaces like KOReader.
> I’m impressed but also… that’s a lot of effort.
Not that much effort, and the tools have evolved as my habits did. I’ll give you one simple example of such a tool: I can select an EPUB and press a keyboard shortcut which actions it in Alfred to first convert it to to a Kobo EPUB with kepubify and then upload to Dropbox with rclone. I can then download it from the Kobo manually.
I had another which would take the URL of the frontmost browser tab, download and convert it to EPUB with pandoc, then it’d reuse the same kepubify and rclone steps. That one doesn’t work that well nowadays, with all the websites getting harder to access programatically due to all the LLM scraping.
Neither of those needs a lot of code, and I’m still relying on other tools for the heavy lifting. It’s just that for my specific personal needs, this is faster and more convenient than using Calibre.
When I first used Calibre I thought it was a disorganised mess trying to cram too many features in one app.
Over time I learned to appreciate the vision: it’s not the stereotypical modern streamlined app, it’s the cockpit of a spaceship. It’s AutoCAD for ebooks. I really enjoy that application now, I haven’t even scratched the surface of its featureset.
I heard the author gets very defensive of his design choices: good, I wish we had more opinionated app developers in FOSS.
I like it. I bet a designer would put lots of space around each box and hide stuff under menus and tabs, thus making the full range of options much harder to get at a glance. Like breaking up your giant function into hundreds of tiny functions. Some people prefer to just see everything at once and I think it’s a valid way to do it.
> I bet a designer would put lots of space around each box and hide stuff under menus and tabs
A designer might indeed add more space but not necessarily hide stuff. Design works within constraints, and if the constraint is everything should be visible, then it needs to work like that.
That interface would benefit from more space in areas. Note for example how the descenders of letters (look for “g” or “y”) bleed into the bottom shadow (the “side”) of the buttons. It’s definitely tight. It gets worse with the bold areas. On the top right you seem to have buttons, labels, and a text field, all using the exact same font at the exact same size, all in bold and with no spacing between them. It makes it harder to focus on information, and everything is so close together that you’ll either have misclicks or be slower as you put the cursor in just the right place.
Sure, have that interface for the hardcore users, including those who are going to use the keyboard to interact with every part of that, but it’s not a failing to add more space, and menus aren’t always wrong.
People love making fun of designers, but it’s the toupée fallacy, you notice it when it’s bad. There’s a reason “good design is invisible” is a maxim. Like on every field, there are good designers and bad designers.
At least there are menus, I guess. Some power user tools (eg: vim) don't give much in the way of discoverability. You either internalize a significant amount of knowledge and behaviour, or you hate it and move on.
I like and appreciate both, though I grew up as a Windows power user, and hated vi/vim for many years when I got into *nix. It wasn’t until I saw my boss teleport a block of code elsewhere in a file with a few keystrokes that I decided I needed to learn it.
IMO, Foobar2000 [0] was/is the zenith of bespoke GUI programs from that era. The UI is clean, the menus make sense, it’s infinitely configurable but the defaults are fine, it supports plugins…
I don't see why people are complaining about the UI. The calibre codebase is just Python and you can vibe code/customize a nicer UI for it in minutes. It's not like the core changes much. Their metadata resolution and Epub handling and (formerly DRM cracking) are best in class.
Vibe-coded or not, I prefer staying close to upstream unless I have very good reasons not to, and I would not want to have to half-heartedly maintain a UI fork of this. I would still be quite excited about an official visual overhaul, though
Can we please stop with the suggesting vibe coding for everything? It’s not an interesting response: it doesn’t advance the discussion and no one learns anything. The goal of this website is (ostensibly) intellectual curiosity, and suggesting AI as a solution to every problem is basically a thought-terminating cliché.
I agree, but I think the sentiment is "it's opensource, if you don't like it, change it." Saying "just vibe-code it" is just a reaction to the response people would have given to the first statement in past times, which was to complain about the barrier to entry.
Would you be mad at somebody for suggesting “Cmd+=“ in response to a complaint about a website font being too small? It’s becoming nearly that easy to fix.
I’m not mad and I would appreciate if we stopped assuming combativeness from the start. That too is detrimental to discussion and intellectual curiosity, and there’s too much of it on HN. I was polite and courteous while making a comment asking for a change in behaviour. Not every disagreement needs to be a fight.
Moving on, that example is different because not only is that solution specific to the problem and teaches you something, it’s also not as pervasive. Suggesting a keyboard shortcut to change text size is like teaching you how to hammer a nail, while telling you to vibe code is like telling you to hire a carpenter. Sure, you can hire a carpenter for your problem, but everyone already knows that is an option and it’s too general. It’s not a solution to the problem, it’s a suggestion of an approach and doesn’t even have a helpful guiding direction. Again: not interesting, doesn’t advance the discussion, and no one learns anything.
> but everyone already knows that is an option and it’s too general
There are cases where it's not only an obvious option, but also the only viable one e.g. suggesting to someone they should hire a lawyer: the advice there isn't just that they have this option, but that this is the only viable option, and that otherwise taking legal advise from a forum is dangerous; IANAL-YANAL-GAL!
programmers are overwhelmingly the type of people to solve problems whenever someone complains about something.
I don't see you berating people for complaining, after all if the purpose of this website is intellectual curiosity then comments complaining aren't in line with the purpose right?
> programmers are overwhelmingly the type of people to solve problems, whenever someone complains about something.
No one complained about anything, read the parent comment to the comment I replied to. The comment I replied to just suggested vibe coding out of nowhere.
> berating people
Come on, let’s please not be ridiculous. My comment was as polite as can be while presenting a disagreeing opinion. You don’t need to fake outrage, there’s enough of that in the world already and it’s a major reason why everything is turning to shit.
> after all if the purpose of this website is intellectual curiosity then comments complaining aren't in line with the purpose right?
Oof, HN is so tiring. More and more it proves right everyone who calls this “the orange site”. Look, you’re probably not a dumb person, there’s no need to play one and make arguments in bad faith. This is not hard to understand:
If there is something detrimental which you perceive as being done in excess, you should call it out and ask the person to stop, even if you have to go outside the norms a bit, for the greater good of the community. If you are, for example, in a renaissance fair and a couple of guys are being disruptive, it’s absolutely fine to break character to get them to stop; you don’t have to do it while pretending to be a medieval peasant, and it’s idiotic to suggest that would have to be the case.
It’s supremely stupid and frankly embarrassing for this community that I have to point this out as if we’re children. Don’t be Mr Gotcha, he’s not smart and no one likes him.
> If there is something detrimental which you perceive as being done in excess, you should call it out and ask the person to stop
that's exactly what i'm doing. there's so many people on here complaining about LLMs in general, I perceived your comment in that same class and thought that it too wasn't adding anything to the discussion. The suggestion to use LLMs is, I think, useful. People might not have thought of it, might not know what the underlying code of calibre is and how easy it would be to modify with an LLM.
I view suggestions, even if rote or obvious, more useful than negative comments like yours.
Suggestions can go either way. "Use an LLM." and "Don't use an LLM." are in the same class of comment. It's quite biased to treat one as a negative comment and the other as a suggestion.
I've run each multiple times and the results are similar...the new version seems to have higher throughput and yet takes longer to finish the tasks? Like, a lot longer?
I really love Kitty, it took me only about 5 minutes to migrate from Ghostty.
just wish the used this icon as default: https://github.com/DinkDonk/kitty-icon
Not OP either but I moved back to kitty after giving ghostty a try. Kitty is pretty mature and it has tons of features. I don't use them all by any means, but enough that I missed them. It has all those features yet it feels so barebones: kitty is a delight.
Also not OP but Ghostty to my knowledge doesn't support predefined layouts, so that was my reason. I tried zellij, which is awesome, but Kitty turned out to be much easier to set up and ultimately use.
Nothing against Ghostty, and in particular I really like the idea of libghostty, but a pretty significant part of its release notes is about how it's becoming more compatible with Kitty.
If you don't care about native UI widgets (I and many others only use the terminal part of the UI, so I don't) I don't really see a reason to use Ghostty over Kitty.
Yes actually. Ctrl+Alt+b opens a new browser window quickly and I go somewhere. I have it faster in muscle memory than switching to browser and ctrl+t and then opening whatever.
Same with terminal. My terminals (xfce4-terminal or kitty -1) both open so instantly that I can ctrl+alt+t and even while typing at high speeds, the next character is entered into the terminal.
I can type the below sequence of keys at high speed (realistic example that OCRs clipboard image):
ctrl+alt+t vpng | ocr | ctxt alt+tab
without risking the startup time swallowing my `vp` keys
And yes, I disable animations for any kind of window switching mechanism including alt-tab/worksapce switch
At any rate, I believe ghostty has the same single instance mode equivalent.
I'd say 100-200 ms is not horrendous but it can be much better without giving up on libghostty-vt :) check out Monstar.
Now, Monstar has a bizarre issue (at least in my setup) where it displays blank instead of capital A when used with Fixedsys Excelsior, for some reason. But hey it starts in under 10ms.
I have been using Kitty for a while now because I heard it's fast and one of the cool terminals, but other than working without issue (which is good, of course), I really don't perceive any difference than if I had continued to use the Gnome terminal.
Terminal ricing is really a thing I will never understand, unfortunately. It's good and it works, but I wouldn't miss it if I had to use a less hyped terminal.
The biggest thing for me is keypress latency. Most other terminals have a slight delay between keypress and response. When I’m doing things like a bunch of quick commands in nvim, it can be enough to distract me.
Kitty is about instant, same with the default macOS Terminal.app. But kitty supports a few more features that I use heavily like nerd fonts, and just has better text rendering overall.
Yeah it’s not like I couldn’t work in another terminal, but my goodness it’s nice to have a tool that I use all day be as snappy and responsive as kitty
I love Kitty. I've used it since discovering it in about 2019 and it strikes the right balance of things.
It's easy to customise, super fast, light on resources, available in my distro's package manager and while the author might be a bit prickly at times, he does a fantastic job leading the project and keeping things focused.
I'll give the new shaders a try but the animated cursor is probably busy enough for me already.
When I used Kitty, I hacked in a shader that'd render a crude glow around the letters so that I could use more translucent backgrounds and still have readable text. I have no idea where that code is - I haven't used Kitty for years. But that's the kind of thing that'd be great to do with the shader support.
I use multiple terminals. I like Ghostty and Kitty. I the past I tried multiple others like Guake, Allacritty, xterm, Gnome Terminal, ITerm (when I was forced to use a Mac), Windows Terminal (I am now forced to work on Windows).
And of all terminals I still prefer Kitty. There is one feature Kitty has that no other has (or not yet) and that is the 'open last execution log' (ctrl + shift + g). It's a lifesaver.
> 'open last execution log' (ctrl + shift + g). It's a lifesaver.
When do you use this? (guessing, when you run something that crashes the terminal?)
Possibly related: I use ctrl+shift+h (and somehow configured it to use neovim), which is a nice way to navigate the terminal history - useful when pilfering through thousands of lines of local server logs
When running a script in the terminal but it fails and it's a huge output and the script was a hack and it only outputs to standard out than a 'ctrl + shift + g' opens the last output of a command in less so I can analyze it's content.
I've been a Kitty user for many years, but I bet that Superlogical's Rex is going to take over the world. Currently there is no Linux client available, but I'm sure it'll come later just like how Ghostty was developed macOS first.
Whoa, this is great news!! For years, it has been Mr. Goyal’s standpoint, and quite understandably so, to not offer this natively due to implementation effort [0]. I just put up with that (yes, technically, you could save-and-restore window and terminal session states, but that doesn’t help in case of an unexpected quitting/crash event), since the man is already undervalued for all of his incredible work – I urge any user of either Kitty or Calibre to check out [1]!
Same as for you, Kitty has effectively been the only terminal I use for years now, chiefly due to `edit-in-kitty` when ssh’d onto another machine, as well as the image protocol for a full file explorer experience, e.g. Yazi [2]. I’m also in the Rex beta, but until they add that, or an improved version of the protocol (as apparently streaming of too much image data is holding their protocol/performance back at the moment) I unfortunately can’t see myself switching, even though in principle I very much agree with this sentiment:
> I bet that Superlogical's Rex is going to take over the world.
If you mean the `alias ssh="kitty +kitten ssh"` then no, it's not fixed at all.
For example pikvm exists with read-only mounted filesystem. Having to dive into the details to figure out that the issue is kitty trying to write a file to make some obscure terminal features work doesn't strike me as good design.
`alias ssh="TERM=xterm-256color ssh"` fixes it but isn't mentioned in the docs.
Doesn't sound like it would work if connecting to a locked down server. However, the problem OP described is easily solved, for ghostty and kitty, by a single line in your local ssh config.
I believe I got rid of most of the issues with some .ssh setting which simply uses the normal xterm I believe. I can't check right at this moment, but apparently, simply using xterm and not the xterm-xkitty or what it's called does not actually make much problems when ssh-ing into a machine - not in my case at least.
It was a setting in some ~/.ssh config file though I believe, not a kitty setting.
I'm hooked on Guake/Yakuake style terminals that come down from the top of the screen like a window-shade. I can get to my terminal from any desktop and hide it when I need to get back to the gui.
I really wish I'd sit down and vibe-code is an empty window-shade that lets me plug in any terminal I choose so that I could experiment with innovative terminals like this.
Can someone give me a use case of where terminal shaders are providing functionality, rather than eye candy? I mean I love my retro crt look, but there has to be a better reason to have shaders on a term
I use a cursor following shader. It is subtle, but i feel like it draws your eye to where ever the input cursor lands. I train users on a tui application, and it seems to help them as well.
I don't think it's accurate to characterize this as Kitty "taking rendering shortcuts." Is this what you're referring to?
> Similarly, some monospaced font families are buggy and have bold or italic faces that have characters wider than the width of the normal face, these will also result in clipping. Such issues should be reported to the font developer. Monospaced font families must have all their characters rendered within a fixed width across all faces of the font, otherwise they aren't really monospaced.
I'm not familiar with the legal technicalities around Unicode and fonts to say whether it is the fonts' fault or kitty's fault, but as a user, I see bad rendering (some icon glyphs rendered too small) in kitty but not in ghostty for icon fonts that I don't think are all that obscure.
To the point that Ghosty and all other new terms are just catching up with kitty. Ghosty is celebware and will likely die away once the author loses interest, despite the flame.
A significant differenciator is the dev/maintainer I'd say. No, really, hear me out :) I'd start with: this goes for almost any FOSS tool, not just this. Not saying one is good, one is not – but user choices, user feedback, interactions, deisgn goals/choices get affected (and sometimes influence) a lot based on how a dev/maintainer looks at their product and humans who use, or would use, their product – or contribute for that matter.
UI-wise, I kinda like Ghostty more. It feels slightly more polished. However, I've moved to Kitty mainly because of its native session support. The only way to have sessions in Ghostty is through a multiplexer, which I'm not a fan of anymore.
I haven't try Ghostty, but what I like about kitty is that it's performant, easy to customize (often it's just one line to add and you get that new feature you want), I like their defaults for tabs, layouts. It's not overwhelming but not too minimal either. I just find it's a sweet spot. I also somehow like the personality of the maintainer which seem to have a nice vision for the project. My major gripe is that it's not available on windows, but anyways I rarely use microslop products nowadays.
AFAIK, Ghostty is as performant. At least, on macOS. I used both and didn't see much difference. Decided to go with Ghostty as it feels more native than Kitty.
Print a massive log file in kitty/ghostty, and another one with you default terminal, and you'll see a massive difference in how fast the log is printed out. Well to be honest it's just comfort, I can't claim it makes a difference in actual productivity, for me the real benefits of kitty are just the terminal multiplexer-ish capabilities (panes, sessions), other rendering niceties like adjusting the font, or having smooth scroll, sensible default shortcuts. But the actual "performance" e.g. input lag or rendering lag, I don't think it's that important.
I frequently compile big software projects, using fast multi-core CPUs, like AMD 9950X, with which the compilation itself is really fast.
Such compilations produce a ton of text messages. With any classic terminal, the text rendering in the terminal window becomes a bottleneck, slowing down the compilation very noticeably.
With modern terminals that use GPU text rendering, like ghostty and kitty, compilations are done much faster.
Of course, with classic terminals you can redirect the compiler output, to avoid this problem, but I prefer to glance at the progress of the compilation, to notice early if there are problems.
Even in normal interactive use, there are enough cases when the difference between the instant rendering of ghostty or kitty and the slowness of the classic terminals is noticeable.
To see the difference between a slow terminal emulator, like you probably use, and a fast terminal emulator, you can do a "cat" from a text file of a few megabytes, and you will see the speed difference.
Very similar, about the only difference from user perspective is that Kitty has a slight content 'wobble' on macOS when resizing the window (this typically happens when the content is rendered via an MTKView or CAMetalLayer and its parent view's 'layerContentsPlacement' isn't anchored to one side during window resizing). That would be trivial to fix though.
PS: another difference is installation size, on macOS Kitty is about 246 MB while Ghostty is 67 MB (and it looks like Kitty comes with a glslang shader compiler and python 3.14 frameworks, which together already take up 32 MB).
TL;DR: it feels like Ghostty is paying a bit more attention to platform-specific aspects than Kitty.
Also funny/sad: both call themselves 'cross-platform', but then don't support Windows (only various UNIX variants).
> Also funny/sad: both call themselves 'cross-platform', but then don't support Windows (only various UNIX variants).
This still qualifies as cross-platform though. Cross-platform doesn't mean "all the platforms" or "all the platforms with the biggest market share in the segment of the application".
Maybe, but it reminds me of the bad old days when Microsoft called their applications 'cross-platform', and then they just meant different flavours of Windows ;)
I mean, I share the sentiment, and IMO they should support at least the BSDs (there are official FreeBSD ports for both Kitty and Ghostty but no mentions of them in both websites)
> Also funny/sad: both call themselves 'cross-platform', but then don't support Windows
Both might have thought 'If you are patient enough to tolerate a slower web based start menu, you are probably not a target market for a hardware accelerated terminal' :D
I've used kitty before and really liked it. I am considering switching back to it now on Linux. I've been using Ghostty on macOS and loving it there, but it's quite bad on Linux.
It keeps segfaulting, takes a long time to actually start, I keep getting weird glitches whenever I have multiple panes open in a window (which is pretty much always the case), the tab bar is hard to style and I'm missing some of the macos features (like giving a tab a coloured pin).
I am using kitty to run Claude TUI and Gnome Terminal for everything else. The reason is that kitty has basically no chrome around the terminal so there is more space for Claude to write its stuff. Furthermore it's got a different icon so I can pick it more easily from the task bar or with Alt-Tab. However it's got no menus and it takes a "man kitty" to learn how to use it (a /s to myself, I used to read the man pages of everything.) Gnome Terminal has menus and dialogs and that makes it more discoverable and easier to configure. I am using it for bash.
Kitty is my go-to for the Linux desktop. I discovered it in an early stage and really liked it from the beginning. It’s great to see that the project continues to be developed so vigorously.
I have a large list of improvements I could ask for, mainly from juggling various AI terminal agents and not wanting to go full tmux.
* Ability to programmatically start and stop terminal tabs
* Multiple rows of tabs
* Full, reliable control of the formatting and color of a tab and its contents
* Tabs fully independent of but still capable of using the terminal's advanced features (read - you can restart the host terminal without closing everything)
All of these are done by at least one terminal program on Mac, none does all.
Nice. I love kitty. But somehow I just realized I'm stuck in 0.47 even though I'm on Fedora, it's like 6 months old. Excited to try the automated session restore.
I thought that it was about the term emulator KiTTY (https://www.9bis.net/kitty/ a windows GUI for Putty) but it's about a term emulator Kitty ... :-(
Seriously guys: what's the point of reusing the exact same name for the exact same product ???? Stealing history and credibilty ? Lack of imagination ? Or did someone just forgot to do its homework and checkin what already exists ?
(and if you downvote, please explain why ... KiTTY is quite a good software since 2005, more than 20 years ago, and still alive even if the last version is 0.76.1.13 from 2023)
This was raised in bug trackers, and this Kitty's maintainer willfully decided to be an asshole about it. Briefly considered changing, but then didn't out some fit of pique.
For some strange reason I kind of settled on tabby. Also
as an alternative on Linux (though I tend to use KDE konsole
more there).
Kitty has some nice ideas, but I don't know ... I am getting
lazy, so tabby works for my use cases on Windows (mostly just
a fancypants wrapper over cmd.exe really; I don't even use
powershell anymore, ruby or crystal cover all my scripting
needs, including the assumption of OOP in shells).
Yep, I use the beta version of Windows Terminal, which fully supports Kitty protocols, but I'm still envious of people using Kitty directly or even Ghostty.
WezTerm has worked fine for me. Windows however has ConPTY which is better than what was before but still a nuisance if one whats to use advanced escape sequences and other things that modern terminals support.
I concur. WezTerm is my driver for the past 3-4 years. For anyone wishing to try it, make sure you grab a nightly build.
I wish there were regular official releases that would help it get more traction. Last official release is 2.5 years ago, despite continuing development. This could drive some people away. OTOH, maybe that's the point...
It's nowhere as featureful as kitty, but i've been using cmder and it's good enough a replacement for the default windows terminal for daily use. But if you use powershell, i m not sure what a good replacement is (but it does work in cmder iirc).
https://cmder.app/ , in case the (many) other products with the same name shows up in searches.
I want to use Alacritty on Windows, but it still has a ctrl+alt+key issue due to some upstream winit issue. Other apps seemed to have worked that out in other ways tho. I thought the font rendering in Alacritty on Windows was the best, so I still hope one day its updated with a fix.
Not yet, but there are several projects that exist to build it for Windows: https://wintty.io/ describes itself as "A native Windows terminal built on the Ghostty core" (i.e., wrapping libghostty in a Windows application), and is probably the one I'd start with. There's also https://noctty.com/ which has taken a similar approach.
Both are clearly LLM-assisted projects, but https://noctty.com/ has a very Claude-esque front page whereas https://wintty.io/ doesn't set off my LLM detectors nearly as badly. However, Wintty's download page says "Prebuilt builds are for sponsors. The source is free and always will be, and you can build it yourself" so if you decide you don't like that business model then you may wish to try Noctty, which does have prebuilt binaries.
NOTE: I have not spent any amount of time with either of those, so I can't give personal recommendations either for or against either.
I was happy that this nice little PuTTY clone[1] finally got an update... until I realized that it was some other, unrelated terminal emulator that just happened to use the same name.
Why do people not do a web search before naming their project, to look for "prior art" under the same name sigh
https://jcd.pub/2026/11/04/screenshake-shaders-for-kitty/
JonnieCache: Hold my beer.
(brilliant work btw)
What a legend.
Apart from that, Kovid avoids providing proper packaging except for self-extracting installers and tends to create new "standards" like Calibre's web server instead of ODPS and in Kitty's case the whole annoying lot of Kitty-derived and Kitty-standardized features every terminal emulator is now supposed to support, which also break existing compatibility -- with the usual "you are holding it wrong" arguments when someone points it out.
In my opinion, Kovid is the original vibecoder -- extremely productive, extremely functional, extremely successful but despite the code (and UX) quality, not because of it (to be fair, I haven't looked into Kitty's code). I'm glad it works for him, I just wish I could use his products without getting aneurysms while wrapping my head around them.
What an odd complaint; it's not like he's going about to other projects forcing them to add them. I suspect the reason some of Kitty's standardized features are being independently adopted by other terminal emulators is because they are genuinely useful.
As for kitty, it seems some of its new standards have unlocked actually useful features, especially in AI's terminal-powered era. But creating new standards and breaking compatibility ought to be avoided unless necessary.
The bar is pretty low for some basic UX, and these two projects consistently fall under. But to each their own.
Both Calibre and Gimp are great examples of outsider design.
Works amazingly well.
Looks amazingly bad.
He's not making a traditional art form as someone who's untrained. He's designing Calibre, and he's the most qualified person in the world in doing that.
Outsider design? It means it’s designed by someone self-taught or not classically trained in the subject. It’s neither insult nor praise, it’s a classification, though often used as a way to express something as being unconventional and interesting.
https://en.wikipedia.org/wiki/Outsider_art
https://en.wikipedia.org/wiki/Outsider_music
> It is design produced by the user and maker of the app. If you hire a designer that's neither, doesn't that actually make them the outsider?
No, because it refers to “outside the world of design” not “outside the world of this product”. It’s two words but a single term.
> He's not making a traditional art form as someone who's untrained.
Your parent comment didn’t claim they were making art. But they are designing the app are are clearly untrained in design. Again, that’s not an insult. How many of us here are self-taught programmers?
> He's designing Calibre, and he's the most qualified person in the world in doing that.
That doesn’t necessarily follow. If that were the case there would be no designers, everyone would just do their thing. The point of learning design is to understand what works and why and how to apply it. It is perfectly valid for you to have a vision of what you want the thing to do but to need help in presenting it more effectively.
But design is functional. Grows organically by needs of the user. If so many people swear by Calibre, it is well designed for calibre’s use case. It is not only about the aesthetic design trends. They don’t need to apply a coat of liquid glass and modern icon treatment to make it well designed. Software like Calibre are a toolbox full of screwdrivers and random things that are not in the same color hue and size and rounded corner treatment. You open the toolbox and immediately know what you need to reach for and where, get the job done and close it.
This appeal to authority is why we end up with everything looking like Juicero of software. Shiny, the same components and pricing plan as everything else. But absolutely soulless and often user hostile.
I don't think many of those artists were celebrated during their lifetime, or at least not until the their form became more widely accepted in the mainstream.
Which is what I said, in different words. If you understood the term, why did you ask what it meant?
> If so many people swear by Calibre
There’s no true alternative. A lot of people use Calibre despite how it looks, because it does all the things. The world of messing with ebooks outside the vetted stores isn’t that big.
> It is not only about the aesthetic design trends.
I didn’t even so much as hint that. Please don’t straw man.
> They don’t need to apply a coat of liquid glass and modern icon treatment to make it well designed.
Again, didn’t even so much as suggested that. I personally dislike Liquid Glass.
> toolbox
Again, there’s nothing wrong with being a toolbox nor have I claimed there is.
> This appeal to authority
There was no appeal to authority. You paid no attention to words in the comment, you fabricated an argument in your head and are fighting that.
Fucking hell, HN is tiring. Stop being so angry all the time, we’re not on opposing teams. Not every comment is a criticism or disagreement for you to rally against.
Calibre is great and I’m happy it exists. I recommend it to people despite not using it myself (I make my own tools). When I used it I found it to be very ugly and at times confusing and found it could benefit from applying some basic well-understood and researched design principles. But that’s all my opinion. You’re welcome to have yours, I don’t care, use whatever you like. Just please don’t mischaracterise my words and don’t come all angry and citing misapplied fallacies at me. I didn’t do that to you and would appreciate the same courtesy. Don’t stoke hate.
However, when can we accept a design stands the test of time and maybe it is in fact well designed? So many objects that are considered well designed today look that way because they got refined over the time and designed through their goals and constraints. Only in retrospect we call those well designed because they were original and not designed by committee. Can you give benefit of the doubt that maybe Gimp’s, Emacs’ and Calibre’s of the world might be in that category?
There are lots of things that do bits of what Calibre does (Kavita, Librum, KOReader, Koodo, etc), but nothing comes close to replacing it.
Like calibre, I guess :)
Obligatory: I miss Rdio. That was them too.
Lots of people. It’s great that you don’t, really, but Calibre is very ugly¹ and I have no doubt that limits its adoption. Subconsciously, people associate ugly apps with unpolished or unfinished apps.
I don’t use Calibre (I rely instead on command-line and bespoke tools) but I do recommend it to less technical people and I always make it a point of saying “it’s very ugly but it does everything and does it correctly, it’s the gold standard for what you want to do” because I’m pretty sure if I didn’t add that disclaimer the people I recommend it to would think they downloaded the wrong thing or abandon it as soon they opened it.
¹ That’s just personal opinion, we don’t need to have a debate about that. If you find Calibre beautiful, more power to you.
I’m impressed but also… that’s a lot of effort.
I don’t use a Kindle (it’s a Kobo, those are very hackable) and don’t use my tools to manage the reading list, I prefer to do that on device. But sure, I’m not claiming it’s for everyone, there’s a reason I recommend Calibre to other people. My needs are fairly minor, I don’t even use any of the popular alternative interfaces like KOReader.
> I’m impressed but also… that’s a lot of effort.
Not that much effort, and the tools have evolved as my habits did. I’ll give you one simple example of such a tool: I can select an EPUB and press a keyboard shortcut which actions it in Alfred to first convert it to to a Kobo EPUB with kepubify and then upload to Dropbox with rclone. I can then download it from the Kobo manually.
I had another which would take the URL of the frontmost browser tab, download and convert it to EPUB with pandoc, then it’d reuse the same kepubify and rclone steps. That one doesn’t work that well nowadays, with all the websites getting harder to access programatically due to all the LLM scraping.
Neither of those needs a lot of code, and I’m still relying on other tools for the heavy lifting. It’s just that for my specific personal needs, this is faster and more convenient than using Calibre.
Legend indeed.
Over time I learned to appreciate the vision: it’s not the stereotypical modern streamlined app, it’s the cockpit of a spaceship. It’s AutoCAD for ebooks. I really enjoy that application now, I haven’t even scratched the surface of its featureset.
I heard the author gets very defensive of his design choices: good, I wish we had more opinionated app developers in FOSS.
[1] https://en.wikipedia.org/wiki/The_Shaggs
Presenting... MultiPSK!
https://swling.com/blog/wp-content/uploads/2020/01/MPSK-Fig1...
A designer might indeed add more space but not necessarily hide stuff. Design works within constraints, and if the constraint is everything should be visible, then it needs to work like that.
That interface would benefit from more space in areas. Note for example how the descenders of letters (look for “g” or “y”) bleed into the bottom shadow (the “side”) of the buttons. It’s definitely tight. It gets worse with the bold areas. On the top right you seem to have buttons, labels, and a text field, all using the exact same font at the exact same size, all in bold and with no spacing between them. It makes it harder to focus on information, and everything is so close together that you’ll either have misclicks or be slower as you put the cursor in just the right place.
Sure, have that interface for the hardcore users, including those who are going to use the keyboard to interact with every part of that, but it’s not a failing to add more space, and menus aren’t always wrong.
People love making fun of designers, but it’s the toupée fallacy, you notice it when it’s bad. There’s a reason “good design is invisible” is a maxim. Like on every field, there are good designers and bad designers.
https://arngren.net/
- https://www.aplwiki.com/wiki/Whitney_C
I, right now in 2026 and at least one decade later, get at most 59 lines of code at once in my primary editor (Panic's Nova) on a 27" monitor.
That is almost the same ratio.
Put forward your vision
IMO, Foobar2000 [0] was/is the zenith of bespoke GUI programs from that era. The UI is clean, the menus make sense, it’s infinitely configurable but the defaults are fine, it supports plugins…
0: https://www.foobar2000.org/
I love Calibre, but isn't this every FOSS project.
Moving on, that example is different because not only is that solution specific to the problem and teaches you something, it’s also not as pervasive. Suggesting a keyboard shortcut to change text size is like teaching you how to hammer a nail, while telling you to vibe code is like telling you to hire a carpenter. Sure, you can hire a carpenter for your problem, but everyone already knows that is an option and it’s too general. It’s not a solution to the problem, it’s a suggestion of an approach and doesn’t even have a helpful guiding direction. Again: not interesting, doesn’t advance the discussion, and no one learns anything.
There are cases where it's not only an obvious option, but also the only viable one e.g. suggesting to someone they should hire a lawyer: the advice there isn't just that they have this option, but that this is the only viable option, and that otherwise taking legal advise from a forum is dangerous; IANAL-YANAL-GAL!
I don't see you berating people for complaining, after all if the purpose of this website is intellectual curiosity then comments complaining aren't in line with the purpose right?
No one complained about anything, read the parent comment to the comment I replied to. The comment I replied to just suggested vibe coding out of nowhere.
> berating people
Come on, let’s please not be ridiculous. My comment was as polite as can be while presenting a disagreeing opinion. You don’t need to fake outrage, there’s enough of that in the world already and it’s a major reason why everything is turning to shit.
> after all if the purpose of this website is intellectual curiosity then comments complaining aren't in line with the purpose right?
Oof, HN is so tiring. More and more it proves right everyone who calls this “the orange site”. Look, you’re probably not a dumb person, there’s no need to play one and make arguments in bad faith. This is not hard to understand:
If there is something detrimental which you perceive as being done in excess, you should call it out and ask the person to stop, even if you have to go outside the norms a bit, for the greater good of the community. If you are, for example, in a renaissance fair and a couple of guys are being disruptive, it’s absolutely fine to break character to get them to stop; you don’t have to do it while pretending to be a medieval peasant, and it’s idiotic to suggest that would have to be the case.
It’s supremely stupid and frankly embarrassing for this community that I have to point this out as if we’re children. Don’t be Mr Gotcha, he’s not smart and no one likes him.
https://thenib.com/mister-gotcha/
that's exactly what i'm doing. there's so many people on here complaining about LLMs in general, I perceived your comment in that same class and thought that it too wasn't adding anything to the discussion. The suggestion to use LLMs is, I think, useful. People might not have thought of it, might not know what the underlying code of calibre is and how easy it would be to modify with an LLM.
I view suggestions, even if rote or obvious, more useful than negative comments like yours.
kitty 0.48.2 provided by fedora:
Only ASCII chars : 1.25s @ 159.8 MB/s
kitty 0.50 provided by install.sh: I've run each multiple times and the results are similar...the new version seems to have higher throughput and yet takes longer to finish the tasks? Like, a lot longer?If you don't care about native UI widgets (I and many others only use the terminal part of the UI, so I don't) I don't really see a reason to use Ghostty over Kitty.
This process is documented with systemd, but it's not a requirement, a plain xsessionrc could work similarly: https://ghostty.org/docs/linux/systemd
Why? Do you open a new browser window when you want to visit a website?
Same with terminal. My terminals (xfce4-terminal or kitty -1) both open so instantly that I can ctrl+alt+t and even while typing at high speeds, the next character is entered into the terminal.
I can type the below sequence of keys at high speed (realistic example that OCRs clipboard image):
without risking the startup time swallowing my `vp` keysAnd yes, I disable animations for any kind of window switching mechanism including alt-tab/worksapce switch
At any rate, I believe ghostty has the same single instance mode equivalent.
Now, Monstar has a bizarre issue (at least in my setup) where it displays blank instead of capital A when used with Fixedsys Excelsior, for some reason. But hey it starts in under 10ms.
edit:typo
Terminal ricing is really a thing I will never understand, unfortunately. It's good and it works, but I wouldn't miss it if I had to use a less hyped terminal.
Kitty is about instant, same with the default macOS Terminal.app. But kitty supports a few more features that I use heavily like nerd fonts, and just has better text rendering overall.
Yeah it’s not like I couldn’t work in another terminal, but my goodness it’s nice to have a tool that I use all day be as snappy and responsive as kitty
It's easy to customise, super fast, light on resources, available in my distro's package manager and while the author might be a bit prickly at times, he does a fantastic job leading the project and keeping things focused.
I'll give the new shaders a try but the animated cursor is probably busy enough for me already.
Also makes it easier to multitask, I assume.
When do you use this? (guessing, when you run something that crashes the terminal?)
Possibly related: I use ctrl+shift+h (and somehow configured it to use neovim), which is a nice way to navigate the terminal history - useful when pilfering through thousands of lines of local server logs
This feature seems like interesting timing in light of the above: https://sw.kovidgoyal.net/kitty/changelog/#restore-after-log...
> https://sw.kovidgoyal.net/kitty/changelog/#restore-after-log...
Whoa, this is great news!! For years, it has been Mr. Goyal’s standpoint, and quite understandably so, to not offer this natively due to implementation effort [0]. I just put up with that (yes, technically, you could save-and-restore window and terminal session states, but that doesn’t help in case of an unexpected quitting/crash event), since the man is already undervalued for all of his incredible work – I urge any user of either Kitty or Calibre to check out [1]!
Same as for you, Kitty has effectively been the only terminal I use for years now, chiefly due to `edit-in-kitty` when ssh’d onto another machine, as well as the image protocol for a full file explorer experience, e.g. Yazi [2]. I’m also in the Rex beta, but until they add that, or an improved version of the protocol (as apparently streaming of too much image data is holding their protocol/performance back at the moment) I unfortunately can’t see myself switching, even though in principle I very much agree with this sentiment:
> I bet that Superlogical's Rex is going to take over the world.
[0] https://github.com/kovidgoyal/kitty/issues/1197#issuecomment...
[1] https://sw.kovidgoyal.net/kitty/support/
[2] https://yazi-rs.github.io/
About to push a big optimization for big directories/collections
I love kitty, have used it for a long while now and pretty happy, except for that one thing about ssh xterm - but even that is mostly minor.
Really cool to see such active development of an already perfectly capable and working software.
For example pikvm exists with read-only mounted filesystem. Having to dive into the details to figure out that the issue is kitty trying to write a file to make some obscure terminal features work doesn't strike me as good design.
`alias ssh="TERM=xterm-256color ssh"` fixes it but isn't mentioned in the docs.
I respect the man’s ideological correctness, but it’s not 1982 anymore and nobody is going to add more terminal types.
https://sw.kovidgoyal.net/kitty/kittens/ssh/
It was a setting in some ~/.ssh config file though I believe, not a kitty setting.
alias ssh="kitty +kitten ssh"
sshpass() { TERM=xterm-256color command sshpass "$@"; }
Could also alias sshpass differently but I mostly use that for embedded devices where I just want a simple shell anyways.
The alternative you mean is in ~/.ssh/config:
Host *
enabled_layouts fat
map kitty_mod+l no_op
map kitty_mod+enter no_op
# disable open/close
map kitty_mod+n no_op
map kitty_mod+w no_op
I really wish I'd sit down and vibe-code is an empty window-shade that lets me plug in any terminal I choose so that I could experiment with innovative terminals like this.
What parts are handled in python these days?
People with not perfect eyesight might benefit more from it too.
Okay, that's pretty cool. How does it handle spacing though? Do the columns in ls/top/etc still line up?
https://github.com/kovidgoyal/kitty/blob/master/docs/faq.rst...
People like to say that kitty is performant, but I haven't found ghostty to be otherwise.
> Similarly, some monospaced font families are buggy and have bold or italic faces that have characters wider than the width of the normal face, these will also result in clipping. Such issues should be reported to the font developer. Monospaced font families must have all their characters rendered within a fixed width across all faces of the font, otherwise they aren't really monospaced.
I’m surprised no one out together a ghostty theme for kitty. Kitty seems to pushing boundaries with features and concepts
Serious question.
Such compilations produce a ton of text messages. With any classic terminal, the text rendering in the terminal window becomes a bottleneck, slowing down the compilation very noticeably.
With modern terminals that use GPU text rendering, like ghostty and kitty, compilations are done much faster.
Of course, with classic terminals you can redirect the compiler output, to avoid this problem, but I prefer to glance at the progress of the compilation, to notice early if there are problems.
Even in normal interactive use, there are enough cases when the difference between the instant rendering of ghostty or kitty and the slowness of the classic terminals is noticeable.
To see the difference between a slow terminal emulator, like you probably use, and a fast terminal emulator, you can do a "cat" from a text file of a few megabytes, and you will see the speed difference.
PS: another difference is installation size, on macOS Kitty is about 246 MB while Ghostty is 67 MB (and it looks like Kitty comes with a glslang shader compiler and python 3.14 frameworks, which together already take up 32 MB).
TL;DR: it feels like Ghostty is paying a bit more attention to platform-specific aspects than Kitty.
Also funny/sad: both call themselves 'cross-platform', but then don't support Windows (only various UNIX variants).
This still qualifies as cross-platform though. Cross-platform doesn't mean "all the platforms" or "all the platforms with the biggest market share in the segment of the application".
Both might have thought 'If you are patient enough to tolerate a slower web based start menu, you are probably not a target market for a hardware accelerated terminal' :D
That's the one thing I always check first in a terminal because I have this pet project to run emulators in a terminal ;)
https://github.com/floooh/chipz-kitty
(works fine in Kitty and Ghostty, wezterm theoretically also supports the Kitty protocol but at some point just freezes)
If you need a GUI, just use a GUI.
It keeps segfaulting, takes a long time to actually start, I keep getting weird glitches whenever I have multiple panes open in a window (which is pretty much always the case), the tab bar is hard to style and I'm missing some of the macos features (like giving a tab a coloured pin).
A scan of this list doesn't indicate any breaking changes: https://sw.kovidgoyal.net/kitty/changelog/#id1
* Ability to programmatically start and stop terminal tabs
* Multiple rows of tabs
* Full, reliable control of the formatting and color of a tab and its contents
* Tabs fully independent of but still capable of using the terminal's advanced features (read - you can restart the host terminal without closing everything)
All of these are done by at least one terminal program on Mac, none does all.
gz on the release
Awesome. I built a janky version of this for myself but I’m glad it’s supported natively now.
Seriously guys: what's the point of reusing the exact same name for the exact same product ???? Stealing history and credibilty ? Lack of imagination ? Or did someone just forgot to do its homework and checkin what already exists ?
(and if you downvote, please explain why ... KiTTY is quite a good software since 2005, more than 20 years ago, and still alive even if the last version is 0.76.1.13 from 2023)
Kitty has some nice ideas, but I don't know ... I am getting lazy, so tabby works for my use cases on Windows (mostly just a fancypants wrapper over cmd.exe really; I don't even use powershell anymore, ruby or crystal cover all my scripting needs, including the assumption of OOP in shells).
I wish there were regular official releases that would help it get more traction. Last official release is 2.5 years ago, despite continuing development. This could drive some people away. OTOH, maybe that's the point...
Might be helpful to explain why someone should run a nightly build of something as critical as a terminal :D
I'm running WezTerm stable currently, so am curious.
https://cmder.app/ , in case the (many) other products with the same name shows up in searches.
Both are clearly LLM-assisted projects, but https://noctty.com/ has a very Claude-esque front page whereas https://wintty.io/ doesn't set off my LLM detectors nearly as badly. However, Wintty's download page says "Prebuilt builds are for sponsors. The source is free and always will be, and you can build it yourself" so if you decide you don't like that business model then you may wish to try Noctty, which does have prebuilt binaries.
NOTE: I have not spent any amount of time with either of those, so I can't give personal recommendations either for or against either.
Why do people not do a web search before naming their project, to look for "prior art" under the same name sigh
[1] https://www.9bis.net/kitty/#!pages/download.md