DE version is available. Content is displayed in original English for accuracy.
Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
70% Positive
Analyzed from 1683 words in the discussion.
Trending Topics
#terminal#https#shitty#com#ghostty#best#github#name#project#using

Discussion (50 Comments)Read Original on HackerNews
I am not sure how many Moby Dicks I require per second, but it is good to have options.
[0] https://www.gutenberg.org/ebooks/2701
I'm all for vulgar wit but this isn't that (yes I'm aware of the -tty convention) & just reinforces the cliche of tech skills inversely proportional to social ones
Furthermore, on Linux, I reuse buffers from the swapchain after the wayland compositor returns them, and I only update the areas that changed after I sent the buffer to the window system. In other words, I'm provably doing the minimum amount of work possible. Unfortunately, this isn't possible on MacOS, since the Metal documentation states that it can (and does) corrupt a buffer while displaying it.
Basically, based on code, not actual measurements, shitty is the best terminal in terms of change delivery latency.
That conflicts with the already existing suckless st.
Also I am suitably impressed with the perf numbers, but I also somewhat take away that I could stick with (at least) alacritty or ghostty and not be much slower.
on the other hand what gives them the right to st but not you?
I'm glad you guys are out there - someone has to do it.
They also count my steps.
(also I had to look up aglet)
Fuck nvm btw.
I do wonder, however, whether people really have issues with perf on any terminal emulator in 2026
I’ve been living in Terminal.app / zsh / tmux / vim for 15 years and have never once thought “this is slower than I want.”
However, there is one case when throughput matters: when an application has a lot of output. But then the problem isn't the speed that it displays the text, it's going by too fast to read anyway, the problem is that the application can be slowed down by blocking on writing to stdout when the buffer is full. And honestly, the best approach in that case is probably not to actually render all the text, but send most of the output straight to the scrollback buffer, and only render some of the frames.
The author of shitty encoded the whole terminal state machine in Ragel: https://github.com/pg83/shitty/blob/master/parser.rl
The thing generates one of big DFA with actions for everything that can ever happen in the terminal. Precisely correct way to do it. Plus, Ragel is a joy to program once you get the hang of it. You can compose edge-triggered, level-triggered, and recursive operators in surprisingly elegant ways.
An interesting, and disappointing choice.
I just browsed the project for two minutes and it's one of the first things I noticed. std::thread is more portable (Windows, if anyone cares) and allows you to pass in a lambda, which keeps the code local and also has the compiler generate the closure for you instead of having to pass function pointers and void* captures around. I don't see any advantage to using pthread directly.
With this you can DuckDuckKagi for the crappy terminal (versus “CRM crm”… ah guess they wanted you to remember their company name)
https://github.com/fearlessgeekmedia/shiTTY
This one just tried to reserve the name with an empty repo a year ago... probably where the LLM got the name.
https://github.com/immz4/shitty
Later, Microsoft fixes the issue but fails to give Muratori credit. After backlash, they went back and gave him a footnote: https://devblogs.microsoft.com/commandline/windows-terminal-... (atlas release section)
GitHub thread in question: https://github.com/microsoft/terminal/issues/10362#issuecomm...
And this gem: https://github.com/microsoft/terminal/issues/10362#issuecomm...
https://github.com/pg83/shitty/blob/master/CONTRIBUTING.md
this is not true on my machine, at least for my usual benchmark Doom-fire-zig[1]. on said benchmark, ghostty 1.3.1 runs at about 350fps, wezterm 20260713-212414-b3255666 runs at 415fps, Terminal.app runs at 100fps, iterm2 3.6.11 runs at 80fps.
[1]: https://github.com/const-void/DOOM-fire-zig
1. Don't call your project "shitty". At best it's juvenile humor. At worst, it's going to make adoption within companies difficult for literally no reason; and
2. You don't need a two letter command. I'm sorry but you're not that special. Your tool should instead denote its purpose with its name. In this case something like "sterm" or "stty" would do that perfectly without being verbose.
I thought it was quite clever, and was surprised I hadn't thought of it (given the prevalence of "tty" puns like kitty and ghostty).
But I'm a 14 year old boy living in a 45 year old body, so I can't get enough juvenile humor. A friend of mine with similar taste in humor once said, "if I ever stop finding this stuff funny, put me in the ground", and I still wholeheartedly agree with the sentiment.
(For example: whenever I need a quick scratch file to put some text in, I call it "shits", because then I can type "cat shits" and giggle inside my head. I'm also have cats, so I deal with cat shits daily.)
> You don't need a two letter command. I'm sorry but you're not that special.
This I agree with, though perhaps in a politer way.
Regardless, though... live and let live? The existence of this doesn't harm you an any way, and your judgey moralizing is a bit much.
I wouldn't want to work somewhere like that. Trying to pretend that people don't swear is just dumb. It's not even offensive.
(I have, also, thought about building my own perf-optimized terminal. It's a fun problem space!)
Regardless, sometimes you just gotta write some code because there's an itch that needs to be scratched. Sounds like this author really wanted to see if he could write a super fast terminal, and make one faster than the incumbents. It's a cool achievement!
I would need to display roughly 70 GB of benchmark-equivalent ASCII output before Shitty recovers a five-minute switching cost relative to GNOME Terminal.
This assumes I’m actively blocked by every byte being rendered.
My main complaint with ghostty is the crappy configuration.