27 Sept 🎟️ Fundamentals of AI · free, 50 seats Save my seat → For teams AI in Practice · dates being set now Join the waitlist →
Namaste Ji by Ayushman Dash

Build your own on this chassis. The starter kit is this system, emptied.

Everything the last seven zooms described — the agent anatomy, the shared store, the human gate, models as config, one gateway — exists as a public, MIT-licensed repo with the product stripped out. It is built for coding agents first: hand your agent the repo and two Cloudflare values, and it reaches a deployed, running app in one session without asking you anything — then adds a new agent with one command. Whatever your agents will make, this is the same four-piece pattern, empty.

Start here — hand this to your agent.

The kit is designed to be driven by a coding agent, so the honest starting point is a prompt, not a tutorial. Paste this into Claude Code or Cursor.

A prompt for your coding agent

Clone https://github.com/dashayushman/namaste-ji-boilerplate and read AGENTS.md first — it is the front door and carries the invariants, the scaffolds and the verification contract.

Then:
1. Copy .env.example to .env and fill in CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID (mine — the kit owns no accounts). Every other key is optional; the daily-card example defaults to Workers AI.
2. Run `npm run bootstrap`. It is idempotent: it provisions D1, KV, R2, Queues, Vectorize, an AI Gateway and the Secrets Store via Alchemy, runs migrations, seeds config, deploys staging, smoke-tests it and prints the URLs. If something is missing, run `npm run doctor` and act on what it reports.
3. Verify with `npm run check` and `npm run smoke`. Both green means done — that is the contract, not my opinion.
4. Then add a new agent with `npm run new:agent <name>` and follow the checklist it prints. Re-running `npm run bootstrap` deploys it; you should not have to edit any script to make that work.

Do not ask me for credentials beyond the two Cloudflare values, and do not commit any .env, .dev.vars or .mcp.json file.

Everything it needs is in the repo — AGENTS.md, one idempotent bootstrap, and a verification contract it can check itself against.

A watercolour of a bright workshop with a blank canvas on an easel.

Status · v0, public

Generated from this monorepo — and live.

The public repo dashayushman/namaste-ji-boilerplate (MIT) is produced by scripts/export-starter.mjs with an allow-list: the Agent Kernel, the config loader, Alchemy IaC (account- and stage-pinned), bootstrap · doctor · check · smoke · new:agent, the daily-card example (Workers AI through your AI Gateway, D1, HTTP + cron), task runbooks, and a CI that proves check + bootstrap --dry-run without owning any account. Out: the playbooks, the Langfuse library, our account ids and hosts.

v0 means: the kernel, config, infra, the example and the scaffold work — including deploying an agent the scaffold created, which is the second half of the promise above and was the last thing standing between the kit and that sentence. The console shell, new:consumer / new:page / new:port and a weekly cloud end-to-end are next. The terminal on the story page is what bootstrap prints.

The success criterion, verbatim.

A coding agent (Claude Code, Codex, Cursor, Gemini CLI…) is given only the repo and a .env containing the keys the human must supply. Without asking a human anything, in one session, it reaches: Cloudflare infra provisioned · the example pipeline running on staging · the console showing a rendered card · green checks · and it can then add a new agent with one command.

Agent-first principles.

  1. K-1
    AGENTS.md is the front door

    The first file any agent reads: invariants, the ONE bootstrap command, scaffolds, the verification contract, the runbooks index. CLAUDE.md is a one-line import of it.

  2. K-2
    One idempotent bootstrap

    reads .env → install → Alchemy provisions D1 · KV · R2 · Queues · Vectorize · AI Gateway · Secrets Store → migrations → config seed → deploy staging → smoke → prints the URLs. Re-runnable; `doctor` explains what is missing in agent-readable form.

  3. K-3
    Every external dependency is yours

    .env.example lists each one with required/optional and what it unlocks. Exactly two values are required — your Cloudflare token and account id; bootstrap generates the Alchemy state passphrase itself. Model keys are optional (Workers AI is the default), R2 and Queues are opt-in, so a free Cloudflare plan gets all the way through. The kit owns no accounts and points at none of ours.

  4. K-4
    Scaffolds, not file archaeology

    npm run new:agent <name> — deterministic output: its own table, migration and binding, the workspace linked for you, and a checklist that ends in a deploy. The next bootstrap picks the new agent up with no file to edit. (new:consumer · new:page · new:port are not built yet.)

  5. K-5
    Verification contracts

    npm run check (typecheck + tests + secret-scan) and npm run smoke (deployed endpoints). CI runs exactly these — and scaffolds an agent to prove that stays green too; "done" = both green.

  6. K-6
    Task runbooks

    tasks/*.md with frontmatter: add an agent, add a tool, add a queue stage, add a console page, switch a role to OpenAI, deploy prod — goal, files, acceptance criteria.

  7. K-7
    Safety rails

    .env*/.dev.vars/.mcp.json gitignored from day one; pre-commit + CI secret scan; doctor refuses prod without --prod --i-know; keys never in tracked files.

  8. K-8
    MCP-ready

    .mcp.json.example for the Cloudflare + GitHub servers; AGENTS.md says which MCP to prefer for which job.

  9. K-9
    Runs without the cloud

    npm run dev = wrangler dev with local D1 and KV. With no AI Gateway configured the example writes its card from a built-in stub, so POST /run, GET /cards and the cron path all work with no account and no keys at all.

  10. K-10
    Generated, never hand-forked

    npm run export:starter in this monorepo (allow-list + transforms; docs relinked to their published copies) → the public repo. Its CI proves the promise without any owned account: check · new:agent · check again · bootstrap --dry-run listing both agents.

Go deeper

Public places to see this part working.