HNHacker News
TopNewBestAskShowJobs

lawrencechen

1,388 karma · joined March 30, 2021

https://cmux.com

https://x.com/lawrencecchen

lawrence@cmux.com

submissionscomments
lawrencechen··on Herdr is joining Y Combinator. The runtime stays open
Very curious about your cmux fork, any chance you could link the repo? (Maker of cmux here :))
lawrencechen··on Herdr is joining Y Combinator. The runtime stays open
Totally fair, maker of cmux here. We fixed many RAM usage issues (latest version is 0.64.22), and also added an activity monitor to see how much RAM/CPU coding agents are taking.

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.

lawrencechen··on Show HN: Isopolis – Isometric pixel map of SF
Behind the scenes stuff:

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.

lawrencechen··on Show HN: Rmux – A programmable terminal multiplexer with a Playwright-style SDK
I'm one of the creators of cmux. I'm moving a lot of my own dev work to Mac Minis, so I'm starting to feel quite a lot of the pain you mentioned... will try to make this better!
lawrencechen··on Launch HN: Freestyle – Sandboxes for Coding Agents
Can you develop freestyle in freestyle vms?
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Makes sense, added as issue: https://github.com/manaflow-ai/cmux/issues/205
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
iTerm2 has vertical tabs too

https://iterm2.com/3.0/documentation-preferences.html#:~:tex...

lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Could you file an issue with more details: https://github.com/manaflow-ai/cmux/issues

Would greatly appreciate it!

lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Should be fixed in latest release (0.58.0). Please let me know if it's still an issue!
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Thanks!
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Thanks for the feedback! Mitchell Hashimoto is awesome. Have a PR for fixing devtools here: https://github.com/manaflow-ai/cmux/pull/117

> 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.

lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Should be in latest release!
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
We're working on a tmux/it2 compatibility layer to make this happen!
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
No built in way to override new-pane actions right now, but `cmux --help` can automate all parts of cmux.

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!
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
zmx solves persistence well, and I like their minimalism (not supporting windows, tabs, or splits). I think it's possible to make a CLI wrapper for zmx that adds notifications though, so you can have some niceties of cmux without switching to a new terminal. Lowkey we might explore this direction as well.
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Sorry you likely encountered this issue: https://github.com/manaflow-ai/cmux/issues/103

The latest release (0.57.0) should fix it.

lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Excited that someone besides me wants this! I want to hear more about your warm container host, is that shared between multiple people, or just yourself?

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.
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Haha, it's like we're moving towards an IDE but starting from the opposite direction.
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
> a cron or hook that runs tmux capture-pane on each agent pane and checks for the idle prompt is enough to know when one needs attention.

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.

[1] https://cloudrouter.dev/

lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Would love your feedback and suggestions!
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Very cool stuff! Would be curious if the stuff you've built is open sourced? Having a bunch of Claude Codes will definitely eat a ton of CPU/RAM. libghostty should help to a certain extent, but at some scale, you'll probably a custom optimized agent loop or remote VMs.
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Cool project! How are you liking ghostty-web so far?
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Ah, like a way to maximize the current pane you're focused on?
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Lots of stuff to iron out pre-launch!
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Thanks for repro, taking a look!
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Thanks! Yup, notifications can be triggered via cli:

  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.

Docs: https://www.cmux.dev/docs/notifications

lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
:ghost:
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
> If two agents are working on the same local dev server, do they share the browser context or get isolated profiles

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.

lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
Fair enough! I like Ghostty a lot too, and the only reason I built this was because I wanted vertical tabs and nicer notifications.
lawrencechen··on Show HN: cmux - Ghostty-based terminal with vertical tabs and notifications
> copy-paste support that I have in my Ghostty

Want to fix this, how do I reproduce? Select with mouse and cmd+c seems to work for me.

Page 1 of 3Next →