From aradotso-trending-skills-37
Orchestrates local Claude Code agent networks with wanman CLI for git repo takeover, task management, inter-agent messaging, and supervision.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-1 --plugin aradotso-trending-skills-37This skill uses the workspace's default tool permissions.
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Skill by ara.so — Daily 2026 Skills collection.
wanman is an open-source local agent matrix framework that runs a supervised network of Claude Code or Codex agents on your machine, coordinated through a JSON-RPC supervisor. Inspired by Japanese ワンマン電車 (one-man trains), it lets the human step back into an observer role while agents collaborate autonomously.
git clone git@github.com:chekusu/wanman.git wanman.dev
cd wanman.dev
pnpm install
pnpm build
# Run the CLI directly
pnpm --filter @wanman/cli exec wanman takeover /path/to/any/git/repo
pnpm --filter @wanman/cli standalone
node packages/cli/dist/wanman.mjs takeover /path/to/any/git/repo
After building, symlink or alias the CLI so you can run wanman from any project:
# Example: add to PATH via shell profile
export PATH="$PATH:/path/to/wanman.dev/packages/cli/dist"
# Then from inside any git repo:
wanman takeover .
| Command | Description |
|---|---|
wanman takeover <path> | Take over an existing git repo with the full agent matrix |
wanman run <goal> | Start an agent matrix for a one-shot goal |
wanman send <agent> <msg> | Send a message to an agent (--steer interrupts target) |
wanman recv [--agent <name>] | Receive and mark pending messages as delivered |
wanman agents | List registered agents and their current states |
wanman escalate <msg> | Escalate a message to the CEO agent |
wanman watch | Live-stream supervisor and agent activity |
wanman task create | Create a task in the shared pool |
wanman task list | List all tasks |
wanman task get <id> | Get task details |
wanman task update <id> | Update task status/fields |
wanman task done <id> | Mark a task as complete |
wanman initiative create | Create a long-lived initiative |
wanman initiative list | List initiatives |
wanman capsule create | Create a change capsule |
wanman capsule list | List change capsules |
wanman capsule mine | List capsules owned by current agent |
wanman artifact put | Store a structured artifact |
wanman artifact list | List stored artifacts |
wanman artifact get <id> | Retrieve an artifact |
wanman hypothesis create | Create a hypothesis to track |
wanman hypothesis list | List hypotheses |
wanman hypothesis update <id> | Update hypothesis status |
wanman context get <key> | Read a shared context value |
wanman context set <key> <val> | Write a shared context value |
wanman skill:check [path] | Validate skill docs reference real CLI commands |
# Supervisor HTTP URL for the CLI (default: http://localhost:3120)
export WANMAN_URL=http://localhost:3120
# Identifies the current agent (set inside agent processes)
export WANMAN_AGENT_NAME=dev
# Select runtime: 'claude' (default) or 'codex'
export WANMAN_RUNTIME=claude
# Model overrides
export WANMAN_MODEL=claude-opus-4-5
export WANMAN_CODEX_MODEL=o4-mini
export WANMAN_CODEX_REASONING_EFFORT=high
# Bias Codex adapter toward lower-latency defaults
export WANMAN_CODEX_FAST=1
# Override where runtime materializes skill-activation snapshots
export WANMAN_SKILL_SNAPSHOTS_DIR=/tmp/my-skill-snapshots
Agent definitions live in a single JSON file (typically .wanman/config.json):
{
"agents": [
{
"name": "ceo",
"lifecycle": "24/7",
"model": "high",
"systemPrompt": "You are the CEO agent. Coordinate all other agents, prioritize tasks, and escalate blockers."
},
{
"name": "dev",
"lifecycle": "on-demand",
"model": "standard",
"systemPrompt": "You are the dev agent. Implement features, fix bugs, and write tests."
},
{
"name": "devops",
"lifecycle": "on-demand",
"model": "standard",
"systemPrompt": "You are the devops agent. Manage CI/CD, infrastructure, and deployments."
},
{
"name": "researcher",
"lifecycle": "idle_cached",
"model": "standard",
"systemPrompt": "You are the research agent. Gather market data and synthesize findings."
}
],
"dbPath": ".wanman/wanman.db",
"port": 3120,
"workspaceRoot": ".wanman/agents"
}
24/7 — Continuous respawn loop; agent always running.on-demand — Idle until triggered by a message or task.idle_cached — Idle until triggered, but preserves Claude session_id across triggers via claude --resume. Claude-only — pairing with codex runtime is rejected at startup.high — Maps to highest-capability model for the selected runtime.standard — Maps to balanced default model; overridable via WANMAN_MODEL or WANMAN_CODEX_MODEL.+----------------+ +--------------------+ +-----------------+
| 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 |
+--------------------+ +-----------------+
$HOME, so agents never mutate your working directory or shell profile.# From inside the repo you want agents to work on:
cd /path/to/my-project
wanman takeover .
# Watch the agents coordinate in real time:
wanman watch
# Launch agents against a specific goal
wanman run "Refactor the authentication module to use JWT tokens"
# In another terminal, watch activity stream
wanman watch
# Check agent states
wanman agents
# Escalate to CEO if blocked
wanman escalate "Dev agent is stuck on the JWT library choice, please decide"
# Send a normal message to the dev agent
wanman send dev "Please add unit tests for the UserService class"
# Send a steering (interrupt) message to the dev agent
wanman send dev --steer "STOP current task. Critical bug in auth — fix login endpoint first"
# Receive messages as the dev agent
WANMAN_AGENT_NAME=dev wanman recv
# Receive all pending messages for any agent
wanman recv
# Create a task with a dependency on task ID abc123
wanman task create \
--title "Write integration tests" \
--description "Cover all API endpoints with integration tests" \
--agent dev \
--after abc123
# List all tasks and their statuses
wanman task list
# Get details of a specific task
wanman task get <task-id>
# Update task status
wanman task update <task-id> --status in-progress
# Mark complete
wanman task done <task-id>
# Store shared context accessible to all agents
wanman context set api_base_url "https://api.example.com/v2"
wanman context set target_environment "staging"
# Read context values
wanman context get api_base_url
# Agents read context in their prompts automatically via the supervisor
# Store a structured artifact (e.g., research output)
wanman artifact put \
--name "market-analysis-q2" \
--type "report" \
--content "$(cat analysis.md)"
# List artifacts
wanman artifact list
# Retrieve a specific artifact
wanman artifact get <artifact-id>
# Create a hypothesis for agents to validate
wanman hypothesis create \
--title "Switching to Bun runtime reduces build time by 40%" \
--description "Based on benchmarks from similar TypeScript projects"
# List hypotheses and their validation status
wanman hypothesis list
# Update after validation
wanman hypothesis update <id> --status confirmed --evidence "Build time dropped from 45s to 26s"
# Create a change capsule (bounded unit of work/change)
wanman capsule create \
--title "Auth JWT migration" \
--description "Migrate session-based auth to JWT"
# List all capsules
wanman capsule list
# List capsules owned by the current agent
WANMAN_AGENT_NAME=dev wanman capsule mine
# Get details
wanman capsule get <capsule-id>
Embed wanman into your own tools using the @wanman/host-sdk package:
import { WanmanClient } from '@wanman/host-sdk';
// Connect to a running supervisor
const client = new WanmanClient({
url: process.env.WANMAN_URL ?? 'http://localhost:3120',
});
// Send a message programmatically
await client.send({
agent: 'dev',
message: 'Please review the PR and add inline comments',
steer: false,
});
// Create a task
const task = await client.task.create({
title: 'Fix flaky tests',
description: 'Tests in auth.test.ts fail intermittently under CI',
agent: 'dev',
});
// Poll for agent status
const agents = await client.agents.list();
for (const agent of agents) {
console.log(`${agent.name}: ${agent.state}`);
}
// Store an artifact
await client.artifact.put({
name: 'perf-baseline',
type: 'benchmark',
content: JSON.stringify(perfResults),
});
// Read shared context
const env = await client.context.get('target_environment');
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/
quickstart.md
architecture.md
CONTRIBUTING.md
packages/core/skills/)Skills are auto-discovered by agents at ~/.claude/skills/:
artifact-naming — Conventions for naming agent-produced artifacts.artifact-quality — Quality standards for 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.# Check that skill docs only reference real CLI commands
wanman skill:check
wanman skill:check packages/core/skills/wanman-cli.md
# Type checking
pnpm typecheck
# Run all tests
pnpm test
# Run tests with coverage (target: 90%+ line coverage)
pnpm exec vitest run \
--coverage \
--coverage.reporter=text-summary \
--coverage.reporter=json-summary \
--coverage.exclude='**/dist/**'
# Coverage summary written to: coverage/coverage-summary.json
# Check if supervisor is running on expected port
curl http://localhost:3120/rpc
# Override URL if running on a non-default port
export WANMAN_URL=http://localhost:4000
wanman agents
# Check agent states
wanman agents
# Send a steer message to interrupt and redirect
wanman send <agent-name> --steer "Reset and await new instructions"
# Escalate to CEO for intervention
wanman escalate "Agent 'dev' appears stuck on task <task-id>, please reassign"
# Watch live activity to diagnose
wanman watch
idle_cached Lifecycle with Wrong RuntimeError: idle_cached lifecycle requires Claude runtime; codex has no resume mechanism
Fix: Only use lifecycle: "idle_cached" when WANMAN_RUNTIME=claude (or unset, as Claude is the default). Switch lifecycle to on-demand for Codex agents.
Each agent runs in its own git worktree under workspaceRoot (default: .wanman/agents/). If an agent appears to be modifying wrong files, check workspaceRoot in your config and ensure WANMAN_AGENT_NAME is set correctly in agent subprocesses.
If the supervisor crashes mid-run, the SQLite file at dbPath may be locked:
# Stop all wanman processes
pkill -f wanman
# Remove WAL files if present
rm .wanman/wanman.db-wal .wanman/wanman.db-shm
# Restart supervisor
wanman takeover .
# Run skill:check to find references to non-existent commands
wanman skill:check
# Output will show which skill files reference invalid commands
# Update the skill markdown to use only real wanman CLI commands