<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/github---pg83-shitty-a-serious-terminal-emulator-with-a-stupid-name-5uuuf6lhn" -->

---
title: GitHub - pg83/shitty: A serious terminal emulator with a...
description: Shitty is a high-performance terminal emulator forked and rewritten from Zutty, written in C++23 and targeting low latency, fast startup, and predictable...
canonical: https://daily.dev/posts/github---pg83-shitty-a-serious-terminal-emulator-with-a-stupid-name-5uuuf6lhn
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: GitHub - pg83/shitty: A serious terminal emulator with a stupid name | daily.dev
og:description: Shitty is a high-performance terminal emulator forked and rewritten from Zutty, written in C++23 and targeting low latency, fast startup, and predictable...
og:url: https://daily.dev/posts/github---pg83-shitty-a-serious-terminal-emulator-with-a-stupid-name-5uuuf6lhn
og:image: https://api.daily.dev/og/posts/5UUuf6Lhn.png
og:image:alt: GitHub - pg83/shitty: A serious terminal emulator with a stupid name
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub - pg83/shitty: A serious terminal emulator with a stupid name

**[Hacker News](https://daily.dev/sources/hn)** · 7 min read · 1 upvotes · 1 comments

## Summary

Shitty is a high-performance terminal emulator forked and rewritten from Zutty, written in C++23 and targeting low latency, fast startup, and predictable resource use. It uses Vulkan on Linux and Metal on macOS for GPU-accelerated rendering. Benchmarks show it outperforming Alacritty, Kitty, and Ghostty on ASCII throughput (~118 MiB/s). Features include comprehensive VT/xterm protocol support, Unicode grapheme clusters, multiple keyboard and mouse protocols, shell integration, and a persistent GPU glyph cache. Available via Homebrew, Nix flake, or manual install on macOS and Linux. Currently lacks bidirectional text and sixel graphics. The project is transitioning from GPL to MIT licensing.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/pg83/shitty>

## Community take

How the wider developer community reacted, aggregated from 2 discussions and 151 comments across hackernews (as of 2026-08-03).

**TL;DR:** The community is genuinely intrigued by shitty's impressive performance numbers and technical approach (Ragel-based parser, cell-exact damage tracking, strong test coverage), but the thread is heavily sidetracked by debate over the name, concerns about AI-generated code quality, and a potential GPL license violation from its zutty origins.

**Sentiment:** 40% positive · 35% mixed · 25% skeptical

**The case for**

- The use of Ragel to generate a complete terminal state machine as a DFA is praised as technically elegant and possibly the first of its kind.
- Impressive test coverage (5,000 tests, ASAN/UBSAN, fuzzing, code coverage monitoring) suggests a rigorous development approach.
- Cell-exact damage tracking and minimal redraw logic are highlighted as genuinely good design for latency.
- The name is celebrated by many as clever wordplay on the '-tty' terminal naming convention.

**The pushback**

- The project appears to be substantially AI-generated (Claude), raising doubts about code quality, correctness of performance claims, and whether the author is truly reviewing the output.
- It likely violates the GPL license of zutty, from which it was derived, by planning to relicense to MIT without proper procedure.
- The executable name 'st' conflicts with the well-established suckless st terminal.
- Missing modern features (sixel, kitty graphics protocol, kitty keyboard protocol) makes benchmark comparisons with modern terminals unfair.
- Ghostty's creator noted benchmarks are against an outdated version (1.3.1) and that main branch may already be faster.
- The name, while funny to many, will hinder corporate adoption and may undermine perceived professionalism.

**By community**

- hackernews (mixed): Commenters are split between genuine technical admiration and serious concerns about AI-generated code, a GPL license violation, name immaturity, and missing modern terminal features.

**Hottest debate:** Whether the project's heavy reliance on AI-generated code (100% by the author's own admission) undermines its technical credibility and the author's bold claims about correctness and performance.

**Open questions**

- What is the actual startup/boot time of shitty compared to competitors like foot and kitty?
- How does shitty perform against Ghostty's unreleased main branch, which reportedly has 2.8x improved IO throughput?
- Will the planned MIT relicensing procedure actually hold up legally given the GPL-licensed zutty baseline?
- Are sixel, kitty graphics protocol, and kitty keyboard protocol planned for future implementation?
- What is the actual keypress-to-screen latency compared to other terminals?

**Highlights**

