chant
CHANT
Typed infrastructure
Infrastructure in TypeScript, out as CloudFormation, Kubernetes YAML, GitHub Actions and more.
Works
- Typed CloudFormation resources and composites such as
LambdaNode, built to a standard template bychant build - Deploys to Floci, a local AWS emulator, through
awsApply, with no account and no credentials - An EKS cluster from the AWS lexicon and its workloads from the Kubernetes lexicon, in one project
- GitHub:
--generate githubwrites the pull-request workflow under.github/workflows/, run onpull_requestand onpushto the target branch. - GitHub: Both jobs use the job's own
github.token. On a pull request from a fork that token is read-only, so the plan note and the status are not posted.
In the repo: 19 example projects under lexicons/aws/examples. The proof
First step
npm install --save-dev @intentius/chant-lexicon-aws
npx chant init my-infra --lexicon aws Quick Start More in chant on AWS: what differs on each forge, the proof, and what to read next.
- Plain TypeScript, no DSL and no YAML
- Lint rules that check meaning
- CloudFormation, Kubernetes YAML and more
- 22 lexicons, and a contract for your own
- Observe, reconcile or apply, per environment
- Ops with gates and rollback
- Component releases, signed and verified
- Local emulators, no cloud account
The lexicons
Section titled “The lexicons”Each lexicon is a plugin for one platform: its types, its lint rules and its output format. Install one and chant init scaffolds a project for it. Lexicons covers how they work, and Extend chant covers writing your own.
- Kubernetes
- KubernetesHelmk3dk3s
- Observability
- OpenTelemetry CollectorPrometheusGrafana
The lifecycle you choose
Section titled “The lifecycle you choose”The build is deterministic and keeps no authoritative state file. What happens after it is up to you, per environment: observe drift, reconcile the source from the live system, or apply the source to it. Lifecycle Models compares the three.
-
chant buildevery changeTypeScript in, native files such as CloudFormation out, with no state file.
-
chant lintevery pull requestSemantic rules and your organization's policy over the built output.
-
chant runwhen you deployAn Op's phases in-process, with gates and rollback, or on a fountain steward.
-
chant lifecycle diff --livewhen you askOut-of-band drift between the source and the live system.
-
WatchOpon a scheduleThe same snapshot and live diff, run on a cadence.
Where to read next
Section titled “Where to read next”- Look up
- CLIConfig FileLint rules
- Changes
- What's New
Hand the setup to your coding agent
Section titled “Hand the setup to your coding agent”Quick Start has the same steps by hand. Or paste this prompt into Claude Code, Codex or Cursor in your repository. Agents Start Here says what the agent does. It stops at a pull request. Deploys to a real account, approvals and merges stay with people.
Show the whole prompt
Set up chant in this repository.
Read https://intentius.io/chant/llms.txt first, then
https://intentius.io/chant/agents/ and follow it.
Stop when `npx chant build` and `npx chant lint` pass, and open a pull request with the result.
Never deploy to a real cloud account or shared environment (with `chant run`, `chant components` or a platform's own CLI), approve (a pull request review, `chant approve` or `chant run approve`), override a policy denial (`chant approve policy-override`), or merge; never cut or publish a release (`chant release cut --yes` or `chant release publish`), push or delete a `ci/*` tag (`chant ci tick` pushes them), or change the value of an existing flag; never touch `.chant/allowed_signers` or `chant/lifecycle`.