DEV Community

Cover image for hivemux: a tmux sidebar that tells me which Claude Code session needs me
EUNGON KIM
EUNGON KIM

Posted on

hivemux: a tmux sidebar that tells me which Claude Code session needs me

Running one Claude Code session is easy. Running five at once is where it gets awkward: one is refactoring, one is writing docs, one is fixing a bug, and somewhere in those tabs a session stopped two minutes ago to ask "Do you want to make this edit?" Nothing moves until you find it.

I built hivemux for exactly that. It is a tmux sidebar that shows every Claude Code session, running, waiting for you, or done, and lets you jump to the one that needs you.

hivemux sidebar in tmux: four projects and five Claude Code sessions in running, waiting, done and idle states

It is free, MIT licensed, and runs on macOS (Linux likely works but is untested).

What you see

The sidebar sits on the left of every tmux window. Each project gets a colored box, and each Claude gets a card with its task name and how long it has been in its current state:

  • Running: the card glows. Leave it alone.
  • Waiting for you: the card pulses amber and macOS sends a notification (except for the session you are already looking at).
  • Done: a green badge waits until you have looked.

The task name is Claude's own conversation title. Double-click a card to rename it, and hivemux sends /rename to that Claude.

Getting to the right session fast

This is the part I use most:

  • Option+1 … Option+9 jumps to that session.
  • Option+0 jumps to whichever session has waited longest.
  • Or just click a card.
  • The right of the tmux status line works like a food-court order board: a numbered badge for every task that needs input (amber, blinking) or just finished (green). Click one to go there.

So the loop becomes: keep working, glance at the sidebar or the status line, press Option+0, answer, carry on.

It survives closing the terminal, and reboots

Because everything lives in tmux, closing the terminal window does not stop anything. After a reboot, tmux-resurrect brings back the layout and hivemux runs claude --resume <id> in each pane, so every Claude comes back in the same conversation.

How it works

There is no daemon and no cloud service. hivemux is a set of shell and Python scripts built on two things that already exist:

  1. Claude Code hooks. Setup registers hooks so each session reports when it starts work, asks for input, or stops.
  2. tmux pane options. The state is stored on the pane itself (@claude_state), and every sidebar draws from that.

hivemux has no server and no telemetry. Apart from installing (it downloads hivemux and two tmux plugins from GitHub) and checking the latest Claude Code version when you update Claude, it makes no network requests of its own.

The installer adds clearly marked blocks to your tmux and shell config, and hivemux uninstall removes exactly those.

The bee office

This one started as a joke and stayed. hivemux office opens a small office where every Claude session is a bee:

The hivemux bee office: bees typing at desks, one running to the question window in the boss room

  • A working bee types at its desk, with small helper bees beside it for subagents.
  • A waiting bee runs to the question window in the boss room and pops out in front when it has waited a while.
  • A finished bee holds up a jar of honey, which goes into the honeycomb once you have looked. A Honey tab ranks bees by day, week and month.
  • Click a bee to jump to its session.

At the end of the day, Clock out stops your Claudes and the bees walk home to a little village. Clock in brings every one back in the same conversation.

Clocking out: the bees clap and walk home to the village

It is a silly way to see the same state as the sidebar, and it is oddly useful on a second monitor.

Try it

You need tmux 3.3+, jq, git, python3 and a logged-in Claude Code. Ghostty is recommended, but any terminal works if you start tmux yourself.

curl -fsSL https://hivemux.dev/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

or with Homebrew:

brew install esteban-eg-kim/tap/hivemux
hivemux setup
Enter fullscreen mode Exit fullscreen mode

Then open a project and start Claude:

hm ~/code/api
hm ~/code/web
Enter fullscreen mode Exit fullscreen mode

Watch the sidebar, and press Option+0 when something is waiting.

Links

If you try it, I would love to hear what works and what does not, here in the comments or in a GitHub issue.

Top comments (0)