I kinda like tmux. A terminal multiplexer. Hell yeah. What it does, anyway. Less so how it looks or works. đŹ
Toss a little tmuxinator on there and now the config is a tolerable incantation of yaml.
tmuxinator start codepenCode language: Bash (bash)(Or, probably, some shell script that sets things up and then calls that command.)
Away we go! The chances of a large modern project getting away with just npm run dev is slim. Chances are, you need lots of terminal stuff going on. Your web server over here, a build process over there, another different build process there in the corner, some legacy system needs to spin up, yadda yadda.
You canât tell your developers âJust run these 12 commands, in order, oh and make sure #5 is fully spun up before you run #6, all in separate terminal tabs, and thatâs your dev environmentâ. So, smash all the commands under one roof with a little config programming, and bingo-bango weâve got a system that scales out to a team.
But why does it have to be so ugly? đ

It just does have to be ugly, I guess. It has to emulate multiple terminal windows/tabs with ASCII. Itâs impressive that it can pull it off, really. And, crucially, it doesnât matter what terminal software anybody uses. The UI is built into the output of a single terminal.
Whatâs a shame is that many terminals already support the concept of tabs and split views. Itâs very natural in iTerm, a favorite of many:

Itâs probably way too tall of an order, but maybe terminals could detect a tmux situation and convert the UI into a native UI situation? Yeah? Good? Ship it.
Anyway I was just thinking about this because I was daydreaming in Figma the other day about what I wish our own little tmux setup looked like.

Update: Holy Buckets iTerm Does Have Native Support!
By adding -CC to the tmux invocation, and changing a tmus setting to âTabs in the attaching windowâ, I get all my tmux tabs as native tabs and splits as native splits.

Never did I think that was going to happen. Impressed!
Related
ncG1vNJzZmibmKe2tK%2FOsqCeql6jsrV7kWlpbGdgaHxygo6iZLCho516tbnUsWSlp5%2BgsqV5xqimnWc%3D