Skip to content

Repository files navigation

AgentMux

One Super Agent. Many project workers.

Talk to one foreman agent. It lists your repos, decides which project(s) to touch, and dispatches short-lived Pi workers. You stop juggling terminals.

am super 看下我有哪些项目
am super mindmux-app 登录提交后没跳转,帮我查

CI License: MIT

Install (one command)

curl -fsSL https://raw.githubusercontent.com/robinv8/agentmux/main/scripts/install.sh | bash

This will:

  1. Install Bun if missing
  2. bun install -g github:robinv8/agentmux
  3. Pull @earendil-works/pi-coding-agent as a dependency — you do not install Pi separately

After install:

am super 看下我有哪些项目

(am is the short alias of agentmux.)

Other install options

# Already have Bun
bun install -g github:robinv8/agentmux

# From a local clone (dev)
git clone https://github.com/robinv8/agentmux.git
cd agentmux
bun install
bun link          # puts am / agentmux on PATH via Bun

Override install source for the curl script:

AGENTMUX_REF=github:robinv8/agentmux#main curl -fsSL … | bash

Optional: force a different Pi binary with PI_BIN=/path/to/pi (default uses the one bundled with AgentMux).

Usage

am super                      # Super Agent chat (primary)
am super 看下我有哪些小弟,用 grok 读 agentmux 的 package 版本
am workers                    # pi / claude / codex / grok / kimi 谁可派
am run agentmux --backend grok -- 一句话说明本仓库
am jobs                       # 任务是否 done

macOS Super Agent chat app:

cd macos && ./scripts/run-app.sh

Configuration

Variable Default
AGENTMUX_PROJECTS_ROOT ~/Projects
AGENTMUX_REGISTRY ~/.pi/agent/workers.json
AGENTMUX_SOCKETS ~/.pi/agent/worker-sockets
PI_BIN bundled @earendil-works/pi-coding-agent

Architecture

you ──chat──► Super Agent (tools)
                 ├─ list_projects
                 └─ run_in_project ──► Pi worker one-shot in that repo

As a Pi extension

pi -e $(bun pm ls -g --all 2>/dev/null; echo)/extensions/commander.ts
# or from a clone:
pi -e ./extensions/commander.ts

Tools: list_projects, worker_status, run_in_project.

Library

import { discoverProjects, runOneShot, resolvePiBinary } from "agentmux";

const projects = await discoverProjects({ projectsRoot: `${process.env.HOME}/Projects` });
const result = await runOneShot({
  projectQuery: "my-app",
  message: "summarize README",
  projects,
  piBinary: resolvePiBinary(),
});

macOS app (native)

SwiftUI client for the same list → select → one-shot → stream flow:

cd macos
swift run AgentMuxApp

See macos/README.md.

Tests

bun test
cd macos && swift test

Non-goals

  • Keystroke injection into Grok / Codex / Kimi TUIs
  • Cloud / multi-user orchestration

Contributing

See CONTRIBUTING.md. Security: SECURITY.md.

License

MIT © robinv8

Acknowledgments

Workers speak Pi RPC. Pi is bundled as a dependency; credit to the Pi maintainers.

About

Multi-project agent mux: list, dispatch, and status for local Pi RPC workers

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages