1,388 karma · joined March 30, 2021
https://x.com/lawrencecchen
lawrence@cmux.com
My cmux has been running with 136 workspaces and 218 terminals, and has been hovering around 5.7 GB. Granted, the theoretical RAM minimum for this number of terminals is around 1-1.5 GB before real scrollback, so we definitely have more work to do.
https://sf.isopolis.city/dev.html
> The source is Google Photorealistic 3D Tiles. Isometric.nyc explored and rejected the use of 3d building data. It is pretty insane that US gov has free LIDAR data for every city in the US available to the public. I spent <30mins exploring this and stuck to google 3d images. Claude Code whipped up a scraper to stream the 3D Tiles and render with three.js. This gives the best "real" texture base for the model to learn from. Anything else would involve a LOT of manual work to get the inputs right.
> Now that we have the 3D tiles, we need to generate the ground truth pairs for training! Similar to isometric.nyc, I generated a few ghibli-style pixel-art images using Google's Nano Banana. SF terrain is very interesting. There are quite a few distinct features like skyscrapers in FiDi, the hills in the southeast, 2 iconic bridges, lots of coastline, piers, parks, suburban grids and lots of water. I generated a ton of images and curated from them. Getting consistent style was a challenge. There was a LOT of manual trial and error. But as usual, Claude Code added this feature to the dev app that allowed me to select the best images and approve them.
https://iterm2.com/3.0/documentation-preferences.html#:~:tex...
Would greatly appreciate it!
> hotkey overrides - I have some things explicitly unmapped / remapped in my ghostty config that conflict with some cmux keybindings and weren't respected
We need to be better about this; right now you can modify keyboard shorcuts with cmd+, in the GUI. Planning on making it a config file in the spirit of ghostty though, not sure if we want to reuse ghostty's config file though since it might become a maintenance burden for them...
> command palette (cmd-shift-p) for less-often-used actions + discoverability
yes
> cmd-z to "zoom in" to a pane is enormously useful imo
Thinking of the right way to design this. Like hypothetically we can expand it, but what happens if you make a vertical/horizontal split, or cmd+t to make a new tab? I guess we could just "merge" it back into the original space which would be pretty cool.
So you can make your own script that can make new panels/workspaces and just invoke it from the terminal:
git worktree add -b my-branch ../repo-my-branch
ws=$(cmux new-workspace 2>&1 | awk '{print $2}')
cmux send --workspace "$ws" "cd ../repo-my-branch && claude"
cmux send-key --workspace "$ws" Enter
I think we should make this easier though, open to suggestions!The latest release (0.57.0) should fix it.
Also want some feedback on how we should implement it. Could make it a CLI command that opens a new vertical tab/workspace:
cmux ssh <host>
Or maybe a configurable dropdown next to the plus button.Curious why you aren't using Claude Code's stop/notification hook
> Separate Chrome profiles per agent is the brute-force fix, but it's expensive. The better pattern is treating browser access as a serialized resource — one agent gets it at a time, with the others queued.
Ports could also be another serialized resource. Another direction we're exploring is to give agents VMs that have Chrome + VNC preinstalled [1]. Prompting Claude to use Docker also goes a long way there.
cmux notify --title "Claude Code" --subtitle "Waiting" --body "Agent needs input"
And afaik, both Gemini/Kiro should have stop hooks. If they send OSC notifications, then notifications will "just work" as well.Currently they share browser context. Adding isolated profiles is a good idea. Do you often use multiple agents in a single project and have them both work on different pages? I personally use multiple checkouts, and the problem for me is that agents working in the same project want to spin up the same dev server. And the dev servers will conflict unless I make different instances of the same project listen in their own port ranges (perhaps via a PORT env var).
We want to solve the latter by bringing better SSH support where the WebView will proxy directly to a remote machine or Docker container, so different workspaces in the vertical tabs can talk to their corresponding dev servers. But I want to hear more about your use case.
Want to fix this, how do I reproduce? Select with mouse and cmd+c seems to work for me.