What behold is
behold is a live control plane over a chant estate. chant compiles typed TypeScript into spec-native infrastructure output; behold reads what chant declared and what the cloud reports, and shows you the difference.
chant source ──build/lint──▶ graph IR ──behold──▶ live graph + drift + (delegated) actions (deterministic) (server + browser)The mixed estate is the point
Section titled “The mixed estate is the point”Where Argo CD shows one cluster’s tree, behold shows the estate that spans substrates: an EKS cluster declared in CloudFormation and the Kubernetes Service running on it.
Each substrate has its own kind of truth, and behold keeps them distinct rather than flattening:
| substrate | what “deployed” means there |
|---|---|
| AWS | CloudFormation lists the resource, and the last stack operation succeeded |
| Kubernetes | the object exists, its owned Pods are running, and chant’s field manager still owns the fields it wrote |
| Azure / GCP | the resource answered a read; there is no deploy object to ask |
That last row is why component status reads from a resource rollup rather than a stack: on a substrate with no deployment object, the stack cannot be the source of truth, because there isn’t one.
Read-only core, delegated writes
Section titled “Read-only core, delegated writes”behold never mutates anything itself. This is the invariant rather than a current limitation.
- Every view is a read:
chant graph, snapshots, live describes. - Sync starts the
ApplyOpyour project committed. Adopt starts yourReconcileOp, which opens a PR a human merges. - behold triggers Ops that run on your executor. It holds no apply credentials, and there is no endpoint in it that writes to a cloud.
Authority stays in your committed source and your worker. If a request would have behold write to a cloud or to source directly, that is a bug.
What it is not
Section titled “What it is not”- Not a deployer: behold starts your Ops, and chant’s executor does the work.
- Not a state store. Truth lives in the live system, and ownership is read from a marker on the resource.
- Not a new abstraction over your cloud. The graph is your declarations and your resources, at their real names.