Register and share your invite link to earn from video plays and referrals.

Mitchell Hashimoto
@mitchellh
Co-founder of @Superlogical. Creator of Ghostty. 👻 Prev founded @HashiCorp, created Vagrant, Terraform, Vault, and others.
160 Following    240.2K Followers
libghostty 1.0 is here! I started Ghostty ~5yrs ago to work towards this. Today, libghostty is in hundreds of projects used by tens of millions of people. 1.0 marks ABI stability, quality, and an invite for distros to begin packaging. Since starting the Ghostty project in 2022, the most common question I've been asked is "why?". Today, I'll answer this by showing the broad industry impact libghostty has already had. On top of JetBrains and Neovim already mentioned (that alone being over 10 million users): -KDE developers are experimenting with a Konsole replacement built on it. - Vercel's Turborepo uses it to render task output in its TUI. - devenv uses it to drive shells. - Antithesis used it to fuzz TUI programs and found real bugs in btop and others. -Ghostel brings it to Emacs. - ghostty-web is the WASM build with an Xterm.js-compatible API. - Commercial products like OrbStack embed it. - And a whole wave of new terminals and "agentic" coding tools, such as herdr and cmux, have been built on it rather than writing yet another emulator. There are community bindings for Rust, Go, JavaScript, Swift, Python, .NET, Elixir, Dart, Java, and more, and the awesome-libghostty list tracks well over a hundred projects. More people today use a terminal powered by libghostty than use Ghostty the application, by a very large multiple. And libghostty is having a much larger impact than being "just" a terminal emulator. I'm excited to see where people take it from here.
Show more
0
102
4.5K
288
Forward to community
Surprise! We have a gorgeous, high quality windows client. We’ve been waiting to share until we have a relatively complete (but still pre alpha) client here, but we’re getting ready to start external testing. Hello, Windows.
Show more
our goal for Rex clients from the start was to build the most magical terminal app and to make it feel native on every platform. to me that doesn’t mean porting the same UI around. it means embracing the norms and quirks of each platform, so the app feels at home on your system rather than a guest that calls attention to itself. we’re about two weeks away from inviting the first wave of alpha users to Rex for Windows. it’s a fully reimagined version of our Mac app that still keeps the feel that makes the Mac app special. it’s crazy fast, the UI is entirely gpu-driven, and just like on Mac, it works as both server and client. here's a little video of me demonstrating some of the basics. I'll stress that this is pre-alpha right now, there is a lot to polish and port still, but I'm very excited about putting this in the hands of users soon.
Show more
0
105
1.7K
37
Forward to community
Congrats to Pierre! I have many great friends that work there and I’m so happy for them. I’m also a minor investor so I’m happy for myself. LOL.
Today we’re announcing that OpenAI will acquire @pierrecomputer to accelerate our vision for making Codex a place where teams can build software together with AI, from first idea to the version they ship. Pierre’s open-source developer tools already power parts of Codex today. Together, we’ll build on that foundation for the agentic era.
Show more
0
45
2.2K
17
Forward to community
Everyone is an expert on mach tuck and the aerodynamic effects of icing now I guess. Their stated qualifications are that they've been Delta Platinum Medallion for 8 years and got to shake hands with the pilot one time. Alright.
Show more
As a pilot*, I find it really fucking annoying that every non-qualified Dunning-Krugered armchair critic comes out for every aviation accident to provide their uneducated and often embarrassingly wrong takes on aviation in general. Even I refrain, and I'm more qualified than many! *: I'm a baby pilot. I flew for ~10 years, acquired around 2,000 hours. 1,000 of my hours were in a jet. I've flown to nearly every state in every season. Despite all that, I'm still wildly unqualified to make any sort of conclusions about most topics on here. So I don't. And yet, there are many who are simply passengers with zero hours logged whatsoever (or, non-A&P or even ground crew!) making grand claims about how aviation works, what regulatory bodies should/shouldn't do, pilot qualification judgements, etc. Gross.
Show more
A quick note. On both Linux and macOS, libghostty already processes data faster than the kernel can supply it over a pty fd. Ghostty is literally the floor of how fast `cat` can get (over plain text). So the plain ASCII/Unicode improvements here do NOT translate to visible `cat` speed differences. The speedups aren't for nothing though: they are visible in real-world mixed-data throughput because some sequences still can't be processed faster than a kernel read, so if libghostty is e.g. stalled handling some slow OSC, we'll catch back up much faster when we hit plain text runs. Also, for non-pty reads such as direct files or direct from memory, e.g. on stored or generated output, libghostty can process this data according to the speed increases shown below. I've enjoyed the `cat` benchmark for a long time, but I am sad to say its done. We've finished it. It can't get any faster without kernel changes.
Show more
libghostty has always been fast, but it's also been getting significantly faster. Here are IO throughput measurements comparing Ghostty 1.3.1, 1.4.0, and main as of this morning. We'll be backporting most of these to a 1.4.1 release soon. Here are some highlights of the changes since 1.4: - Ghostty 1.4 had a fast-path for printing runs of plain text. But the fast-path only applied to limited cases. We now support mixed width characters and hyperlinks in the fast path. - Our input path always widened the pty data to codepoints (8-bit to 32-bit) as part of UTF-8 decode, which also incurred a memory copy. We now have a SIMD fast path to detect pure-ASCII and we process the run direct from the read buffer (no copy, narrower data). - New memory pages use most recent two pages actual utilization to pre-size themselves accordingly. This sped up styles, hyperlinks etc. - When a VM page runs out of capacity for a certain type of data (e.g. hyperlinks, styles), we now project the usage so far to guess what you'll need, then shrink available rows to avoid a realloc. Before we'd naively double. This caused a classic "laddering" problem. - We recognized "erase" being a slow path for us, and it's a common sequence, so we use another bit in row headers to track blank (we had space). - Styles are now processed once per SGR. Previously, a sequence like "ESC[1;38;2;r;g;bm" would apply each style as it came in (1, then 38, then 2, etc.). We now apply all attributes at once and write to the cursor atomically. - Styles are now packed into 128-bit values and use aarch64 and x86_64-specific assembly for minimizing instructions to use it. - On x86_64, we found that LLVM was lowering some row resets (hot path) to a 4-byte store followed by an 8-byte load which couldn't be store-forwarded. This caused an almost 10% (!!!) slowdown on scroll operations only on x86_64. The fix was to change our reset to build the full header in a register then do a single memmove per row. Net results are what you see in the graph, but written out main to 1.4: ASCII 1.5x, heavy styling 1.5x, styled Unicode 1.8x, random UTF-8 1.4x, random OSC 8 2.7x, mixed styled text with links 4.8x, cursor/erase 16x, hyperlink-dense text 5.6x.
Show more
0
53
1.4K
32
Forward to community
libghostty has always been fast, but it's also been getting significantly faster. Here are IO throughput measurements comparing Ghostty 1.3.1, 1.4.0, and main as of this morning. We'll be backporting most of these to a 1.4.1 release soon. Here are some highlights of the changes since 1.4: - Ghostty 1.4 had a fast-path for printing runs of plain text. But the fast-path only applied to limited cases. We now support mixed width characters and hyperlinks in the fast path. - Our input path always widened the pty data to codepoints (8-bit to 32-bit) as part of UTF-8 decode, which also incurred a memory copy. We now have a SIMD fast path to detect pure-ASCII and we process the run direct from the read buffer (no copy, narrower data). - New memory pages use most recent two pages actual utilization to pre-size themselves accordingly. This sped up styles, hyperlinks etc. - When a VM page runs out of capacity for a certain type of data (e.g. hyperlinks, styles), we now project the usage so far to guess what you'll need, then shrink available rows to avoid a realloc. Before we'd naively double. This caused a classic "laddering" problem. - We recognized "erase" being a slow path for us, and it's a common sequence, so we use another bit in row headers to track blank (we had space). - Styles are now processed once per SGR. Previously, a sequence like "ESC[1;38;2;r;g;bm" would apply each style as it came in (1, then 38, then 2, etc.). We now apply all attributes at once and write to the cursor atomically. - Styles are now packed into 128-bit values and use aarch64 and x86_64-specific assembly for minimizing instructions to use it. - On x86_64, we found that LLVM was lowering some row resets (hot path) to a 4-byte store followed by an 8-byte load which couldn't be store-forwarded. This caused an almost 10% (!!!) slowdown on scroll operations only on x86_64. The fix was to change our reset to build the full header in a register then do a single memmove per row. Net results are what you see in the graph, but written out main to 1.4: ASCII 1.5x, heavy styling 1.5x, styled Unicode 1.8x, random UTF-8 1.4x, random OSC 8 2.7x, mixed styled text with links 4.8x, cursor/erase 16x, hyperlink-dense text 5.6x.
Show more
If you're looking for some entertainment today, I present this Lobsters thread without any additional commentary. 🤭
0
147
2.1K
44
Forward to community
A quick demo of floating panes in Rex, some of their features, and how I use them in my daily workflow. I think our implementation of floating panes looks great and feels great and I think you'll love it! These are also all scriptable and API driven, too, of course!
Show more
0
151
2.8K
86
Forward to community
Termius on iOS and Android now powered by libghostty. The most popular (or close to) mobile terminal! Looks great.
Big upgrade for our iOS and Android terminals! Termius mobile terminals are now powered by libghostty: faster rendering, buttery-smooth scrolling, and crisp text that looks great on any screen. Update your app and feel the difference.
Show more
0
81
2.4K
65
Forward to community
Latest updates on Rex beta rollout: - I'll have a formal update next week (blog post). - We've invited 12,000 more this week. - We've fully opened iOS testing to everyone invited - Server (Linux + FreeBSD) testing is up to ~2,000 and we're going to open that up to everyone invited soon. - We're just shy of 50% through out full waitlist, but we're now inviting thousands every day and growing and this should clear quickly.
Show more
0
126
1.4K
25
Forward to community
Siri is still bad, like really really bad. I opened an email with my Uber Eats confirmation, there was a live activity on the screen with progress, and I pulled down and asked Siri "what did I order for lunch?" And it thought for like 2 minutes and then said it doesn't know. 🤦‍♂️ Okay so the harness and models are clearly bad. Well, then next I opened up the Siri GUI app on macOS and HOLY. It's the worst looking, beginner, basic bitch app I've ever seen. Did someone spend more than 5 minutes on this? Whoever worked on this app along with the full chain of people who checked off on this needs to be terminated immediately. This is 0/10 terrible software, so embarrassed for Apple to ship this.
Show more
0
222
2.9K
106
Forward to community
Libghostty progress in the past 6 months. It's amazing that NOTHING IN THIS LIST was true 6 months ago, and now its ALL VERY REAL. I remember bringing up the idea of libghostty 4 years ago and most people saying "but why." I did it anyways. And here we are! Text reproduced in case its easier to read this way: As a reminder, libghostty is the highly portable, embeddable library that provides core terminal emulation, render state, and more. I always felt that a free, high qualty, lightweight, reusable terminal emulation core would benefit the developer world more than any single GUI application. And that is playing out! It is and always was my true purpose with the Ghostty project (I said this in my first ever talk about Ghostty!). I've jokingly said many times that Ghostty GUI is just a glorified tech demo for libghostty. That's not fair though, because GUI is great and there are really talented people working on it. Since I started the project, Ghostty has always gotten people saying "I don't understand why you'd start a terminal emulator today." Well, the answer is libghostty. It's truly unique and its enabling something special (imo!). Highlights of libghostty since 6 months ago (none of the below was true 6 months ago): - Libghostty has nearly 100% coverage of all of Ghostty's core (and you can compile with flags to remove any of these features for size/safety): - Libghostty now builds and is tested (in CI) for: Apple (macOS, iOS, visionOS), Windows (MSVC and GNU), Linux, FreeBSD, Android, WebAssembly, and freestanding (i.e. direct on hardware with no OS). - Libghostty has bindings in pretty much every popular programming language: C, Zig, Go, Swift, Python, Rust, .NET, etc. - Libghostty's memory requirements have dramatically shrunk to enable the portability above. There's still work to do but a single empty terminal now takes 90% less memory. And at scale I've proven 10,000 active (input/output happening) terminals on a Linux server with 4 cores and 8 GB of RAM. - Libghostty powers all JetBrains IDE terminals, over 12.5 million active users. - Libghostty is the most popular core behind the wave of venture-backed "agentic" terminals and editors, such as Herdr, cmux, and many others. - Libghostty is being discussed and has been verbally accepted to replace the terminal core in Neovim: (work still to be done) - Libghostty powers a really popular and powerful terminal emulator for emacs (Ghostel): - Libghostty's speed is used by Antithesis to fuzz popular terminal programs and has directly led to hundreds of bug fixes sent upstream to programs such as tmux, btop, shells, and other terminal emulators. :) - And so much more: Libghostty is really successfully turning into the tide that raises all boats. As it becomes more popular, Ghostty itself gets more performant and stable, and so does everyone else. It is also a vehicle for delivering modern terminal emulation to the widest source possible. I plan on tagging libghostty 1.0 in the next few months and declaring ABI stability at that point!
Show more
0
72
1.7K
76
Forward to community
Ghostty 1.4 is now out! Full Kitty graphics with animation (the first terminal besides Kitty to do it), scrollback compression for much lower memory usage, macOS 27 support, a new OpenGL renderer on Linux, ghostty +ssh, big performance gains, and hundreds more changes. The highlights: - Scrollback compression: scrollback compresses ~90+% on average, meaning your terminals use that much less live memory - Huge memory savings across the board: no single large thing, just lots of good improvements lowers memory usage everywhere, netting anywhere from 50 to 90% less memory usage depending on workload - Kitty graphics is now 100% complete, including animation and relative placements, after a full conformance pass against the spec and Kitty itself - The Kitty clipboard protocol, with an image preview when a program asks to read your clipboard - Split drag and drop on Linux, including between windows - ghostty +ssh installs terminfo on remote hosts automatically, so things just work over SSH - Lots of terminal emulation accuracy fixes This release is 7 months of work from 172 contributors over 2,889 commits. It also fixes 10 security advisories, so please update. Full release notes:
Show more
0
133
5K
342
Forward to community
JetBrains IDEs are now powered by libghostty! This brings huge feature and performance improvements to JB terminals! Based on their own annual reports, that's over 12.5 million active users across all platforms about to get a libghostty-powered terminal. I'll repeat myself: libghostty is and was always the primary goal of the Ghostty project (I said this in the first public talk I ever gave about Ghostty). The importance and impact of a free, liberally licensed, high quality terminal emulator library that runs anywhere and everywhere dwarfs any single terminal emulator application on its own. I've estimated Ghostty's (GUI, not libghostty) own users at around a couple million. Overnight, 6x that are using a libghostty-powered terminal. From one integration. Happy to see this, happy to hear JetBrains had a positive experience, and looking forward to continuing to improve and ship a stable libghostty tag soon!
Show more
0
99
3.3K
162
Forward to community
This was fun to do! Rex now supports Kitty graphics protocol even for remote servers, including local files (on the remote!). The way this works is we intercept the file-based Kitty instructions and rewrite them to remote clients via in-band chunking. That's cool on its own but whats extra cool is we do it with a < 1% IO impact on everything else. This was a challenge and it required changes in libghostty too (that everyone can take advantage of). Neat stuff. In the screenshot below, the image file is being loaded from a local file on my Mac Studio, but I'm connected from a different location via my MacBook Pro.
Show more
Walked into an Apple Store at 830 and walked out with a Duo in less than an hour. Now to make Rex really great on this with @almonk
To explain the level of dedication we have to creating an exceptional iOS experience: @almonk made exact-size cardboard cutouts of the iPhone Duo in various shapes and carried it around London method acting how he'd use Rex to try to design the best thing we could without access to the real device.
Show more
Greatest splash screen animation of all time by the way.
The Rex iOS app testing program started today with external testers and includes dedicated iPad and Duo support. Lots of polish to go on this one, but excited to get this in the App Store soon (free).
Show more
The Rex iOS app testing program started today with external testers and includes dedicated iPad and Duo support. Lots of polish to go on this one, but excited to get this in the App Store soon (free).
Show more
0
80
1.5K
31
Forward to community