What you need
Almost nothing — and that's the point.
- An AI agent — Claude Code, Cursor, Grok, Gemini, Codex, Copilot, Antigravity, whatever you run. The contract is runtime-neutral, so you're not buying into one vendor to use it.
- A provider CLI you already have —
aws/wrangler/gcloud/az. No Terraform, no plugins, no separate state backend to reconcile. - No plan/apply gap. There's no second machine-state to drift from reality: the plan reads the live resource back and records what it actually observed. No
terraform initpulling provider binaries, no state file to lock, no HCL to learn, no waiting on a provider release to reach a new API — the agent drives the CLI you already trust. - Prose is the authoring surface, not the artifact. You say what you want in plain English; what lands in the repo is a deterministic Markdown file — reviewable, diffable, identical on Tuesday and Friday. The improvisation happens at authoring time, in front of a human — never against prod on a re-run.
The contract (EPHEMERA.md) is runtime-neutral; the per-agent adapter is a ~20-line router — the Claude skill, or the AGENTS.md block for Codex / Cursor / Gemini / Antigravity. Switch agents whenever you like; the plans don't change.
Get started
Install writes exactly three text files and runs no code: EPHEMERA.md (the contract
your agent follows), EPHEMERA-TEMPLATE.md, and a thin Claude adapter skill. Pick the door
that suits your shop — the audited path is the same three curls the fast path runs, by hand.
Inspect first recommended
Download the three files, read them, then they're just in your repo. Nothing was piped to a shell.
curl -fsSL https://ephemera.daystra.com/EPHEMERA.md -o EPHEMERA.md
curl -fsSL https://ephemera.daystra.com/EPHEMERA-TEMPLATE.md -o EPHEMERA-TEMPLATE.md
curl -fsSL https://ephemera.daystra.com/skills/claude/SKILL.md \
--create-dirs -o .claude/skills/ephemera/SKILL.md
# optional: verify against the published manifest
curl -fsSL https://ephemera.daystra.com/SHA256SUMS.txt | shasum -a 256 -c
Fast path curl | sh
The one-liner — and it's not a black box: it reads on the page, prints every file before it lands, and verifies each against SHA256SUMS.txt, aborting on any mismatch.
cd your-project # or: mkdir my-infra && cd my-infra curl -fsSL https://ephemera.daystra.com/install.sh | sh # audited variant — read it, then run it: curl -fsSL https://ephemera.daystra.com/install.sh -o install.sh sh install.sh
Point your agent at EPHEMERA.md (Claude's skill is pre-wired; other agents paste the
AGENTS.md block), then describe what you want — the agent authors or fetches
a plan, you review the file, and it runs:
"I want my contact page to send email." "stand up a static site on Cloudflare" verify web.cloudflare.md take this to AWS
Fetch any ready-made plan directly —
curl -fsSL https://ephemera.daystra.com/plans/<stack>.<provider>.md — read it before you
run it (that's the whole point), or let the agent author one to your need. Browse them in the tree below.
What the agent can — and can't — do
An agent driving your cloud is the first thing a security reviewer asks about. Here's the honest answer, including the part that isn't finished.
argv, or shell history. The plan's ledger records a token's name,
never its value, and proves it with a negative check.curl is not yet signed or version-pinned, so review the
Markdown before you run it (it's a few KB you can read in a sitting — that's the whole design).
Plan signing and pinned manifests are on the roadmap.What's in the box
One file per stack: it describes the desired state, carries the commands, records what it built, verifies itself, and tears itself down. Every plan carries an honest maturity mark — we'd rather you know what's proven than pad the count. Click a plan to preview it here.
ephemera.daystra.com/ ├── EPHEMERA.md the execution contract — agents fetch this ├── EPHEMERA-TEMPLATE.md author a new plan ├── install.sh writes 3 files, checksum-verified ├── SHA256SUMS.txt integrity manifest for the installed contract ├── llms.txt agent-readable summary ├── catalog.json intent → bindings (now carries maturity) ├── skills/claude/SKILL.md Claude adapter (install.sh wires it) ├── AGENTS.block.md Codex · Cursor · Gemini · Antigravity ├── plans/ — golden paths · cloud infra you'd run in production — │ ├── web.aws.md · web.cloudflare.md · web.gcp.md · web.gcp-firebase.md static site │ ├── auth.firebase.md · auth.aws.md user auth (Firebase · Cognito + credential broker) │ ├── payments.stripe.md accept payments — Checkout · webhook · portal │ ├── task-runner.aws.md · …cloudflare.md async task API │ ├── email.resend.md · …cloudflare · …aws · email-routing.cloudflare transactional email (send) + inbound routing (receive) │ ├── domain.aws.md · …cloudflare.md registration + DNS │ ├── network.aws.md · ecs-cluster · ecs-service VPC + container platform │ ├── account.cloudflare.md · service · storage · database · realtime · inference · vector · workflow · cost-guard CF onboarding + app primitives (R2·D1·DO·AI·Vectorize·Workflows·billing) │ └── service.aws.md · storage · document-db · data-api · observability · lambda-layer · source-connection · ci-runner AWS app primitives (Lambda+JWT·S3·DynamoDB·AppSync·alarms·layers·git-OAuth·CI) ├── plans/ — lab · our own workbench (local & experimental — not infra primitives) — │ └── inference.ollama.md · messaging.slack · agent.local · adversarial-review.multi-model · sdd-fleet.local · archive.local Ollama · Slack · local agent · multi-model review gate · SDD fleet · media archive └── recipes/ — golden-path runbooks · compose the plans — └── docker-build · cloudflare-traffic-triage · alerts-to-slack · contact-form-site · local-slack-agent · multi-worker-app · releases-page-clerk
Start here
Preview
Click any plan above — it renders here, one at a time. Agents fetch the raw .md at the same URL.