Everything you and your agent(s) need to build robust and performant applications that will scale to the far-side of the moon.
Andurel is the fullstack framework for the agentic era: one-time generation that writes Go you own, explicit wiring, and an agent-ready CLI.
Docs: andurel.com · Discord: join here
This README tracks
master(head / nightly). It may describe features not yet in the latest semver release. Stable documentation matchesgo install …@latestat andurel.com/docs.
Andurel supports Linux and macOS on amd64 and arm64. Official releases contain and smoke-test all four combinations.
See release verification for archive installation, checksums, SBOMs, keyless signatures, and provenance.
Andurel is built for humans and agents on the same pad:
- Airframe: Generated models, factories, controllers, routes, and pages that belong to the application
- GNC: Fx for dependency injection and lifecycle. Explicit wiring, not a hidden runtime
- Propellant: PostgreSQL with narsilc-generated queries into application-owned model structs
- Payload: Inertia v3 with React, Vue, or Svelte. Same Go backend, official Inertia adapters, optional SSR. Templ + Datastar remains available for hypermedia pages
- Range ops: River jobs, email, and queues on the same stack that serves the request path
- Ground support: Agent-ready CLI, JSON discovery, and AGENTS.md so machines can operate the project without a second stack
- Live reload:
andurel runwith Shadowfax for Go, templates, CSS, and Vite (--tools mailpitfor sidecars) - Production build:
andurel buildcompiles Templ, Tailwind CSS, Vite assets, and the Go binary
Humans. One-time generation. The scaffold writes Go and Inertia pages you can read, edit, and ship. After that, the code is yours.
Agents. An agent-ready CLI with JSON discovery, plus AGENTS.md in the project. Machines get the same pad as humans, without inventing a second stack.
- Echo: HTTP framework
- PostgreSQL + pgx: Database
- narsilc: Typed SQL with caller-owned result structs
- Templ + Datastar: Default hypermedia UI
- Inertia v3: Default React / Vue / Svelte + Vite
- River: Background jobs
- OpenTelemetry: Observability
- Tailwind CSS: CSS
- Shadowfax: Dev runner
- Fx: Dependency injection
Match the install channel to the docs you follow.
go install github.com/mbvlabs/andurel/v2@latest
andurel --versiongo install github.com/mbvlabs/andurel/v2@v2.0.0
andurel --versionv1 releases stay on the unversioned module path (go install github.com/mbvlabs/andurel@v1.x.y). That path's @latest never jumps to v2.
Nightly ships as prebuilt binaries on the nightly GitHub release. Do not use go install for nightly; it builds from source without the embedded nightly version metadata.
# Linux amd64 (also available: andurel-darwin-arm64, andurel-darwin-amd64)
curl -L https://github.com/mbvlabs/andurel/releases/download/nightly/andurel-linux-amd64 -o andurel
chmod +x andurel
mv andurel "$(go env GOBIN)/"
andurel --versionVerified release archives (checksums, attestations) are documented in release verification.
Full install guide: andurel.com/docs.
# Default: PostgreSQL + Inertia React + pnpm
andurel new myapp
# Other UI combinations
andurel new myapp --ui vue/bun
andurel new myapp --ui svelte/npm
andurel new myapp --ui templ/datastar
cd myapp
andurel tool sync
andurel skill install
cp .env.example .env
# Edit .env with your database credentials
# If using Inertia, install JS deps with the package manager from --ui
andurel db create # optional: if the local database does not exist yet
andurel db migrate up
andurel runApp: http://localhost:8080
Generate a first resource after writing a migration:
andurel generate migration create_products_table
# Edit the SQL, then:
andurel generate scaffold ProductSee what generators can do:
andurel generate --help
andurel db --helpA new app is ordinary Go you own. Top-level shape:
| Path | Role |
|---|---|
cmd/app, cmd/queue |
Process entry: load env, signal context, fx.New |
cmd/migrate |
One-shot process: apply pending SQL via storage.RunMigrations |
cmd/seeds |
One-shot process: run named seed sets |
internal/runtime |
Fx graphs and process wiring (telemetry, email, database, server) |
config/ |
App, DB, auth, email, telemetry config |
controllers/ |
HTTP handlers |
models/ |
Domain types + narsilc queries |
router/ |
Routes and middleware |
views/ |
Templ pages for Datastar UI; Inertia root document when using Inertia |
resources/js/ |
Inertia pages (default UI) |
database/ |
Migrations and seeds |
queue/ |
River jobs and workers |
css/ / assets/ |
Tailwind source and compiled assets |
Default: Inertia React + pnpm (--ui react/pnpm).
--ui react/pnpm|vue/bun|svelte/npm|templ/datastar: Same Go backend; choose Inertia + JS package manager (pnpm, bun, or npm), or Templ + Datastar. Generate follows the project UI; pass --api for JSON responses instead.
Details: directory structure · frontend options.
| Command | Purpose |
|---|---|
andurel new (n) |
Scaffold a project |
andurel generate |
Create model, migration, controller, scaffold, job, email, query |
andurel sync |
Refresh derived files (factories, views, queries, …) |
andurel db |
Database lifecycle: create, drop, nuke, rebuild, migrate, seed, console |
andurel run (r) |
Dev server with live reload |
andurel build |
Production build (Templ, CSS, Vite, Go binary) |
andurel tool sync |
Download pinned project binaries |
andurel upgrade |
Bring an app forward to a newer Andurel |
andurel doctor |
Project diagnostics |
andurel skill |
Show / install the embedded agent skill |
andurel inspect |
Read-only project shape (routes, models, …) |
andurel commands |
Structured command discovery |
Use andurel <command> --help for flags. Full CLI reference: andurel.com/docs/latest/cli.
The CLI is meant for humans and machines. Prefer discovery over scraping this README:
andurel commands --json
andurel inspect project --json
andurel skill installMany mutating commands support --dry-run and --json. Agent workflows: andurel.com/docs/latest/agent-workflows.
- Fork and branch
- Make changes
- Run
just check-fmt,just check-fix, andjust vet(orgofmt/go fix/go vetwithGOWORK=off) - Open a pull request
just recipes and CI set GOWORK=off so the CLI resolves pkg/* from go.mod, matching go install. The workspace file is for local ad-hoc work only.
git clone https://github.com/mbvlabs/andurel
cd andurel
GOWORK=off go mod download
just vetMIT. See LICENSE.
- DeployCrate: Remote boxes for your agents and teams
- MBV Blog: Personal blog
- Master Golang: Course platform
- Palantir: Open sourced analytics platform (WIP)
Built something cool? Let me know or open a PR.
Created by Morten Vistisen