Local development
Two Cloudflare Workers: the app (packages/www, SvelteKit) and the agents worker (packages/worker, Durable Object runtime). Two ways to run locally, depending on what you need.
Vite dev (HMR, UI iteration)
bun run dev # in packages/www — vite dev on :8888Fast reload, good for UI work. The Cloudflare vite plugin is disabled so worker bindings (HUS_AGENT, rate limiter) aren’t available — agent features won’t work in this mode.
Wrangler dev (full stack, no HMR)
Run both workers if you want a fully local agents stack:
bunx wrangler dev -c packages/www/wrangler.jsonc -c packages/worker/wrangler.jsoncOr run just the app and let bot dispatch hit the deployed agents worker over HTTP:
bunx wrangler dev --remote # from packages/wwwThis puts the app in a Cloudflare preview environment while bot dispatch still goes through the deployed agents worker’s HTTP endpoint.
Running wrangler dev for the app alone is fine for chat dispatch now — local hosts hit http://127.0.0.1:8990 if the agents worker is running, otherwise the deployed worker URL. Routes that still use the HUS_AGENT binding directly need a real binding context.
Secrets
The agents worker needs .dev.vars in packages/worker/ for local dev. See environment-variables.md for the full list of secrets and where to find them.
Lint, format, test
bun run lint # all packagesbun run test # all packagesBiome handles lint and format for most packages (biome.jsonc at repo root). The app uses eslint + prettier because of svelte plugin needs:
bun run lint # from packages/www — prettier + eslint + svelte-checkProduction URLs
- App:
https://arbe.0sk.ar - Agents:
https://hus-agents.0skar.workers.dev