Live host-by-task matrix
Read a run like a dashboard, not a scrollback. Every host and task, painted live over Server-Sent Events, with per-task drill-down.
One Go binary. No Kubernetes, no Postgres, no Redis. Run Ansible, Terraform, Bash, and Python. Read every run as a live host-by-task matrix, split big jobs across balanced shards, and prove exactly what ran and who approved it.
Open source · BSL 1.1 · migrate from AWX or Semaphore in one command
Runs you read like a dashboard. Jobs that balance themselves. A fleet that remembers. A control plane that proves it. One binary.
Read a run like a dashboard, not a scrollback. Every host and task, painted live over Server-Sent Events, with per-task drill-down.
Ansible, Terraform, Bash, and Python — each with a dry run. One engine, one UI, one audit trail. Not four tools bolted together.
Shard a big job across hosts, balanced by each host's measured duration. Retry only the shards that failed, not the whole run.
Flaky hosts flagged, durations trended, every host's history kept across runs. AWX and Semaphore forget the moment a run ends.
Every change is linked into a tamper-evident SHA-256 hash chain. Export a signed copy and verify it offline, without trusting the server.
Sealed at rest, sourced live from Vault or Google Secret Manager, and masked out of run logs. A tool that prints a secret shows ***.
Hold risky runs for sign-off by policy — by tool, command, or target. Operators request, admins release. No skipping the gate.
Import your AWX or Semaphore projects, inventories, templates, surveys, and schedules with a single command. Leave anytime, too.
Multi-tool execution is table stakes now. What sets Yardmaster apart sits above execution — the control plane that makes automation provable and governed.
terraform destroy holds for an admin's sign-off, automatically.Where Yardmaster pulls ahead. The full head-to-head, including where it's behind, is in the comparison doc.
| Capability | Yardmaster | AWX | Semaphore |
|---|---|---|---|
| Deploy without Kubernetes | |||
| Live host-by-task matrix | |||
| Ansible · Terraform · Bash · Python | Ansible only | Terraform + shell | |
| Duration-balanced job splitting | round-robin | ||
| Fleet memory: flaky hosts, trends | |||
| Tamper-evident, signed audit | |||
| Secrets masked in run logs | |||
| Enforced approval policies | basic | ||
| One-command migration in |
One binary, one SQLite file. No control plane to stand up first.
# install (or grab a release binary)
go install github.com/dcadolph/yardmaster@latest
# serve — SQLite by default, PostgreSQL optional
yardmaster serve --addr :8080 --db yard.db
# open the UI
open http://localhost:8080/ui/
Structured runs, balanced splits, a fleet that remembers, and a control plane that proves itself — from one binary.