Coding & Development๐Ÿค–claude๐Ÿ’ฌgpt๐ŸŒuniversal

MulmoTerminal

Run multiple Claude Code and Codex sessions in parallel โ€” a browser terminal grid that shows which agent needs you. Local, tmux-backed, MIT.

Quick Start

Install this Skill

npx skills add receptron/mulmoterminal
# MulmoTerminal

**Run multiple Claude Code and Codex sessions in parallel โ€” and see which one needs you.**

A **browser terminal** for **parallel AI coding agents**: several **Claude Code** and **Codex**
sessions side by side, each in its own cell, with the one that needs you marked in colour. Vibe
coding with a single agent needs nothing but a shell โ€” this is for when you run several and lose
track of which is waiting. Sessions survive a reload (tmux), work isolates in **git worktrees**,
and a **phone push** reaches you when a turn finishes.

**Every cell is a real pty.** `htop`, `lazygit`, a dev server and Claude Code are the same kind
of object here โ€” which is why the one-session-per-worktree limit applies to **agents only**, and
a shell or a `yarn dev` launcher can sit in the same worktree an agent is working in.

## Demo

![MulmoTerminal โ€” a grid of live Claude Code sessions, each color-coded by state, updating in real time](https://raw.githubusercontent.com/receptron/mulmoterminal/main/docs/guide/images/hero.gif)

*The grid, live โ€” each cell coloured **working**, **done** or **needs you**.*

https://github.com/user-attachments/assets/0b8dd582-6c0d-4be3-b0b4-3740ad0bdba6

*90 seconds, with sound: one agent, then a grid of them. Zoom into one and the roster still holds what every other session asked, answered and did, so you go to whichever is lit and lose nothing catching up.*

<details markdown="block">
<summary>Transcript of the narration</summary>

When you ran one coding agent, the slowest thing in the room was the agent.

Now that you run five, the slowest thing in the room is probably you.

One of them is always stopped. A permission prompt. A question. Until you notice, it does nothing at all.

MulmoTerminal puts every session on one screen. Blue is working. Green is done. Amber is waiting on you.

You stop hunting. You go where the light is.

The other kind of slow is: what did I even ask this one? The roster keeps one line per session โ€” what you asked, and what came back. Nothing left to remember.

When one is done, you don't go looking for its window. Click its row โ€” the next order goes in right there.

Then you pick the next one from whatever is lit. Click, answer, move on. You never go looking โ€” the roster tells you.

We built MulmoTerminal for exactly that: not to watch agents, but to triage them.

That is the whole install.

</details>

MulmoTerminal turns [Claude Code](https://claude.com/claude-code) (and OpenAI's **Codex**)
into a parallel, observable workspace: many agent sessions at once in a grid, each one
color-coded so you see at a glance which are **working**, which **need you**, and which are
**done** โ€” plus rich GUI output, git worktrees with one-click PRs, cost readouts, and a
ping to your phone when a task finishes. One `npx` command, no Electron, no config.

```bash
npx mulmoterminal@latest        # starts on http://localhost:34567 and opens your browser
```

Requires **Node โ‰ฅ 22.9** and the [`claude`](https://claude.com/claude-code) CLI on your
`PATH`, already logged in. `npx mulmoterminal@latest init` reports what it can't find.

### Why not tmux + iTerm panes?

Running agents in parallel was never the hard part โ€” tmux does that fine. What gets lost
is **which** of the five is waiting for you. A pane is opaque: working, finished and
blocked-on-a-permission all look the same until you read it. Here every cell reports its
state back to one grid โ€” working (blue), done (green), **needs you** (amber) โ€” with a chime
when one goes amber off-screen, and a [cockpit roster](#why-youll-want-it) of one line per
session so you can answer one without losing your place in the other four. It runs *on*
tmux when you have it, for [persistence across restarts](#session-persistence-tmux).

Built by **[receptron](https://github.com/receptron)** โ€” **[Satoshi Nakajima](https://x.com/snakajima)**,
software architect for **Windows 95** at Microsoft, and **[Isamu Arimoto](https://github.com/isamu)**;
the same two behind **[GraphAI](https://github.com/receptron/graphai)**. [More โ†“](#who-builds-this)

## Why you'll want it

- **See every agent at once.** A grid of live sessions, each cell color-coded by state โ€”
  **working** (blue), **blocked / needs a permission** (amber), **done, unreviewed** (blue),
  **idle** โ€” with an attention chime and a toolbar tally, so an off-screen agent that's stuck
  never slips past you. Stop babysitting one terminal; supervise ten. Zoom into one and the
  **cockpit roster** keeps everyone else in view โ€” one text row per session with its AI
  summary, last prompt, latest reply, and the branch's **PR phase** (draft / CI fail /
  ready / merged).
- **A GUI for your agents, not just a terminal.** Beside the terminal, a **Canvas** panel
  renders what an agent produces over MCP โ€” **documents, forms, charts, generated images,
  HTML, collection cards** โ€” each drawn by its own plugin. The agent doesn't just print
  text; it hands you an interface.
- **Get pulled back from any

... (truncated)
Repository
189stars
29forks
View on GitHub
Details
DiscoveredAug 28, 2026
Last UpdatedAug 28, 2026
Quality Score
60/100