Execution engine for the Orch specification. Takes parsed Orchfile JSON and turns it into running, supervised services.
Orchfile → orch parse (JSON) → Runtime (ExecSet) → Platform (native artifacts)
Runtime produces execution commands from service definitions. Platform consumes them and generates native service manager artifacts.
| Layer | Implemented | Planned |
|---|---|---|
| Runtime | bare |
containerd, podman, apple |
| Platform | systemd |
launchd |
cargo build --release
ln -sf target/release/orchd /usr/local/bin/orchdRequires orch in PATH.
orchd generate [--force]
orchd up [services...] [--no-generate]
orchd down [services...]
orchd restart [services...]
orchd status [--json]
orchd logs <service> [-n lines] [--follow]
orchd health [--timeout 60s] [-v]
orchd list [--enabled] [--disabled] [--json]
orchd clean [--keep-data]
--orchfile <path> Path to Orchfile (default: ./Orchfile)
--overlay <path> Overlay file (repeatable)
--runtime <name> bare (default)
--namespace <name> Unit prefix (default: orch)
--state-dir <path> Artifact directory (default: ~/.orch)
--data-dir <path> Service data (default: <state-dir>/data)
--orch-bin <path> orch binary (default: orch)
-v, --verbose
-q, --quiet
.orchrc in project directory or $HOME, one KEY=VALUE per line:
runtime=bare
namespace=myapp
state_dir=/var/lib/myapp
Supported keys: runtime, platform, namespace, state_dir, data_dir, orch_bin, orchfile.
Merge order: CLI > environment > .orchrc > defaults.
# Generate systemd units from Orchfile + bare overlay
orchd --orchfile ./Orchfile --overlay bare.orch generate
# Start all enabled services
orchd up
# Check health
orchd health --timeout 30s -v
# Tail logs
orchd logs postgres
# Stop everything and clean up
orchd cleancargo test # 74 unit tests
cargo test -- --include-ignored # + integration test (needs orch binary)Apache 2.0