47 comments

[ 0.34 ms ] story [ 39.1 ms ] thread
> The executable is named st; the desktop application and icon are named shitty

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.

Any plans for a "libghostty" alternative for your terminal?
I will def try this out and I absolutely love the name. Just an A++ name
why no iTerm2 in the benchmarks ? It far outperforms the likes of kitty and ghostty
I prefer Ghostty as there is no this "Claude" thing in its contributors. But I guess it's always good to have competitions.
Gutenberg's copy of Moby Dick is 1.2MB[0]. Which is to say the slowest benchmarked terminal could display a paltry ~53 Moby Dicks per second, while shitty gives you ~98 Moby Dicks.

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

Nice work!

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.”

the new Windows Terminal had horrendous performance when it first came out. in the aftermath of the drama surrounding that, was when I first started seeing a lot of terminal emulator projects bragging about their throughput.
I keep going back to xfce-terminal after trying anything else. Ridiculously small footprint and never drew attention to itself.
I would still use xterm, don't really get the craze out optimising tty emulators.

Now graphical nicely powered REPL environments is another matter.

Right? I have always just used whichever terminal came with the Linux desktop I was using at the time. If anything, the terminal is already the smallest and fastest gui app I have open.

I ask this question often in the comments when a new "blazingly fast" terminal is announced and after years of doing so, have yet to read an actually practical answer that applies to modern systems.

My guess is that some people just enjoy the process of optimizing well-understiod low-stakes graphical stuff.

Two mild criticisms:

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.

stty is a very important existing command, but yeah sterm works.
This is cool, but I gotta say - I care much more about keypress-to-screen latency on my terminals than throughput - would love to see some numbers on that.
Why are you using pthread instead of std::thread?
> Shitty is moving from the imported GPL baseline to an MIT-only codebase. It does not intend to retain the GPL as the final project license.

An interesting, and disappointing choice. Shitty, one may say.

Excellent use of Ragel to generate fast state machines. Everyone should check it out: https://www.colm.net/open-source/ragel/

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.

Going by the childish naming of the project, it doesn't inspire confidence in the professionalism of the author going forward, and neither will it help with getting it installed on corporate networks.

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

Given the memory-unsafe vice signaling, maybe this can become the official terminal of Fox News and the Department of War.
He took zutty (GPL licensed), shitted some claude on it, then released it MIT. A license violation, but not like it matters, since it will end up in the same heap as every other bozo's vibeslop. It is aptly named.
Given git is all over the corporate world, I say this is less of an issue than you make it out to be.
What's the boot time for shitty?

I can't use half of the terminal emulators because theyre so slow that after hitting my key bind to open them and I start typing half of the first word is missing.

Project seems too good to be squatting on that name. I imagined some joke terminal when I first saw it.
We can run a poll asking the author to rename it `shitless` once it gets rid of the GPL.
excited to see a work of zutty lineage, it's a massively underrated terminal, but please clank something meaner and leaner that an agent can manage to get built in less than 128k tokens, x11 would be appreciated too
> Shitty is moving from the imported GPL baseline to an MIT-only codebase. It does not intend to retain the GPL as the final project license.

that's really something that cannot be done if you don't have the original right of the code. It's 100% derived work and thus has to preserve GPL license, even if you rewrite every single line.