Skip to main content

Merobox CLI

A Python CLI for managing Calimero nodes (Docker or native) and orchestrating YAML workflows.

Full documentation: https://calimero-network.github.io/merobox/

Quick Start

Installation

PyPI (recommended):

pipx 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

# Pass extra arguments straight to `merod run` (binary mode only)
merobox bootstrap run workflow.yml --no-docker --binary-path ./merod \
  --merod-args="--sync-strategy delta --state-sync-strategy hash"

# 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 — ~100 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 Integrationcluster() and workflow() context managers for test harnesses

Requirements

  • Python: 3.9 – 3.11 (3.12+ not supported due to py-near / ed25519 dependency)
  • Docker: 20.10+ (for Docker mode)
  • OS: Linux, macOS (Windows via WSL only)

Documentation

All detailed documentation lives in the Documentation:

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 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

See the Testing Guide for development setup and adding new commands/step types.

License

MIT — see LICENSE for details.

Links

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

merobox-0.6.53.tar.gz (319.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

merobox-0.6.53-py3-none-any.whl (376.8 kB view details)

Uploaded Python 3

File details

Details for the file merobox-0.6.53.tar.gz.

File metadata

  • Download URL: merobox-0.6.53.tar.gz
  • Upload date:
  • Size: 319.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for merobox-0.6.53.tar.gz
Algorithm Hash digest
SHA256 b4a37646b28d7f2ff348eb3ef005fd6f726fba46f11a18c05f06374299a6cbda
MD5 08dbf34a327b2b37f6be634ffd48920d
BLAKE2b-256 6a897c37f5ece0e53d436455929a89b39a381b0c9e1f21340194d97331c2e98c

See more details on using hashes here.

Provenance

The following attestation bundles were made for merobox-0.6.53.tar.gz:

Publisher: release.yml on calimero-network/merobox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file merobox-0.6.53-py3-none-any.whl.

File metadata

  • Download URL: merobox-0.6.53-py3-none-any.whl
  • Upload date:
  • Size: 376.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for merobox-0.6.53-py3-none-any.whl
Algorithm Hash digest
SHA256 dee071c506e14fe7f4d2677f348a24fea5e63b241d90f7ff1f056d6736ee7afe
MD5 5f342b3fba16668f3227c50abb3efbf9
BLAKE2b-256 698ca4ca599bc7215c20b9dbd79ce0d312260950c9462b0aa99134557b3cc4ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for merobox-0.6.53-py3-none-any.whl:

Publisher: release.yml on calimero-network/merobox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.6.69

2 files

0.6.68

2 files

0.6.67

2 files

0.6.66

2 files

0.6.65

2 files

0.6.64

2 files

0.6.63

2 files

0.6.62

2 files

0.6.61

2 files

0.6.60

2 files

0.6.59

2 files

0.6.58

2 files

0.6.57

2 files

0.6.56

2 files

0.6.55

2 files

0.6.54

2 files

This release

0.6.53 This release

2 files

0.6.52

2 files

0.6.51

2 files

0.6.50

2 files

0.6.49

2 files

0.6.48

2 files

0.6.47

2 files

0.6.46

2 files

0.6.45

2 files

0.6.44

2 files

0.6.43

2 files

0.6.42

2 files

0.6.41

2 files

0.6.40

2 files

0.6.39

2 files

0.6.38

2 files

0.6.37

2 files

0.6.36

2 files

0.6.35

2 files

0.6.34

2 files

0.6.33

2 files

0.6.32

2 files

0.6.31

2 files

0.6.30

2 files

0.6.29

2 files

0.6.28

2 files

0.6.27

2 files

0.6.26

2 files

0.6.25

2 files

0.6.24

2 files

0.6.23

2 files

0.6.22

2 files

0.6.21

2 files

0.6.20

2 files

0.6.19

2 files

0.6.18

2 files

0.6.17

2 files

0.6.16

2 files

0.6.15

2 files

0.6.14

2 files

0.6.13

2 files

0.6.12

2 files

0.6.11

2 files

0.6.10

2 files

0.6.9

2 files

0.6.8

2 files

0.6.7

2 files

0.6.6

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.2

2 files

0.5.1

2 files

0.4.6

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

1 file

0.3.0

1 file

0.2.18

1 file

0.2.17

1 file

0.2.16

1 file

0.2.13

1 file

0.2.12

1 file

0.2.11

1 file

0.2.10

1 file

0.2.9

1 file

0.2.8

1 file

0.2.7

1 file

0.2.6

1 file

0.2.5

1 file

0.2.4

1 file

0.2.3

2 files

0.2.1

1 file

0.2.0

1 file

0.1.27

2 files

0.1.26

2 files

0.1.25

2 files

0.1.24

2 files

0.1.23

2 files

0.1.22

2 files

0.1.21

2 files

0.1.20

2 files

0.1.18

2 files

0.1.17

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page