4 ms·
Show HN: Ccmux – Reduce context switching for parallel Claude Code sessions
I’ve been running parallel Claude Code instances while working on different tasks. Two problems kept slowing me down:
1. I was constantly jumping between terminals to see which session needed input.
2. Using git worktrees added setup friction (installing deps, bootstrapping environments, etc.), which discouraged parallel work.
So I built ccmux.
It’s a thin layer on top of tmux that:
- Adds a glanceable sidebar UI showing all Claude Code sessions
- Surfaces attention-needed states with visible alerts
- Wraps git worktrees with a lightweight workflow abstraction so spinning up parallel tasks feels cheap
Technical details:
- tmux provides the pane/session orchestration
- The sidebar is built with Python’s Textual (rich TUI)
- Each Claude Code session runs as a window in a nested tmux session.
I now use it daily to juggle multiple AI coding sessions without losing context. Happy to answer questions or dive into implementation details.
- jlongo78 7mo ago[flagged]
- raykamp 7mo agoHey jlongo78, thanks for the feedback and insights. "persistent session replay" are you meaning more of a "resume" than "replay" ? I'm a little bit confused by the description, but curious to understand. If I'm understanding it correctly, I think you'll appreciate what ccmux offers for streamlining the switch/resuming sessions: a sidebar that shows ongoing tasks that can be named. Each one requires just a mouse click or key binding to switch into.
- jlongo78 7mo ago[flagged]
- raykamp 7mo agoMind if I ask what line of software you work in? The ccmux sessions are tied 1-to-1 with claude code sessions. If a the ccmux "workspace", ccmux's tmux session, gets killed or a user intentionally kills/deactivated a ccmux session, it can be reactivated easily. Under the hood it's just ccmux tracking claude code session IDs and attempting to resume said session when reenabling. Your input has me thinking there could be a couple features to consider: - A search feature to search through all claude code sessions and resurrect one as a ccmux session. - Right now ccmux sessions have two things to quickly indicate their specific task/intention: a configurable name and they clearly show the git branch name they have checked out. I originally opted for this very lightweight approach, but perhaps more context is required about the task at hand, especially for long-running multi-day sessions.
- jlongo78 7mo ago[flagged]
- JPHutchins 7mo agoCool! I think that the git worktrees are essential for efficiently working on simultaneous tasks in one repo, and anything to lower the friction is welcome.
- raykamp 7mo agoAgreed! Before using ccmux I essentially abandoned using worktrees on certain projects because the setup and teardown was too cumbersome.