Overview

Agent-Driven Development

Init is built to be driven end-to-end by a coding agent — from a cold clone to a verified, running feature — without a human babysitting each step. This page is that workflow; AGENTS.md at the repo root is the same guide your agent reads in-context.

One-command provisioning

pnpm install
pnpm bootstrap --yes

pnpm bootstrap starts local Supabase, writes .env, pushes the schema, and seeds a dev user. It's interactive by default (a checklist to trim platforms you don't want), but --yes — or any piped, non-TTY invocation, which is how an agent runs it — keeps all apps and runs unattended. It needs Docker for local Supabase, and it's idempotent: re-run it, or pnpm db:reset, any time.

A seeded login

Every provision leaves a known account, so an agent can verify authenticated flows with no signup step:

dev@init.local / password

It comes with a personal organization and a few sample todos (see packages/api/src/seed.ts). The seed goes through better-auth's own signup API, so it exercises the same organization-provisioning path a real user hits.

Verifying a change

Static gate — mirrors CI, run before every commit:

pnpm verify   # typecheck · lint · format · test

Runtime — the part most templates skip. Passing types isn't proof the feature works. Init ships agent-browser so an agent can drive the real web app:

npm i -g agent-browser && agent-browser install
agent-browser open http://localhost:3000
agent-browser snapshot           # accessibility tree with @eN refs
agent-browser fill @e1 dev@init.local
agent-browser click @e3          # sign in, then 'get text' / screenshot to assert

The web app is the one surface an agent can drive headlessly. Mobile, desktop, and extension build and typecheck, but a runtime check on those needs a human — see the matrix below.

OAuth without the internet

Email/password needs nothing external. For the GitHub button, Init wires emulate — a local OAuth provider — so the shipped button works offline in dev. Uncomment NEXT_PUBLIC_GITHUB_EMULATOR_URL in .env, then:

pnpm emulate
pnpm dev:web

With the var set, the "Continue with GitHub" button routes through a dev-only genericOAuth provider aimed at the emulator — the same button, no diverging prod path (unset ⇒ the real provider). Click it and the emulator's user-picker completes sign-in. Fixtures live in emulate.config.yaml.

What an agent can verify

PlatformDev commandRuntime-verifiable by an agent
Web (Next.js)pnpm dev:webYes — headless via agent-browser
Mobile (Expo)pnpm dev:mobileNo — needs a simulator/device
Extension (WXT)pnpm dev:extensionNo — real Chrome
Desktop (Electron)pnpm dev:desktopNo — GUI window

The rest of the surface

Setup and verification are the runnable half of Init's agent story. The rest is context an agent loads on its own:

  • AGENTS.md + CLAUDE.md — conventions and this workflow, read automatically
  • llms.txt and markdown negotiation — the docs as machine-readable text
  • /.well-known/api-catalog — endpoint discovery, including the /api/health probe
  • Agent wiki — an optional OpenWiki job that keeps a generated map current

See Local Development for the human day-to-day workflow.

On this page