> I assure you, this is a very professionally made product: - we have 5,000 tests covering all aspects of terminal behavior - we have address sanitizer and ub sanitizer runs of these tests - we also have regular fuzzing! - we even monitor code coverage This is definitely a top 0.1% GitHub project in terms of development approach. > and neither will it help with getting it installed on corporate networks. I'm fine with it.
> — [pg83 on hackernews · 4 comments](https://news.ycombinator.com/item?id=49150256)

> Creator of Ghostty here. Always a fan of new terminals. I noticed your benchmarks are against Ghostty 1.3.1, which is fair, since its the latest released, but our IO throughputs in particularly the areas you tested have improved by more than double on some machines, so if you get a chance, I would ask you rebenchmark on `main`. I don't know if it'd be faster than your terminal or not, but it'd be significantly faster than 1.3.1. On my M4 MacBook Pro, ASCII processing improved by about 2.8x, if that holds in your benchmarks, it would be faster than shitty. But, who knows. I'd prefer you ran it yourself.
> — [mitchellh on hackernews · 1 comments](https://news.ycombinator.com/item?id=49151024)

> 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.
> — [quotemstr on hackernews · 1 comments](https://news.ycombinator.com/item?id=49150171)

> 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.
> — [krautburglar on hackernews](https://news.ycombinator.com/item?id=49150994)

> It's VERY difficult to measure. But I can say that shitty has the best damage tracking model among foot/kitty/alacritty/ghostty. It's best in the sense that it's cell-exact; I only draw to the screen what has actually changed. 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.
> — [pg83 on hackernews · 1 comments](https://news.ycombinator.com/item?id=49150210)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=49149326) · 69 points · 151 comments
- [hackernews](https://news.ycombinator.com/item?id=49025255) · 2 points · 0 comments

## Community discussion

Top comments from developers on daily.dev.

**@theacademe** · 0 upvotes

> Ghostty is still the only one with the confidence to declare a 1.0 release.

## Similar posts on daily.dev

- [The Modern Terminals Showdown: Alacritty, Kitty, and Ghostty Comparing Alacritty, Kitty, and Ghostty for Speed, Features, and Customization](https://daily.dev/posts/the-modern-terminals-showdown-alacritty-kitty-and-ghostty-comparing-alacritty-kitty-and-ghostty-05tu6iisw) · The Miners · 17 upvotes · 4 comments

---

Tags: [#python](https://daily.dev/tags/python), [#linux](https://daily.dev/tags/linux), [#c++](https://daily.dev/tags/c++), [#vulkan](https://daily.dev/tags/vulkan)

[View this post on daily.dev](https://daily.dev/posts/github---pg83-shitty-a-serious-terminal-emulator-with-a-stupid-name-5uuuf6lhn)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"GitHub - pg83/shitty: A serious terminal emulator with a stupid name","url":"https://daily.dev/posts/github---pg83-shitty-a-serious-terminal-emulator-with-a-stupid-name-5uuuf6lhn","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/github---pg83-shitty-a-serious-terminal-emulator-with-a-stupid-name-5uuuf6lhn"},"datePublished":"2026-08-03T00:24:41.420Z","dateModified":"2026-08-03T06:30:55.439Z","description":"Shitty is a high-performance terminal emulator forked and rewritten from Zutty, written in C++23 and targeting low latency, fast startup, and predictable...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/3ac4b406df2ae74d813f23bf91d0cd4b?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/3ac4b406df2ae74d813f23bf91d0cd4b?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/github---pg83-shitty-a-serious-terminal-emulator-with-a-stupid-name-5uuuf6lhn","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"python,linux,c++,vulkan","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"GitHub - pg83/shitty: A serious terminal emulator with a stupid name"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/github---pg83-shitty-a-serious-terminal-emulator-with-a-stupid-name-5uuuf6lhn","comment":[{"@type":"Comment","text":"Ghostty is still the only one with the confidence to declare a 1.0 release.","datePublished":"2026-08-03T04:37:13.075Z","url":"https://daily.dev/posts/5UUuf6Lhn#c-5Z5b1bvdj","author":{"@type":"Person","name":"theacademe","url":"https://daily.dev/theacademe","image":"https://media.daily.dev/image/upload/s--C29_q-xW--/f_auto/v1756852849/avatars/avatar_wNAjl1VBaVx2CCjbkkb5h?_a=BAMClqZW0"}}]}
```

