A Python CLI tool for managing Calimero nodes in Docker containers
Project description
Merobox CLI
A Python CLI for managing Calimero nodes (Docker or native) and orchestrating YAML workflows.
Full documentation: Architecture Reference
Quick Start
Installation
APT (Ubuntu/Debian):
curl -fsSL https://calimero-network.github.io/merobox/gpg.key \
| sudo tee /usr/share/keyrings/merobox.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/merobox.gpg] https://calimero-network.github.io/merobox stable main" \
| sudo tee /etc/apt/sources.list.d/merobox.list
sudo apt update
sudo apt install merobox
PyPI:
pipx install merobox
Homebrew:
brew install merobox
From source:
git clone https://github.com/calimero-network/merobox.git
cd merobox
pipx install -e .
Basic Usage
# Start Calimero nodes
merobox run --count 2
# Start with auth service (Docker mode)
merobox run --auth-service
# Start with embedded auth (binary mode)
merobox run --no-docker --binary-path /path/to/merod --auth-mode embedded
# Check node status
merobox health
# Execute a workflow
merobox bootstrap run workflow.yml
# Stop all nodes
merobox stop --all
Example Workflow
name: "Hello World"
nodes:
count: 2
prefix: "node"
steps:
- name: "Install App"
type: "install_application"
node: "node-1"
path: "./app.wasm"
outputs:
app_id: applicationId
- name: "Create Context"
type: "create_context"
node: "node-1"
application_id: "{{app_id}}"
outputs:
ctx_id: contextId
- name: "Call Method"
type: "call"
node: "node-1"
context_id: "{{ctx_id}}"
method: "hello"
Features
- Node Management — Start, stop, and monitor nodes in Docker or as native processes
- Workflow Orchestration — 15+ step types for complex multi-step YAML workflows
- Remote Nodes — Connect to remote Calimero nodes with user/password or API key auth
- Auth Integration — Traefik proxy (Docker) or embedded JWT auth (binary mode)
- Fuzzy Testing — Long-duration randomized load tests with weighted operations
- pytest Integration —
cluster()andworkflow()context managers for test harnesses
Requirements
- Python: 3.9 – 3.11 (3.12+ not supported due to
py-near/ed25519dependency) - Docker: 20.10+ (for Docker mode)
- OS: Linux, macOS (Windows via WSL only)
Documentation
All detailed documentation lives in the Architecture Reference:
| Topic | Page |
|---|---|
| System architecture & data flow | System Overview |
| WorkflowExecutor, BaseStep, step factory | Workflow Engine |
| DockerManager, BinaryManager, Traefik | Node Management |
| Remote node CLI & auth methods | Remote Nodes |
| Complete YAML schema & all 16 step types | Workflow YAML |
| All CLI commands with flags & options | CLI Reference |
| MeroboxError hierarchy, retry patterns | Error Handling |
| cluster(), workflow(), pytest fixtures | Testing Guide |
| Common issues & debugging tips | Troubleshooting |
| Terms & definitions | Glossary |
Release Process
# Update version in ONE place
vim merobox/__init__.py # Change __version__ = "X.Y.Z"
# Commit and push — automation handles tagging, builds, GitHub release, and PyPI
git add merobox/__init__.py
git commit -m "chore: bump version to X.Y.Z"
git push origin master
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
See the Testing Guide for development setup and adding new commands/step types.
License
MIT — see LICENSE for details.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file merobox-0.4.2.tar.gz.
File metadata
- Download URL: merobox-0.4.2.tar.gz
- Upload date:
- Size: 170.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
331118fde0044ccd93dbb9ed7289d20bb781c85e7f1ef87d42248621cbb8b037
|
|
| MD5 |
626e8697d4c2024f6f71f09ac8089b7c
|
|
| BLAKE2b-256 |
911676538e18599c46123f8fa4e033e94dcc47b9a2048fe2cd8f42d74fecffb3
|
Provenance
The following attestation bundles were made for merobox-0.4.2.tar.gz:
Publisher:
release.yml on calimero-network/merobox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
merobox-0.4.2.tar.gz -
Subject digest:
331118fde0044ccd93dbb9ed7289d20bb781c85e7f1ef87d42248621cbb8b037 - Sigstore transparency entry: 1252577270
- Sigstore integration time:
-
Permalink:
calimero-network/merobox@dedfc55c7d0f2ebef67846d099ffc5bf7574fb74 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/calimero-network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dedfc55c7d0f2ebef67846d099ffc5bf7574fb74 -
Trigger Event:
push
-
Statement type:
File details
Details for the file merobox-0.4.2-py3-none-any.whl.
File metadata
- Download URL: merobox-0.4.2-py3-none-any.whl
- Upload date:
- Size: 210.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fec55844512b923e66d3c4f5991c78cc53edc4ba012fa97f922936aca4eaf3ff
|
|
| MD5 |
85b95cebf16bf37735a0d1a848abc74d
|
|
| BLAKE2b-256 |
487d2d06f0d33fee1bbe16c26f2578515eb8907cffd5e99962e8938d35bec21d
|
Provenance
The following attestation bundles were made for merobox-0.4.2-py3-none-any.whl:
Publisher:
release.yml on calimero-network/merobox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
merobox-0.4.2-py3-none-any.whl -
Subject digest:
fec55844512b923e66d3c4f5991c78cc53edc4ba012fa97f922936aca4eaf3ff - Sigstore transparency entry: 1252577285
- Sigstore integration time:
-
Permalink:
calimero-network/merobox@dedfc55c7d0f2ebef67846d099ffc5bf7574fb74 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/calimero-network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dedfc55c7d0f2ebef67846d099ffc5bf7574fb74 -
Trigger Event:
push
-
Statement type: