Skip to content
@mu-crew

mu-crew

Run a crew of pi agents in tmux, on every machine you work on

mu-crew logo: a tmux window with μ and two agent panes

mu-crew

Run a crew of coding agents in tmux: Claude Code, Codex, Cursor, Muse Code and pi, mixed as you like.
See which one needs you, on any machine.
Keep long jobs off your SSH session.
Keep the crew's builds from eating the machine.
Keep every session they ever ran.

The tools

Tool What it does
mu Plans the work and hands it out: task DAG, per-agent workspaces, audit log
murmur Shows which agent, on which host, is waiting on you, and jumps you there
mule Runs the long build on a remote host without holding your SSH session
muzzle Queues heavy commands from all your agents on each machine, and sizes them from what they really used
museum Backs up your agents' sessions (pi, Claude Code, Codex, cursor-agent) from every machine to one store your agents can search
tsesh Picks or creates a tmux session, with each session's agent state
dotfiles Wires them into tmux: agent state in tabs and borders, a status pill, keys
npm i -g \
  @mu-crew/mu \
  @mu-crew/murmur \
  @mu-crew/mule \
  @mu-crew/muzzle
murmur init                      # this node's identity, and murmur's hook entries
mu init                          # mu's Stop hook entry and skill per harness
muzzle init                      # muzzle's hook entries: queues heavy shell calls
pi install npm:@mu-crew/mu       # pi: mu's extension, skill and recipe prompts
pi install npm:@mu-crew/murmur   # pi: murmur's extension (state across machines, tmux badges)
pi install npm:@mu-crew/muzzle   # pi: muzzle's extension and skill

Each init writes entries for every harness set up on the machine (Claude Code, Codex, Cursor, Muse Code) and touches only its own. The pi install lines are for pi.

Each tool works alone. Start with mu: it plans the work and hands it to agents of any of the five, locally and on remote hosts. It drives pi exactly through a control socket, and the other four by paste, confirmed by their own hook events through murmur. Add murmur for the cross-machine "who needs me" view, tmux badges and jump. Add mule when a remote host caps SSH sessions or a command must survive a dropped connection. Add muzzle when several agents' builds and tests share one machine. Add museum when your sessions are worth keeping.

How they fit

The tools share no code and no database. They meet in environment variables and tmux options:

  • mu sets MU_AGENT_NAME and MU_WORKSTREAM in every pane it spawns. murmur marks those agents as crew and shows them only when they need you.
  • mu's pi extension serves a per-agent control socket at a path mu derives from workstream and agent (MU_CTL_SOCK); murmur's extension publishes @murmur_* tmux options. Both load in the same pi and do not depend on each other.
  • Claude Code, Codex, Cursor and Muse Code run murmur hook <harness> from their own hooks. Each call drops one event file, and murmur's readers turn the files into state. mu reads that state to confirm a send and to see a turn end, with its final text.
  • mule runs each job as mule-<id>, so a remote job shows up in murmur too.
  • museum copies each machine's pi, Claude Code, Codex and cursor-agent session files into its own folder in one store, over plain rsync, started by a pi extension, a tmux status line or a timer. Agents read the store with a skill.
  • muzzle needs nothing from mu, but uses what mu sets. A build you start in your own shell goes ahead of builds queued by mu's workers, and muzzle status shows which agent holds each slot.
  • murmur publishes agent state as @murmur_* tmux options. The dotfiles and tsesh read them, and so can anything else.

What we believe

  • Stay out of the model's way. The tools coordinate; the model decides.
  • No daemons, no complicated setup. State is SQLite and files on each machine.
  • Standalone tools that compose. Each is useful alone.

Built on tmux, with five first-class agent CLIs (pi has the exact channel) and narrower support for herdr, Rex and opencode. The full stance is in STANCE.md and the design rules in ZEN.md.

Built by agents, for agents

AI coding agents wrote most of this code, running on this stack, with a human reviewing what ships. The CLIs print next steps and use distinct exit codes so an agent can drive them too.

Published as-is. Issues are welcome; open one before a pull request.

Popular repositories Loading

  1. mu mu Public

    A small, durable control plane for a persistent crew of AI agents in tmux panes.

    TypeScript 6

  2. murmur murmur Public

    Agent state across every machine you work on, in one view

    TypeScript

  3. mule mule Public

    Fire remote jobs down a private ssh channel nothing else can contend with

    Rust

  4. .github .github Public

    Org profile, stance and zen for the mu stack

  5. tmux-session-picker tmux-session-picker Public

    tmux session picker: pinned, live, zoxide and scanned directories in one fzf popup, with coding-agent state from murmur

    Python

  6. dotfiles dotfiles Public

    tmux, ssh and agent-harness config that wires mu, murmur and mule together

    Python

Repositories

Showing 8 of 8 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…