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.
154 Following    229.7K Followers
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).
Show more
importing your ghostty config to @superlogical is a moment to celebrate, right?
0
69
2.6K
78
Forward to community
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.
Show more
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)
Show more
0
53
1.6K
24
Forward to community
Designers, your job is safe from AI.
0
126
2.8K
48
Forward to community
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.
Show more
0
221
8.9K
904
Forward to community
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.
Show more
0
43
1.5K
23
Forward to community
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.
Show more
0
122
1.8K
66
Forward to community
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.
Show more
0
466
3.8K
78
Forward to community
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.
Show more
0
228
11.8K
1.3K
Forward to community
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).
Show more
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.
Show more
0
147
2.5K
90
Forward to community
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: Very cool!
Show more
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.)
Show more
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.
Show more
0
57
1.4K
29
Forward to community
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.
Show more
0
115
6.3K
552
Forward to community
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!
Show more
0
41
1.7K
54
Forward to community
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.
Show more
0
67
1.3K
40
Forward to community
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.
Show more
0
132
4.9K
71
Forward to community
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!
I love how many people are attaching to the "half-bounch" startup time metric. I used to do paid macOS dev ~20 years ago and most macOS devs I knew then used the bounce metric! Back then multiple bounces was the norm due to HDDs. One bounce really wasn't possible until SSDs. We've lost this obsession and its time to bring it back.
Show more
I can't tell you the number of people over my career that have said "I tried learning tmux" First problem: the fact you have to "learn it" at all. The world's best multiplexer is the one you don't have to learn. It just works. That's what we're building (and then some 😜).
Show more
0
96
1.6K
24
Forward to community
Quick Superlogical demo to end the week. This demo is just of the basic functionality, but I want to highlight just how FAST it is. There's a WHOLE lot more functionality already present and coming but I wanted to keep the demo short. But seriously, check out that speed. I'm showing the macOS app here and I get asked a lot so let me just say up front: its not macOS only. We're still figuring out exactly what platforms will be stable enough for the initial public release, but we're working on others. In particular, the web interface is very functional but I'll demo that another time (or someone else will). This is also all showing off the architecture I previously talked about for terminal multiplexing which is significantly different from other mainstream multiplexers: this is all a custom binary protocol where the server is maintaining N replica distributed terminal state machines. It works! Tons of hard work going into this by the team @almonk @dizzyup @pearkes. Hope we can bring you something you can use soon. ❤️ Happy to answer questions in the replies.
Show more
0
403
7.8K
349
Forward to community