local multi-agent setup
works on: macOS | Linux | WSL
docs: home | config | infrapowered by: openclaw | picoclaw | zeroclaw | nanobot | nullclaw | hermes | moltis | mercury
- manage multiple agents as plain directories in a single repo
- bootstrap and command multiple unrelated agents in a unified way
- forward native agent commands directly (
help,onboard,status,--tui, etc.) - customize the templates freely; bundled agents and services are examples
- run managed agents and shared services under a dedicated
agentuser - clone into the shared host path and make it writable by your user
- create
infra/host.envfile and run./cmd infra bootstrap
agents/holds agent instances: one working directory per agentconfig/shared definitions: agent kinds, host aliases, shared-service manifests, portsinfra/machine bootstrap and service supervision for Linux/macOSshared/shared space across agents (e.g. content, knowledge, skills, etc.)cmdunified CLI for agents and infra commands
example agents/ tree with two instances per supported kind:
agents/
βββ 001-openclaw/
βββ 002-openclaw/
βββ 003-picoclaw/
βββ 004-picoclaw/
βββ 005-zeroclaw/
βββ 006-zeroclaw/
βββ 007-nanobot/
βββ 008-nanobot/
βββ 009-nullclaw/
βββ 010-nullclaw/
βββ 011-hermes/
βββ 012-hermes/
βββ 013-moltis/
βββ 014-moltis/
βββ 015-mercury/
βββ 016-mercury/
<target> = <agents|services|agent-id|service-id>
cmd
βββ list # list agent directories
βββ make <agent-id|agent-id-agent-kind> ... # create an agent and run native setup
βββ remove <agent-id> [-y|--yes] # uninstall service artifact and remove agent dir
βββ <agent-id>
β βββ bootstrap # install runtime/dependencies for this agent
β βββ edit # open agent dir in $EDITOR
β βββ start ... # run agent gateway/daemon in foreground
β βββ <native agent command> ... # forward to the native agent CLI
βββ infra
βββ bootstrap # install host deps/runtimes and service-manager artifacts
βββ install [<target>...] # install service-manager artifacts
βββ uninstall [<target>...] # remove service-manager artifacts
βββ start [<target>...] # start managed agents/services
βββ stop [<target>...] # stop managed agents/services
βββ restart [<target>...] # restart managed agents/services
βββ status [<target>...] # show managed status
βββ doctor [<target>...] # show diagnostics and short logs
βββ log [<target>...] # tail logs
βββ render [<all|brew|caddy>] # render generated infra files
./cmd make <agent-name>creates the agent directory and runs the agent's native setup command./cmd remove <agent-id>removes the agent directory./cmd <agent-id> bootstrapinstalls runtime and any kind-specific dependencies / steps for that one agent./cmd <agent-id> onboardnative agent command for the initial setup, onboarding, auth, channels, etc ../cmd <agent-id> startruns an agent in the foreground (stop a foreground run withCtrl-C)./cmd infra bootstrapinstalls runtime dependencies and service-manager artifacts based on host agents or services./cmd infra start/stop <agent-id>manage configured agent as a supervised background service./cmd infra start agentsis the host-scoped shortcut for the ids listed inCLAWLAB_AGENTS./cmd infra start servicesis the host-scoped shortcut for the service ids listed inCLAWLAB_SERVICES
inspect the local agent list:
./cmd listcreate and use an agent interactively:
./cmd make 001-openclaw
./cmd 001 bootstrap
./cmd 001 onboard --skip-daemon
./cmd 001 start
./cmd make 004-picoclaw
./cmd 004 bootstrap
./cmd 004 auth login --provider anthropic
./cmd 004 start
./cmd make 007-zeroclaw
./cmd 007 bootstrap
./cmd 007 auth paste-redirect --provider openai-codex --profile default
./cmd 007 start
./cmd make 011-hermes
./cmd 011 bootstrap
./cmd 011 setup
./cmd 011 --tui
./cmd 011 startopen agent directory in $EDITOR:
./cmd 001 editremove agent directory and its service-manager artifact:
./cmd remove 011manage host-assigned infra targets:
./cmd infra bootstrap
./cmd infra install
./cmd infra start
./cmd infra status agents
./cmd infra log services
./cmd infra stop servicesoperate on explicit agents and services:
./cmd infra install caddy vibetunnel 000 004 011
./cmd infra start services 003 005
./cmd infra restart caddy 001 002 006
./cmd infra status 000 004 caddy
./cmd infra doctor services 007
./cmd infra log 003 005 caddy
./cmd infra stop 008 vibetunnel
./cmd infra uninstall 011 caddymanually generate infra templates:
./cmd infra render all
./cmd infra render brew
./cmd infra render caddy- requires
swifton$PATHsincecmdis a Swift script - agent kinds are defined in
config/agents/ - shared services are defined in
config/services/ - repo-wide parsed config is defined in
config/repo.ini - toggle version control manually in
.gitignore
done for fun