
Co-founder of @Superlogical. Creator of Ghostty. 👻 Prev founded @HashiCorp, created Vagrant, Terraform, Vault, and others.
Los Angeles, CA
Joined January 2008
- Tweets41.1K
- Following158
- Followers234K
- Likes23
We invited 5,000 more people to the Rex macOS beta today, about 7,500 so far this week. Last week we only invited ~2500 in TOTAL. We're ramping up quickly. We've now invited ~15% of our total waitlist. We also started the Linux server testing program today with 100 people.
The latest Rex preview release includes a very important subsystem I've been working on for weeks to enable full forwards+backwards API compatibility with clients and servers. This was gating the Linux test program and massively opening up the Mac test program.
We just invited another 1,000 (to Mac) and if it goes well this will step up considerably this week. The Linux test program will likely start this week (separate invite waves amongst existing testers).
The API compatibility system is super cool. At a high level:
Every API change is a rule on a JSON pointer (RFC 6901).
For each message, we compile all the rules between your version and ours into a trie keyed by JSON path tokens. This happens lazily since we don't want a full quadratic explosion (a message with N revisions has N possible chains of length 1 to N). We don't want to build N^2/2 trie nodes when most WON'T be visited.
Next, we wrote a custom recursive descent streaming JSON editor (forward-pass only). If a key doesn't match any subtree in the trie, we fast-path copy the full value onto the wire (nothing in it can possibly matter for compatibility).
Equal chains of changes are interned to the same pointer, so when we broadcast an event to many old clients, we translate it once per distinct chain, not once per client.
The result of all this plus some other work is that we simulated various shapes of 10,000 long revision chains (note: we're on revision 4 at the moment...) with pathological changes of various shapes and an upgrade costs about 35 _microseconds_ on a 20KB JSON body.
I genuinely hate the marketing trend right now of companies making AI generated videos with their branding/people in it around every single new pop culture or world event. I think its tacky, low effort, and it doesn't look that good at all.
Last week we invited 250 people to the Rex beta. This week we invited around 2,000 and we just started another 1,000 person wave (in order of the newsletter signup). There is still almost 50,000 people waiting. As we continue to prove stability, wave size will increase. Soon!
Rex beta testers are figuring it out. 😍 You can also do stuff like "rerun the benchmarks I did last night on my Mac Studio, but run them on Jack's Mac instead, then bring both results to my local Mac to compare." And it does what you'd expect.
We actually aren't running evals on this stuff yet, but plan to. We want to make sure that all harnesses/models out there can be productive with Rex in as little turns as possible and do what you want them to do.
Its amazing seeing so many different pieces of software copying the visual style of Superlogical (at highly varying degrees of quality lol). It's a really good sign we're directionally doing the right thing, since generally speaking only really good patterns get copied widely.
OSC7501 adoption updates: Kitty implements and displays in the tab title. Grok Build shipped support and Codex merged. In less than a week I think we're nearly at a place where the entire industry can drop their heuristics and get deterministic status updates.
First build of the Rex iOS app is now submitted for review. We plan on expanding testing to also include iOS as soon as we get through Apple's review. We're still polishing and will share demos soon. Employees have been using the iOS app for months now.
Like all our clients, the iOS app is a 100% native iOS application with painstakingly crafted flows, UI components, and system integration. It feels great.
Coming soon.
Powered by OSC7501! The implementation seems obvious, but @almonk went into the dungeon for weeks toiling over TINY details around when exactly to show different UI states and it feels amazing.
Everyone at Superlogical all agreed we've never used any activity inbox in any context before because they're all too noisy or degrade to "email but worse" (e.g. GitHub notifications). So our benchmark was: can we build an activity inbox that we actually use?
Like I said, on the surface I think this visually looks unsurprising, but its not as simple as "program has activity lets show an attention icon." Lots of heuristics and other signals as input to decide what exactly to show when.
This is also the first task in the 4 months of Superlogical existening that I've seen Al say "this is hard." The man was sweating over this one.
SO FAR, this one is passing the test and testers so far seem very pleased. But we're still iterating hard.
New for Rex testers. 👁️ Activity Mode shows you active and idling processes and agents for quick context switching, and some extra metadata.
We're working our way slowly through the waitlist. Our priority is building quality software, so we're admitting testers in batches of 50 or 100 at the moment and addressing any feedback with the group before adding the next wave.
Whenever I talk about my kids sleep there's always so many people who think that I'm lying and never see my kids or have a nanny at night or something so I don't know. I present my 3yo's sleep data from Sept. The 5 month old is still feral but to be expected for a bit longer.
I'm not posting this to make other parents feel bad. I'm extremely lucky and thankful my kids sleep well. But its pretty annoying when people think I'm LARP-ing being a dad when I'm an extremely present father (for my first kid I took a whole 18 months off and was full time dad).
So here you go.
The parents will empathize here. My wife is out of town (but I would've been helping either way).
Last night at 10 PM my 3yo started screaming because she threw up. Full clothes, sheet replace, calm kid down, full bed cycle.
At the same time, our sump pump alarm goes off. Totally unrelated but horrifyingly loud and a pretty big home emergency.
I ended up having daughter chill on the couch for a second while I wrapped the alarm in duct tape to block the noise until I could diagnose later.
I couldn't just flip the breaker because that breaker is connected ONLY the kids room AC and we have a heat wave.
Once I got my kid down, started calling emergency plumbers because this happened once before and very shortly after raw sewage started coming up out of the ground. Luckily got it figured before that this time.
Ended up getting to bed at 1 AM. Have to wake up at 6 AM because that's when 5 month old gets up. Just another day on the wild rollercoaster of parenting with a fun dose of homeownership.
Claude Code v2.1.295 supports OSC 7501 (program status). Incredible speed @AnthropicAI supporting this protocol which will help hundreds or thousands of downstream applications! They had access to Rex and verified through Rex it works. 🥰
Been working hard on Rex server scalability. In short: we were able to run 10,000 active terminals simultaneously with 3.8 GB memory usage while maintaining responsiveness. We didn't try more yet, we want to improve some numbers before going bigger, but the goal is 100,000.
This wasn't free and to get to this point required a lot of very fun engineering challenges! Here are just a couple:
- Linux fork preallocates enough fd table space for the highest open fd at fork time to the nearest power of 2. For terminals beyond ~5000, that was 512KB per terminal process JUST for a fd table that had ~4 fds. We now use a trampoline written in C to unshare the fd table so it shrinks back down to fitting the minimum fds.
- We previously kept all active (non-snapshot) terminals blocked on pty read, but that takes up an OS thread which at this scale uses a prohibitively high amount of RAM. We now move all quiet pty fds (2 seconds without read activity) to a shared epoll thread.
I didn't compare to any other multiplexers at this time. I'm not particularly interested at this state to have relative numbers against others, because the enemy I'm trying to beat is myself. We'll continue to improve these numbers, these are still alpha-quality builds.
I just called Chungus (my OpenAI Dot) on the phone while picking up mexican food and asked it to transfer some Rex benchmarks from last night on my Mac Studio to my MacBook Pro via Tailscale and I just got to my desk and there they are. What a fucking time to be alive.
The status of the program status specification I shared yesterday in alphabetical order: integrated in Amp, Factoryai, TUIOS, libghostty. Verbal support and in-progress PRs by Claude Code, cmux, Codex, Herdr, OpenCode, Pi. Requests in to many others. Not bad for 24 hours!
An uncomfortable truth for a lot of people is that a lot of the most successful people in any industry are wicked smart. We apply stereotypes based on the loudest people, but its not representative of norms. Most are crazy smart and got to where they are because of it.
I grew up in LA, one of my parents was a TV producer, my wife was an actor, many friends "in the industry." I've been constantly surrounded by it, and some of the stupidest seeming people (cause its their bit) are actually insanely smart and strategic in private. It sometimes is just beneficial for various reasons to... not show that side of you.
My favorite anecdote was when a friend (a model) was dating a phD in physics and a very rude person made some off the cuff degrading comment to model friend about it without realizing model friend has their own phD in math lol. You wouldn't know from their instagram though!
For the quoted video, I don't know Ben Affleck. I don't know how deep his knowledge goes. He's almost certainly not going to be more knowledgable than someone who professionally does this area of work full time, but he also to me on the surface sounds like someone who knows a LOT more than the average person and possibly even the average software engineer (on this topic).
Anyways, this applies to tech too. I see it constantly.
Ben Affleck reveals he writes Python, understands convolutional neural networks, worked extensively with GPUs, and used his celebrity status to get private looks at Google and OpenAI’s video models
“I’ve always been kind of into computers since I was young. Then, when film started to move from analog film to digital, I became more interested in that aspect of it. The visual-effects workflow for many years has included machine learning, so I can write pretty shitty Python scripts and stuff like that.
“With convolutional neural networks, which were the precursors to what the transformer can do, which is much more computation simultaneously, you would do things like look at what’s called a tensor. That’s the numerical translation of a visual image in numbers, like the batch number, the frame number and the red, green and blue values of each pixel in each frame. It’s just that simple. That numeric is called a tensor.
“You’d use a convolutional neural network to identify patterns that reveal what’s called edge detection or feature extraction, which is identifying patterns well enough to know, this is where the window ledge is, so we can more easily take the green-screen image out and replace it with something.
“That was familiar to me early on because, prior to Artists Equity, I had a small visual-effects company. I’ve worked with GPUs a lot too. The visual-effects guys said, ‘Hey, you should see. There are a couple: Google and this other company, OpenAI, are doing really interesting stuff with transformers in video.’
“I’ve learned that I can actually just call up and go, ‘Hey, it’s Ben Affleck. Can I come see what you’re doing?’ Sometimes people say yes, to my astonishment.”
I've published a new, general-purpose terminal specification that gives any program a way to tell the terminal what it's doing: idle, working, waiting, finished, or failed, and why. It is easy to implement on both sides. I've written more about why: mitchellh.com/writing/progra…
The problem this solves is generic and applies in compelling ways to all sorts of use cases (e.g. package managers, build tools), but it really rears a hideous head when it comes to AI and the "agentic inbox" problem.
I found over 250 different agent orchestrators (with various goals) that all individually implement a heuristic based approach to detecting whether things like Claude Code are working, blocked, done, etc.
If you look at @herdrdev's commit history, you can see around 10 compatibility changes to detect Claude Code within just the past 3 months. (This isn't a dig at Herdr! They're doing great work with what they have, and everyone else is doing the same thing).
Heuristics are not the way. And over-indexing on agentic use cases isn't the way, because this problem is really interesting for other tools too: Homebrew, Terraform, Cargo, etc. etc.
Proprietary protocols and out of band APIs are not the way. They have an O(N) integration problem and require extra work to work over SSH or within local VMs/containers.
The program status specification (OSC 7501) solves this in a reliable, deterministic way that is general-purpose and can be easily adopted by the entire industry.
Read more: mitchellh.com/writing/progra…






