Read AGENTS.md first — it's the engineering contract for this repository.
bun install
bun run devRun bun run dev as written (not bun --bun run dev) — Bun's own runtime has an incomplete WebSocket implementation that hangs the Cloudflare dev server's inspector connection. Plain bun run dev executes Vite under Node via its shebang, which works correctly.
bun run dev # start the dev server
bun run build # production build (Cloudflare Workers target)
bun run typecheck # tsc --noEmit
bun run lint # eslint
bun run format # prettier --write + eslint --fix
bun run test # vitest runwrangler login
bun run deploySee AGENTS.md §17 for the deployment contract.