Quickstart
merobox is a Python CLI that boots real Calimero (merod) nodes — as Docker
containers by default — and drives them through declarative YAML
workflows. This page takes you from an empty machine to a
running two-node cluster and a first passing workflow.
Prerequisites
Section titled “Prerequisites”- Docker running locally (the default backend runs each node as a
container). Binary mode (
--no-docker) is available if you have a localmerodbuild — see node management. - Python 3.9+ if you install from PyPI or source.
Install
Section titled “Install”pipx install meroboxgit clone https://github.com/calimero-network/merobox.gitcd meroboxpipx install -e .Verify
Section titled “Verify”merobox --versionIf that prints a version, you are ready. merobox --help lists every command.
Start two nodes
Section titled “Start two nodes”merobox run --count 2This starts two Docker containers named calimero-node-1 and calimero-node-2.
Each node opens a libp2p swarm port and an HTTP server / RPC port,
allocated per node from an auto-detected base (override with --base-port /
--base-rpc-port). See node management for the
full set of run flags.
Check health
Section titled “Check health”merobox healthmerobox health polls each running node’s admin API (/admin-api/health,
/admin-api/is-authed, /admin-api/peers) and prints a table of health status,
auth state, and connected-peer count. Target a single node with
merobox health --node calimero-node-1, or add --verbose for raw responses.
Run your first workflow
Section titled “Run your first workflow”A workflow is a YAML file describing nodes and an ordered list of steps. The
repository ships runnable examples under workflow-examples/. Run one:
merobox bootstrap run workflow-examples/workflow-groups-example.ymlThis boots the nodes the file declares, then executes each step in order — installing an app, creating a namespace and context, inviting the second node, and verifying that state syncs between the two. The process exits non-zero the moment any step fails.
Two flags worth knowing early:
# Validate the YAML without starting anything — a fast lint for CImerobox bootstrap run workflow-examples/workflow-groups-example.yml --dry-run
# Generate a starter workflow to editmerobox bootstrap create-sampleReady to build one yourself? The first workflow tutorial walks through writing one step by step.
Stop and clean up
Section titled “Stop and clean up”# Stop every running node (and the auth stack, if any)merobox stop --all
# Or stop just one nodemerobox stop calimero-node-1stop leaves each node’s data on disk (under ./data/<node-name>/) so a
restart keeps its identity and state. To wipe that data for a completely fresh
start, use nuke: