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 pi agents in tmux.
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 every pi session 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
pi install npm:@mu-crew/mu       # mu's extension, skill and recipe prompts
murmur init                      # this node's murmur identity
pi install npm:@mu-crew/murmur   # murmur's extension (state across machines, tmux badges)
pi install npm:@mu-crew/muzzle   # muzzle's extension and skill: wraps heavy bash calls

Each tool works alone. Start with mu: it knows exactly what each pi agent is doing (working, waiting on you, done), locally and on peered hosts over the agent's own SSH. Add murmur for the cross-machine "who needs me" view, tmux badges and jump, and state for CLIs other than pi. 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.
  • mule runs each job as mule-<id>, so a remote job shows up in murmur too.
  • museum copies each machine's pi session files into its own folder in one store, over plain rsync, started by a pi extension as agents work. 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 and pi, with narrower support for herdr, Codex, Cursor 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 4

  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…