Co-founder of @Superlogical. Creator of Ghostty. šŸ‘» Prev founded @HashiCorp, created Vagrant, Terraform, Vault, and others.

Los Angeles, CA
We've had this feature for less than 24 hours in our nightly releases and I already can't imagine working without it.
I love the idea of complementing the user's shell. Augmenting their experience rather than attempting to hijack it. Our latest experiment allow you to insert a path to ✨anything, anywhere✨ with instant fuzzy matching as well as traditional path navigation. As useful for your `cat` as your `claude`.
38
6
973
103,271
I’ve been building a new home office (plus other things of course) for 4 years and it’s finally almost complete! Missing lots of details still that’ll take a few more weeks, but truly can’t wait to work out of here every day. The desk and coffee table are completely custom. The desk is a convertible standing desk. The coffee table is actually a convertible desk (you can lift half its top out and it becomes sitting desk height). The sliding glass on the other side fully pockets so I can have a fully open office. It faces west so it gets the ocean breeze. The millwork includes a drawer dishwasher, a full espresso machine, fridge and more. Coffee and tea within easy access. Lots of work and care to make the HVAC, speakers, lights, networking, outlets, etc as hidden as possible or reasonable. From the other side we have a totally outdoor hallway (CA baby) with a sitting area overlooking some trees (cushion still being made so it’s just bare atm). Dream office. Almost complete.
185
9
3,312
348,529
Software should be fun. It should make you feel something, positive hopefully. Utilitarian software is the worst. The human experience is why life is worth living (even for something as teeny tiny as a terminal).
importing your ghostty config to @superlogical is a moment to celebrate, right?
85
100
3,072
173,096
Terminal programs bias to dark modes and explicit colors are hostile to light modes and themes. We now detect programs when they request colors too out of whack from your theme, apply some Oklab magic and hue rotation to match your theme. Harmonious themes, everywhere, always.
Have some fun stuff to share for fellow light mode terminal lovers: we call it Automatic Contrast Correction. Users of light themes will have felt my pain. Developers have generally designed text interfaces for dark mode terminals. There are many examples in the tui apps I use everyday: `lsd`, `btop` (with theme bg off), even my beloved `lazygit` has some suss legibility out the box. The issues are so bad, I generally switch to a dark theme to read stuff. Automatic Contrast Correction fixes this issue by evaluating contrast at runtime between whats being sent from the server to the macOS client versus the theme mode the user is running. Our correction pipeline finds low contrast foreground/background combinations, does some oklab magic, hue rotation towards theme-colors, contrast checking and produces an end result of theme-harmonious, perfectly WCAG-approved legible text. All this happens in nanoseconds and is then cached for performance. It's built right into the @superlogical client. (Screenshots above show ACC off and on)
56
24
1,599
103,829
Designers, your job is safe from AI.
126
48
2,796
256,357
The "whiteboard defense:" I should be able to pull you aside at any moment and ask you to explain any customer-facing system you've shipped. You should be able to clearly explain how it works and defend the decisions you made. This is my benchmark for responsible AI usage. I don't expect line-level familiarity with the code. I don't care if you remember the exact function name or implementation detail. You may not even know it. I don't care. But if I ask "why did you do X instead of Y?", "what happens if this actor behaves maliciously?", "what data structure did you use here and why?", or "where does this fail?" you should be able to answer confidently. For PoCs, demos, experiments, whatever: I don't care. Generate 100% of it and understand none of it. Speed over quality every time in those specific scenarios. But if you're shipping customer-facing work, you can't be shipping things you don't understand at a high level.
229
964
9,206
472,205
After all, why shouldn't we [ab]use the CLI to recreate 2048 in the Superlogical multiplexer? Amazing work by a tester, not by me. The final boss will be getting DOOM running where every pixel is its own terminal. Software should be fun.
43
23
1,536
70,866
New week new demo! Today I want to showcase the CLI to control the @superlogical multiplexer. The CLI is an extremely powerful tool for automation and hooking into other tools like editors, agentic coding tools, and more. And, it's super fun! Everything you can do in the GUI, you can do via the CLI. Actually, you can do more in the CLI. You can create sessions, run commands, make splits, move things around, change focus, simulate any input device (key/mouse/etc.), wait on scripts, and more. There are a couple unique parts of Rex I'm showing off here too: our streaming event system that any client can hook into (or script). And the terminal-specific API to retrieve information like a JSON object of the running process. I hope this demo lets your imagination run free of where you might slot something like this into your existing tools.
123
66
1,814
200,017
I've never had a case on any iPhone, I've never cracked a screen or broken the phone. People used to say "oh wait until you have kids." Well, I have a couple now, and one is 3. No problems, clearly a skill issue. No cases for me, using the device as it was intended by design.
464
78
3,866
249,028
I can’t stress enough how little an idea matters compared to the agency of the people executing the idea. I have had the privilege of knowing and sometimes even working with some of the most successful people (by various metrics). The difference between mediocre and excellent work and outcomes is predominantly one of agency. In practice this means: they dont wait for things to happen to them they go out and make things happen for them. They don’t wait for someone else to do something, for someone to teach them, for someone to give them the path, etc. They just go out and find a way to do it. I think the single biggest superpower these people have is the realization/belief that the world around them is completely mutable. Most everything that happens is because a person made it happen. I used to tell people to look around the room you’re sitting in. Look at everything. Every noun. It almost all exists because a person willed it into existence. Nothing is stopping you from doing the same. I see people online all the time dismissing someone else’s success because ā€œI had that idea firstā€ or whatever. I mean… yeah? If so then the difference is… you. So a bit of a self own whenever I hear that. Number one tip: act with agency.
228
1,278
11,853
681,620
This is so fluid that I switch my theme every day depending on vibes. Today I'm rocking Petrol Lagoon. We usually share what our daily fit is in Discord. šŸ’…
i think we're all really particular about our terminal environment. we're building the @superlogical clients to have beautiful defaults but also quite a few levels of customisation. this ranges from full liquid glass embrace to totally solid system palettes, through to our 41 custom themes which tint the entire application. we also have two modes of density: our "islands" for terminals (comfortable mode) and a more traditional single pixel border (compact mode).
39
4
748
83,114
A quick look into remote persistent sessions with Superlogical! Not just remote sessions, but some functionality like remote directory lists, too. Superlogical can actually be a full SSH replacement (I don't run SSH on my servers anymore), and I talk about that briefly, too.
146
90
2,459
194,031
We now have automated half-bounce analysis created by @infomiho! Paste an X post with a screen recording and it'll automatically analyze the frames, screenshot them, and produce a report for you. Example: bounce-lab.miho.dev/?job=1cd… Very cool!
34
15
763
62,353
Guess which one is Rust btw. 🤣 (The point is the language isn't a free lunch for performance. Rust could be just as small as any other here. It isn't a given. Fundamentals and system design trump everything else. Language wars are stupid as hell.)
The Superlogical server is built to run anywhere and everywhere and serve a level of scale (terminals+clients) unmatched w/ prior solutions. So let's start talking about that, starting with memory usage and comparisons to other popular multiplexers. I want to start by talking high level: why does terminal/client scale matter? This matters because we're seeing unprecedented terminal usage and client attachment mainly due to AI. They like to spawn more sessions than we've ever seen, and they are all their own clients. So we have to optimize it. Even if you don't use AI/agents, this just makes the software better for humans, too. Okay, onto the results. First thing to notice is that while tmux's empty states are excellent, Superlogical makes it up at scale and there is an early breakpoint with busy terminals and clients where we use significantly less memory than tmux or anyone else. Zellij simply does very poorly. There is no other way to put it. Its default out of the box empty footprint is high. And its per-client attachment is simply unscalable. It was clearly meant in its current form for smal single-human low-terminal-count scale. The per-client attachment for Zellij was so unbelievable I had to dig into why. Out of the box (zero config) Zellij has a tab bar and status bar plugin. These are wasm-plugins and each tab gets an instantiation. Each instantiation is its own wasm runtime. Huge memory explosion. I also noticed the memory was never reclaimed when I closed the tabs (even when waiting for minutes for memory to settle) but didn't dig into that more. Anyways, credit where credit is due tmux has excellent memory usage for empty states. The tmux project has always been great and they've been really receptive to the bugs I've found via Ghostty or the protocols we've championed. Much respect. I'm going to talk more about how we achieve this in a follow-up video.
57
29
1,383
194,296
Beware people obsessed with outcomes instead of building outcome machines. Its worse than ever with AI, but these people existed before. Short term results above all else, etc. Don't fall into the trap. Invest in building strong fundamentals, invisible supports, and outcomes flow like water. An outcome machine.
115
552
6,338
271,784
A video explaining a handful of the tricks we use to optimize for memory within the Superlogical server: in-memory compression, moving file descriptors between event-driven and blocked threads dynamically, full terminal state binary snapshot/restore in microseconds, and more!
41
54
1,671
89,640
The Superlogical server is built to run anywhere and everywhere and serve a level of scale (terminals+clients) unmatched w/ prior solutions. So let's start talking about that, starting with memory usage and comparisons to other popular multiplexers. I want to start by talking high level: why does terminal/client scale matter? This matters because we're seeing unprecedented terminal usage and client attachment mainly due to AI. They like to spawn more sessions than we've ever seen, and they are all their own clients. So we have to optimize it. Even if you don't use AI/agents, this just makes the software better for humans, too. Okay, onto the results. First thing to notice is that while tmux's empty states are excellent, Superlogical makes it up at scale and there is an early breakpoint with busy terminals and clients where we use significantly less memory than tmux or anyone else. Zellij simply does very poorly. There is no other way to put it. Its default out of the box empty footprint is high. And its per-client attachment is simply unscalable. It was clearly meant in its current form for smal single-human low-terminal-count scale. The per-client attachment for Zellij was so unbelievable I had to dig into why. Out of the box (zero config) Zellij has a tab bar and status bar plugin. These are wasm-plugins and each tab gets an instantiation. Each instantiation is its own wasm runtime. Huge memory explosion. I also noticed the memory was never reclaimed when I closed the tabs (even when waiting for minutes for memory to settle) but didn't dig into that more. Anyways, credit where credit is due tmux has excellent memory usage for empty states. The tmux project has always been great and they've been really receptive to the bugs I've found via Ghostty or the protocols we've championed. Much respect. I'm going to talk more about how we achieve this in a follow-up video.
66
40
1,278
312,215
To show how much I care about performance, I just ordered the worst specced 2020 Intel MacBook Air I could find (i3, 1.1 GHz, 8 GB RAM). It is the last supported hardware for macOS 15, our min target for Superlogical. Going to optimize on it for worst-case behavior.
132
71
4,891
418,463
libghostty-vt running freestanding on a device with a 240 MHz CPU, 4 MB flash storage, and 520KB SRAM. šŸ˜Ž
Got bored at work and made libghostty-vt run on an ESP32 with an e-ink display. Now upstreaming the freestanding support so libghostty-vt can run on all your tiny devices!
21
24
992
101,166