Getting Started
Pro on Void
Install the Void starter, a Vue and Vite app on Cloudflare Workers.
Use this guide to run the Vue and Vite starter built with Void. It includes
the same dashboard, agents, automations, integrations, approvals, and customers model as the
Nuxt starter. Void provisions Cloudflare resources when you deploy.
Requirements
- Node.js 24.21.0+ and pnpm 10.33+.
- A Pro license that includes the Void starter: Team and above, or Solo with Void chosen.
- Access to the private
void-agentic-starterrepository on GitHub, granted with your purchase.
1. Connect the Private Registry
Pro packages come from a private npm registry at registry.nuxtagentic.com, which serves the
@nuxtagentic-pro/* packages and releases your license includes. Everything else, including Void
and Vue, still installs from npm.
Run the public setup CLI once per machine, then paste your license key at the masked prompt:
pnpm dlx @nuxtagentic/cli@latest login
With npm, run npx @nuxtagentic/cli@latest login. Use @next for release candidates. Login
validates the key and saves it in your user ~/.npmrc, not in the project. After installing, run
pnpm exec agentic login to replace a renewed key. See Pro on Nuxt
for registry details, and Licensing for update windows and CI access.
2. Create, Configure, and Run
Clone the starter, create the secrets and the local database, and start the dev server:
git clone <your-starter-repository-url> my-app
cd my-app
pnpm install
pnpm exec agentic keygen # creates .env with AGENTIC_ENCRYPTION_KEY and BETTER_AUTH_SECRET
pnpm db:migrate # applies db/migrations to the local D1 database
pnpm dev # http://127.0.0.1:5173/dashboard
Add a provider key (OPENAI_API_KEY, ANTHROPIC_API_KEY, or GOOGLE_AI_API_KEY) to .env, or
use the built-in mock provider to try agents without one. env.ts passes the supported
variables to Void from @nuxtagentic-pro/void/config; the
environment variable reference lists them.
How the App Is Wired
src/agentic.ts is the single definition of your backend: its features, models, tools, and
integrations.
import { defineVoidAgentic } from '@nuxtagentic-pro/void/server'
import resend from './integrations/resend'
import customers from './models/customers'
export default defineVoidAgentic({ models: [customers], integrations: [resend] })
The Vite plugin reads that module. It requires Node.js 24.21.0 or later:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { voidPlugin } from 'void'
import { voidAgentic } from '@nuxtagentic-pro/void/vite'
export default defineConfig({
plugins: [...(await voidAgentic({ server: 'src/agentic.ts' })), vue(), voidPlugin()],
})
withAgentic adds what Agentic needs to your Void configuration: email sign-in unless you set
auth, file storage, a history fallback for dashboard routes, and anti-framing headers:
import { defineConfig } from 'void/config'
import { withAgentic } from '@nuxtagentic-pro/void/config'
export default defineConfig(
withAgentic({
cloudflare: { name: 'void-agentic-starter', compatibility_date: '2026-10-16' },
auth: { providers: ['email'] },
}),
)
The browser entry mounts the dashboard:
import { createApp } from 'vue'
import ui from '@nuxt/ui/vue-plugin'
import { AgenticApp, createAgenticRouter } from '@nuxtagentic-pro/vue'
import '@nuxtagentic-pro/vue/styles.css'
createApp(AgenticApp).use(createAgenticRouter()).use(ui).mount('#app')
Generated Files
From src/agentic.ts, the plugin writes the entry points Void needs, each marked
Generated by @nuxtagentic-pro/void:
routes/api/agentic/[...path].ts: the API route.durable-objects/agentic-*.ts: the four Durable Object classes.crons/agentic-maintenance.ts: the maintenance cron, every five minutes.auth.tsanddb/schema.ts, when they do not exist yet.
Edit src/agentic.ts rather than generated files. The plugin preserves files you author, including
auth.ts with withAgenticAuth and db/schema.ts re-exporting
@nuxtagentic-pro/server/schema. The starter's schema also exports the customers table.
Where Things Live
| Path | What |
|---|---|
src/agentic.ts | Features and models for the API, crons, and Durable Objects |
src/models/*.ts | Your Agentic Models (Drizzle table + defineAgenticModel) |
src/integrations/*.ts | Your own integrations (defineIntegration) |
db/schema.ts | Schema for migrations: package tables plus your model tables |
src/main.ts | The Vue app shell |
Void has no file-based discovery for agents and tools. Register tools with tools: [...] in
defineVoidAgentic, and create agents and automations in the dashboard.
Next Steps
- Agentic Models.
- Server logic: services in your own Void handlers.
- Deploy to Cloudflare.