Agent Matrix framework — run a supervised network of Claude Code or Codex agents that collaborate on your machine. wanman is an open-source local-mode agent matrix framework.
$ npx -y skills add chekusu/wanman --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: chekusu/wanman
What's inside
Agent Matrix framework — run a supervised network of Claude Code or Codex agents that collaborate on your machine.
wanman is an open-source local-mode agent matrix framework. Runs a supervised network of Claude Code or Codex agents on your machine, coordinated through a JSON-RPC supervisor.
The name wanman comes from the Japanese ワンマン電車 / one-man train: a train operated by one driver without a conductor. wanman's design goal is similar in spirit: the human user steps back into an observer role and watches the agent matrix run automatically from every angle.
wanman.ai provides the fully automated 24/7 sandbox edition of wanman, running for free on Sandbank Cloud's sandbox cloud.
$HOME, so agents never mutate your dirty checkout or shell profile.wanman commands and a JSON-RPC supervisor.@wanman/finops toolkit for API credential inventory, provider cost sync, Stripe revenue sync, and product/company ROI summaries.wanman.ai adds hosted-only capabilities:
# Prerequisites: Node 20+, pnpm 9+, git, a logged-in Claude Code or Codex CLI.
git clone git@github.com:chekusu/wanman.git wanman.dev
cd wanman.dev
pnpm install
pnpm build
# Run from source; no npm package publish is required.
pnpm --filter @wanman/cli exec wanman takeover /path/to/any/git/repo
If you want a single-file CLI bundle instead:
pnpm --filter @wanman/cli standalone
node packages/cli/dist/wanman.mjs takeover /path/to/any/git/repo
If wanman is already on your PATH, you can also run wanman takeover . from inside the target repository.
See docs/quickstart.md for the full walkthrough.
For cost and revenue accounting, see docs/finops.md. The local FinOps review app runs with pnpm --filter @wanman/finops dev -- --host 127.0.0.1 --port 4173.
| Command | What it does |
|---|---|
wanman send <agent> <msg> | Send a message to an agent (--steer interrupts the target). |
wanman recv [--agent <name>] | Receive and mark pending messages as delivered. |
wanman agents | List registered agents and their current states. |
wanman context get / context set | Read or write shared key/value context. |
wanman escalate <msg> | Escalate to the CEO agent. |
wanman task … | Manage the task pool: create, list, get, update, done. Supports --after dependencies. |
wanman initiative … | Manage long-lived initiatives: create, list, get, update. |
wanman capsule … | Manage change capsules: create, list, mine, get, update. |
wanman artifact … | Store and retrieve structured artifacts: put, list, get. |
wanman hypothesis … | Track hypotheses with status transitions: create, list, update. |
wanman watch | Live-stream supervisor and agent activity. |
wanman run <goal> | Start a matrix against a one-shot goal. |
wanman takeover <path> | Take over an existing git repo with the full agent matrix. |
wanman skill:check [path] | Validate that skill docs reference only real CLI commands. |
Run wanman --help for the full, current list.
+----------------+ +--------------------+ +-----------------+
| wanman CLI | JSON | Supervisor | spawn | Agent process |
| (host shell) | ---RPC-->| (local process) | -------> | (Claude/Codex) |
| | /rpc | message/context/ | | per-agent $HOME|
| | | task/artifact | | per-agent wt |
+----------------+ +--------------------+ +-----------------+
| |
v v
+--------------------+ +-----------------+
| files + SQLite | | worktree |
+--------------------+ +-----------------+
wanman <subcommand> speaks JSON-RPC 2.0 to a Supervisor process.$HOME.Deep dive: docs/architecture.md.
| Env var | Meaning |
|---|---|
WANMAN_URL | Supervisor HTTP URL for the CLI (default http://localhost:3120). |
WANMAN_AGENT_NAME | Identifies the current agent; used as default sender/receiver inside agent processes. |
WANMAN_RUNTIME | claude (default) or codex — selects the per-agent CLI adapter. |
WANMAN_MODEL, WANMAN_CODEX_MODEL, WANMAN_CODEX_REASONING_EFFORT | Per-runtime model overrides. |
WANMAN_CODEX_FAST | When set, biases the Codex adapter toward lower-latency defaults. |
WANMAN_SKILL_SNAPSHOTS_DIR | Override where the runtime materializes skill-activation snapshots (default: sibling of the shared-skills dir, falling back to $TMPDIR/wanman-skill-snapshots). |
An optional @sandbank.dev/db9 brain adapter can be attached for cross-run memory — see docs/architecture.md.
Agent definitions live in a single JSON file:
{
"agents": [
{ "name": "echo", "lifecycle": "24/7", "model": "standard", "systemPrompt": "..." },
{ "name": "ping", "lifecycle": "on-demand", "model": "standard", "systemPrompt": "..." }
],
"dbPath": ".wanman/wanman.db",
"port": 3120,
"workspaceRoot": ".wanman/agents"
}
Each agent entry has:
name — unique identifier used on the message bus.lifecycle — 24/7 (continuous respawn loop), on-demand (idle until triggered), or idle_cached (idle until triggered, but the prior Claude session_id is preserved across triggers via claude --resume so context survives idle periods). idle_cached is Claude-only: pairing it with runtime: codex (or WANMAN_RUNTIME=codex) is rejected at startup since Codex has no equivalent resume mechanism in this runtime.model — usually an abstract tier (high or standard); the runtime adapter maps it to Claude or Codex defaults, with environment overrides available.systemPrompt — baked-in persona/mission; agents also auto-discover shared skill files at ~/.claude/skills/.cron, events, and tools fields — see the architecture doc for the full schema.pnpm typecheck
pnpm test
pnpm exec vitest run --coverage --coverage.reporter=text-summary --coverage.reporter=json-summary --coverage.exclude='**/dist/**'
The current coverage target is at least 90% line coverage. The latest verified local run reports Lines: 90.17%; the machine-readable summary is written to coverage/coverage-summary.json.
wanman.dev/
packages/
cli/ wanman CLI (send/recv/task/artifact/run/takeover/...)
core/ Shared types, JSON-RPC protocol, skills (core/skills/)
host-sdk/ Host-side SDK for embedding wanman into other tools
runtime/ Supervisor, agent process manager, SQLite stores, adapters
docs/ Architecture and quickstart guides
Shared skills shipped today (packages/core/skills/):
artifact-naming, artifact-quality — conventions for agent-produced artifacts.cross-validation — CEO consistency checks across agent outputs.research-methodology — market/data research methodology.wanman-cli — CLI command reference consumed by agents at runtime.workspace-conventions — file-system conventions inside agent workspaces.Apache-2.0 — see LICENSE.
.github/
workflows/
ci.yml
.gitignore
CONTRIBUTING.ja.md
CONTRIBUTING.md
CONTRIBUTING.zh.md
docs/
architecture.ja.md
architecture.md
architecture.zh.md
finops.md
quickstart.ja.md
quickstart.md
quickstart.zh.md
LICENSE
package.json
packages/
cli/
build-standalone.mjs
build.mjs
package.json
src/
commands/
agents.test.ts
agents.ts
artifact.test.ts
artifact.ts
capsule.test.ts
capsule.ts
context.test.ts
context.ts
e2e-takeover-skillcheck.test.ts
escalate.test.ts
escalate.ts
hypothesis.test.ts
hypothesis.ts
initiative.test.ts
initiative.ts
recv.test.ts
recv.ts
run.test.ts
run.ts
send.test.ts
send.ts
skill-check.test.ts
skill-check.ts
takeover.test.ts
takeover.ts
task.test.ts
task.ts
watch.test.ts
watch.ts
embedded-assets.d.ts
execution-session.run.test.ts
execution-session.test.ts
execution-session.ts
host-sdk.ts
index.test.ts
index.ts
local-supervisor-session.test.ts
local-supervisor-session.ts
local-supervisor-start.test.ts
local-supervisor.test.ts
local-supervisor.ts
loop-classifier.test.ts
loop-classifier.ts
loop-observability.test.ts
loop-observability.ts
run-host.ts
run-local-executor.test.ts
run-local-executor.ts
run-orchestrator.test.ts
run-orchestrator.ts
runtime-client.test.ts
runtime-client.ts
sdk.ts
takeover-coordination.test.ts
takeover-coordination.ts
takeover-hooks.test.ts
takeover-hooks.ts
takeover-local.run.test.ts
takeover-local.test.ts
takeover-local.ts
takeover-mission.test.ts
takeover-mission.ts
takeover-project.ts
transport.test.ts
transport.ts
tui/
dashboard.test.ts
dashboard.ts
tsconfig.json
vitest.config.ts
core/
package.json
skills/
artifact-naming/
SKILL.md
artifact-quality/
SKILL.md
cross-validation/
SKILL.md
research-methodology/
SKILL.md
wanman-cli/
SKILL.md
workspace-conventions/
SKILL.md
src/
agents/
registry.test.ts
registry.ts
github-repo-url.test.ts
github-repo-url.ts
index.ts
protocol.test.ts
protocol.ts
types.ts
tsconfig.json
vitest.config.ts
finops/
build.mjs
package.json
README.md
src/
__tests__/
dashboard-model.test.ts
key-inventory.test.ts
ledger.test.ts
pricing-registry.test.ts
providers.test.ts
runtime-data.test.ts
web-charts.test.ts
web-routing.test.ts
cli.ts
cost-model.ts
dashboard-model.ts
demo-data.ts
index.ts
key-inventory.ts
ledger.ts
money.ts
pricing-registry.ts
provider-classifier.ts
providers/
openai.ts
stripe.ts
runtime-data.ts
types.ts
usage-capabilities.ts
web/
app.ts
charts.ts
dev-server.ts
index.html
routing.ts
styles.css
tsconfig.json
vitest.config.ts
host-sdk/
build.mjs
package.json
src/
host-sdk-factory.test.ts
host-sdk-factory.ts
host-sdk-types.ts
index.ts
project-run-spec.ts
run-options.ts
tsconfig.json
runtime/
build.mjs
package.json
src/
__tests__/
agent-adapter.test.ts
agent-communication.test.ts
agent-home-manager.test.ts
agent-process.test.ts
auth-manager.spawn.test.ts
auth.test.ts
brain-integration.test.ts
brain-manager.test.ts
change-capsule-pool.test.ts
claude-code.test.ts
codex-adapter.test.ts
config.test.ts
credential-manager.test.ts
cron-scheduler.test.ts
e2e-autoresearch-patterns.test.ts
e2e-db9-schema.test.ts
e2e-loop-pipeline.test.ts
e2e-preamble-taskpool.test.ts
e2e-relay-backlog.test.ts
e2e-skill-evolution.test.ts
e2e-supervisor-events.test.ts
e2e-supervisor-lifecycle.test.ts
e2e-token-budget.test.ts
entrypoint.test.ts
evaluation-engine.test.ts
execution-planner.test.ts
exploration-engine.test.ts
heartbeat.test.ts
http-server.test.ts
initiative-board.test.ts
logger.test.ts
loop-event-bus.test.ts
loop-events.test.ts
loop-logger.test.ts
loopback-capability.ts
merge-queue.test.ts
preamble.test.ts
safety-gate.test.ts
shared-skill-manager.test.ts
sql-escape.test.ts
stores.test.ts
supervisor-brain-rpc.test.ts
supervisor-flow-integration.test.ts
supervisor-git.test.ts
supervisor.test.ts
task-pool.test.ts
token-tracker.test.ts
workflow-orchestrator.test.ts
worktree-manager.test.ts
agent-adapter.ts
agent-home-manager.ts
agent-process.ts
auth-manager.ts
brain-manager.ts
change-capsule-pool.ts
claude-adapter.ts
claude-code.ts
codex-adapter.ts
config.ts
context-store.ts
credential-manager.ts
cron-scheduler.ts
db9-types.ts
entrypoint.ts
evaluation-engine.ts
execution-planner.ts
exploration-engine.ts
heartbeat.ts
http-server.ts
initiative-board.ts
logger.ts
loop-event-bus.ts
loop-events.ts
loop-logger.ts
merge-queue.ts
message-store.ts
preamble.ts
relay.ts
runtime-contracts.ts
safety-gate.ts
shared-skill-manager.ts
skill-manager.ts
sql-escape.ts
supervisor.ts
task-pool.ts
token-tracker.ts
workflow-orchestrator.ts
worktree-manager.ts
tsconfig.json
vitest.config.ts
pnpm-lock.yaml
pnpm-workspace.yaml
README.ja.md
README.md
README.zh.md
tsconfig.base.json
turbo.json
vitest.workspace.tsFAQ
wanman is a Claude Code plugin with 6 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes artifact-naming, artifact-quality, cross-validation. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.