lmux is a small macOS terminal I use to run a bunch of Claude Code and Codex sessions at once. The feature I reach for most is taking back a prompt I sent to the wrong session.

The layout is borrowed from cmux: workspaces in a sidebar, splits, tabs in each pane. A few people on Reddit called it "another cmux clone", which is fair at first glance, but it isn't a fork and has no cmux code. Here's what's different.

lmux with several Claude Code and Codex sessions

Taking back a prompt

When you run several Claude Code sessions side by side, sooner or later you type a prompt into the wrong one.

In lmux you hover over the prompt you sent and click ×. Claude Code rewinds to just before that prompt, and the session keeps running. No restart. Files it already changed stay changed, so check your diff. If you click ✎ instead, it rewinds the same way and puts the prompt back in the input so you can edit it and send it again.

Staying light

I built lmux for myself because cmux was more app than I needed. lmux is a native Swift/AppKit app on libghostty, and it's 25 MB. With 20 workspaces open it idles near 0% CPU on my M4 Pro. cmux 0.65.2 sat around 8% in the same setup. The method is in scripts/BENCH.md if you want to check it on your machine.

It makes no network calls.

The rest

  • A status ring and badge on each workspace show whether an agent is running, needs you, is done, or failed. This comes from Claude Code's hooks and from Codex. ⇧⌘J jumps to the one that's waiting.
  • Any other program can report status too, by printing an OSC 7501 escape sequence. See docs/agents.md.
  • Sessions come back after you quit, update, or reboot.
  • It reads your Ghostty config.
  • It never wraps claude or codex. To get status it adds a few hooks to settings.json, and it shows you the diff before it writes anything.
  • If you're coming from cmux, there's a one-click import.
  • Korean input works properly while composing. There are some Chinese and Japanese IME fixes too.

What I left out on purpose

No built-in browser and no SSH workspaces. Both are useful, but they're the kind of thing that made cmux feel heavy to me. I'd rather keep lmux a terminal.

Limits

It's macOS 14+ on Apple silicon only. Taking back a prompt only works with Claude Code for now.

Try it

It's free and MIT licensed. Grab the dmg from GitHub Releases, or:

brew install --cask sooftware/tap/lmux 

I'm Soohwan, an ML engineer in Seoul. If you run a bunch of agent sessions at once, I'd really like to hear what breaks, what's missing, and whether rewinding a prompt is as useful for you as it's been for me. Issues and comments both welcome.