void 0.1.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT_PROMPT.md +15 -0
- package/README.md +62 -123
- package/dist/auth-BdsJ0Aff.d.mts +43 -0
- package/dist/auth-cmd-Dx8oPKZC.mjs +43 -0
- package/dist/auth-migrations-BAtAck2g.mjs +117 -0
- package/dist/better-auth-shared-C9_GHSkR.d.mts +71 -0
- package/dist/better-auth-shared-CdYmQGry.mjs +163 -0
- package/dist/cache-W82I8ihI.mjs +47 -0
- package/dist/cancel-deploy-BOBTqqh0.mjs +59 -0
- package/dist/cf-access-Dee5cXxL.mjs +22 -0
- package/dist/chunk-DJd-R1mw.mjs +34 -0
- package/dist/cli/cli.d.mts +1 -0
- package/dist/cli/cli.mjs +1807 -0
- package/dist/client-snXOjrp1.mjs +565 -0
- package/dist/collect-CjeZgz5D.mjs +55 -0
- package/dist/config-BIa9HwVX.mjs +573 -0
- package/dist/config-BzM9Dy7T.mjs +37 -0
- package/dist/config-CvHtTM0q.mjs +30 -0
- package/dist/create-project-BIA15W7z.mjs +90 -0
- package/dist/db-DsRoMcfN.mjs +895 -0
- package/dist/defer-DcxEsVH1.mjs +49 -0
- package/dist/delete-DAP6yDc7.mjs +64 -0
- package/dist/deploy-BPKblFx6.mjs +2424 -0
- package/dist/discover-B7FkXBLB.mjs +40 -0
- package/dist/dist-DUyXJLkq.mjs +2667 -0
- package/dist/dist-Dayj3gCK.mjs +1287 -0
- package/dist/domain-BGofcQ6I.mjs +79 -0
- package/dist/dotenv-DwO4ti0Z.mjs +173 -0
- package/dist/drizzle-NnudE_UN.mjs +232 -0
- package/dist/env-CyG3tvU0.mjs +301 -0
- package/dist/env-helpers-Dr9Y7RnE.d.mts +52 -0
- package/dist/env-raw-BDL4TvdN.mjs +32 -0
- package/dist/env-types-DknSA4SO.mjs +64 -0
- package/dist/env-validation-DJKjR_8q.mjs +163 -0
- package/dist/fetch-error-BQ8sZ5Nd.mjs +266 -0
- package/dist/fetch-error-CVZ5CGA-.d.mts +20 -0
- package/dist/gen-U0Ktr4Zd.mjs +761 -0
- package/dist/handler-B0ds0OHJ.d.mts +269 -0
- package/dist/head-P-egrtFE.d.mts +45 -0
- package/dist/headers-DCXc7mDs.mjs +279 -0
- package/dist/index.d.mts +32 -0
- package/dist/index.mjs +4695 -0
- package/dist/init-C7wS5iGP.mjs +2625 -0
- package/dist/link-p2R6NbgN.mjs +49 -0
- package/dist/list-Bfel-QLc.mjs +113 -0
- package/dist/log-DXdqnmhF.mjs +26 -0
- package/dist/login-CkcXUiIu.mjs +72 -0
- package/dist/logs-DmkrRvx6.mjs +98 -0
- package/dist/magic-string.es-D6g9UnIy.mjs +1011 -0
- package/dist/mcp-CaQzfeUi.mjs +373 -0
- package/dist/node-DDfXj10V.mjs +54 -0
- package/dist/output-BwlcIYSR.mjs +139 -0
- package/dist/pages/client.d.mts +198 -0
- package/dist/pages/client.mjs +980 -0
- package/dist/pages/head-client.d.mts +15 -0
- package/dist/pages/head-client.mjs +90 -0
- package/dist/pages/head.d.mts +2 -0
- package/dist/pages/head.mjs +112 -0
- package/dist/pages/index.d.mts +38 -0
- package/dist/pages/index.mjs +76 -0
- package/dist/pages/islands-plugin.d.mts +50 -0
- package/dist/pages/islands-plugin.mjs +195 -0
- package/dist/pages/prefetch.d.mts +31 -0
- package/dist/pages/prefetch.mjs +90 -0
- package/dist/pages/protocol.d.mts +3 -0
- package/dist/pages/protocol.mjs +193 -0
- package/dist/pages/serialize.d.mts +10 -0
- package/dist/pages/serialize.mjs +14 -0
- package/dist/pathe.M-eThtNZ-D-kmWkCS.mjs +150 -0
- package/dist/plugin-inference-oZ6Ybu2_.mjs +2447 -0
- package/dist/prepare-BAtWufvm.mjs +99 -0
- package/dist/preset-D4I73kT4.mjs +221 -0
- package/dist/project-TqORyHn8.mjs +72 -0
- package/dist/project-cmd-B7lQp3F3.mjs +67 -0
- package/dist/project-slug-CKam8lF9.mjs +11 -0
- package/dist/project-tsconfig-DfkESbDL.mjs +63 -0
- package/dist/protocol-BWzXs2A2.d.mts +34 -0
- package/dist/providers-B3aMxWzP.mjs +67 -0
- package/dist/resolve-project-Br5BR03U.mjs +29 -0
- package/dist/rollback-gyC59l7U.mjs +92 -0
- package/dist/route-types-DReF1gUY.mjs +255 -0
- package/dist/routes-stub.d.mts +55 -0
- package/dist/routes-stub.mjs +1 -0
- package/dist/runner-6Ep3fNQu.mjs +123 -0
- package/dist/runner-pg-D0wWHYnr.mjs +57 -0
- package/dist/runtime/ai.d.mts +127 -0
- package/dist/runtime/ai.mjs +348 -0
- package/dist/runtime/auth-client-react.d.mts +8 -0
- package/dist/runtime/auth-client-react.mjs +6 -0
- package/dist/runtime/auth-client-solid.d.mts +8 -0
- package/dist/runtime/auth-client-solid.mjs +6 -0
- package/dist/runtime/auth-client-svelte.d.mts +8 -0
- package/dist/runtime/auth-client-svelte.mjs +6 -0
- package/dist/runtime/auth-client-vue.d.mts +8 -0
- package/dist/runtime/auth-client-vue.mjs +6 -0
- package/dist/runtime/auth-client.d.mts +8 -0
- package/dist/runtime/auth-client.mjs +6 -0
- package/dist/runtime/auth.d.mts +2 -0
- package/dist/runtime/auth.mjs +22 -0
- package/dist/runtime/better-auth-pg.d.mts +11 -0
- package/dist/runtime/better-auth-pg.mjs +51 -0
- package/dist/runtime/better-auth.d.mts +11 -0
- package/dist/runtime/better-auth.mjs +33 -0
- package/dist/runtime/client.d.mts +6 -0
- package/dist/runtime/client.mjs +5 -0
- package/dist/runtime/db-pg.d.mts +2 -0
- package/dist/runtime/db-pg.mjs +1 -0
- package/dist/runtime/db.d.mts +17 -0
- package/dist/runtime/db.mjs +30 -0
- package/dist/runtime/drizzle-arktype.d.mts +1 -0
- package/dist/runtime/drizzle-arktype.mjs +2 -0
- package/dist/runtime/drizzle-valibot.d.mts +1 -0
- package/dist/runtime/drizzle-valibot.mjs +2 -0
- package/dist/runtime/drizzle-zod.d.mts +1 -0
- package/dist/runtime/drizzle-zod.mjs +2 -0
- package/dist/runtime/env-helpers.d.mts +2 -0
- package/dist/runtime/env-helpers.mjs +173 -0
- package/dist/runtime/env-public-client.d.mts +22 -0
- package/dist/runtime/env-public-client.mjs +54 -0
- package/dist/runtime/env-public.d.mts +143 -0
- package/dist/runtime/env-public.mjs +366 -0
- package/dist/runtime/env.d.mts +13 -0
- package/dist/runtime/env.mjs +51 -0
- package/dist/runtime/fetch-stream.d.mts +51 -0
- package/dist/runtime/fetch-stream.mjs +81 -0
- package/dist/runtime/fetch.d.mts +59 -0
- package/dist/runtime/fetch.mjs +18 -0
- package/dist/runtime/handler.d.mts +3 -0
- package/dist/runtime/handler.mjs +85 -0
- package/dist/runtime/isr.d.mts +26 -0
- package/dist/runtime/isr.mjs +43 -0
- package/dist/runtime/kv.d.mts +48 -0
- package/dist/runtime/kv.mjs +106 -0
- package/dist/runtime/log.d.mts +24 -0
- package/dist/runtime/log.mjs +31 -0
- package/dist/runtime/migration-handler-pg.d.mts +6 -0
- package/dist/runtime/migration-handler-pg.mjs +85 -0
- package/dist/runtime/migration-handler.d.mts +19 -0
- package/dist/runtime/migration-handler.mjs +92 -0
- package/dist/runtime/queues.d.mts +7 -0
- package/dist/runtime/queues.mjs +8 -0
- package/dist/runtime/remote/binding-handler.d.mts +15 -0
- package/dist/runtime/remote/binding-handler.mjs +208 -0
- package/dist/runtime/remote/index.d.mts +8 -0
- package/dist/runtime/remote/index.mjs +461 -0
- package/dist/runtime/response.d.mts +14 -0
- package/dist/runtime/response.mjs +30 -0
- package/dist/runtime/sandbox.d.mts +17 -0
- package/dist/runtime/sandbox.mjs +19 -0
- package/dist/runtime/schema-d1.d.mts +1 -0
- package/dist/runtime/schema-d1.mjs +2 -0
- package/dist/runtime/schema-pg.d.mts +1 -0
- package/dist/runtime/schema-pg.mjs +2 -0
- package/dist/runtime/seed.d.mts +30 -0
- package/dist/runtime/seed.mjs +6 -0
- package/dist/runtime/storage.d.mts +7 -0
- package/dist/runtime/storage.mjs +14 -0
- package/dist/runtime/validator.d.mts +2 -0
- package/dist/runtime/validator.mjs +72 -0
- package/dist/runtime/ws-server.d.mts +26 -0
- package/dist/runtime/ws-server.mjs +296 -0
- package/dist/runtime/ws.d.mts +123 -0
- package/dist/runtime/ws.mjs +103 -0
- package/dist/scan-Ba4hFwlH.mjs +324 -0
- package/dist/scan-C6HMEIdW.mjs +318 -0
- package/dist/secret-CeRSukgM.mjs +109 -0
- package/dist/skills-ipldjlKE.mjs +62 -0
- package/dist/standard-schema-9CRjx-uR.d.mts +42 -0
- package/dist/subcommand-prompt-BKjuNAPb.mjs +349 -0
- package/dist/sveltekit.d.mts +20 -0
- package/dist/sveltekit.mjs +61 -0
- package/dist/types-mHOEwpW4.d.mts +57 -0
- package/dist/validate-CaMavMxu.mjs +146 -0
- package/dist/yarn-pnp-BFqMV_bl.mjs +196 -0
- package/getting-started-prompt.txt +26 -0
- package/package.json +322 -30
- package/schema.json +364 -0
- package/skills/migrate-vite-cloudflare-to-void/SKILL.md +175 -0
- package/skills/void/SKILL.md +75 -0
- package/skills/void/command/void.md +7 -0
- package/skills/void/docs/guide/ai.md +235 -0
- package/skills/void/docs/guide/app-types.md +103 -0
- package/skills/void/docs/guide/auth.md +257 -0
- package/skills/void/docs/guide/database/d1.md +106 -0
- package/skills/void/docs/guide/database/postgresql.md +106 -0
- package/skills/void/docs/guide/database.md +418 -0
- package/skills/void/docs/guide/deployment.md +98 -0
- package/skills/void/docs/guide/edge/headers.md +79 -0
- package/skills/void/docs/guide/edge/prerendering.md +83 -0
- package/skills/void/docs/guide/edge/redirects.md +116 -0
- package/skills/void/docs/guide/edge/revalidation.md +131 -0
- package/skills/void/docs/guide/edge/rewrites.md +354 -0
- package/skills/void/docs/guide/edge/static-assets.md +72 -0
- package/skills/void/docs/guide/env-vars.md +298 -0
- package/skills/void/docs/guide/index.md +80 -0
- package/skills/void/docs/guide/jobs.md +91 -0
- package/skills/void/docs/guide/kv.md +107 -0
- package/skills/void/docs/guide/pages-routing/actions-and-forms.md +419 -0
- package/skills/void/docs/guide/pages-routing/head.md +130 -0
- package/skills/void/docs/guide/pages-routing/islands.md +405 -0
- package/skills/void/docs/guide/pages-routing/layouts.md +362 -0
- package/skills/void/docs/guide/pages-routing/loaders.md +267 -0
- package/skills/void/docs/guide/pages-routing/markdown.md +625 -0
- package/skills/void/docs/guide/pages-routing/overview.md +236 -0
- package/skills/void/docs/guide/pages-routing/view-transitions.md +140 -0
- package/skills/void/docs/guide/queues.md +140 -0
- package/skills/void/docs/guide/quickstart.md +233 -0
- package/skills/void/docs/guide/remote-dev.md +67 -0
- package/skills/void/docs/guide/sandboxes.md +82 -0
- package/skills/void/docs/guide/server-routing.md +246 -0
- package/skills/void/docs/guide/ssg.md +74 -0
- package/skills/void/docs/guide/ssr.md +105 -0
- package/skills/void/docs/guide/storage.md +67 -0
- package/skills/void/docs/guide/type-safety.md +179 -0
- package/skills/void/docs/guide/typed-fetch.md +113 -0
- package/skills/void/docs/guide/websockets.md +190 -0
- package/skills/void/docs/index.md +48 -0
- package/skills/void/docs/integrations/agents.md +84 -0
- package/skills/void/docs/integrations/cloudflare.md +284 -0
- package/skills/void/docs/integrations/frameworks/analog.md +182 -0
- package/skills/void/docs/integrations/frameworks/astro.md +197 -0
- package/skills/void/docs/integrations/frameworks/nuxt.md +164 -0
- package/skills/void/docs/integrations/frameworks/overview.md +136 -0
- package/skills/void/docs/integrations/frameworks/react-router.md +137 -0
- package/skills/void/docs/integrations/frameworks/sveltekit.md +191 -0
- package/skills/void/docs/integrations/frameworks/tanstack-start.md +140 -0
- package/skills/void/docs/integrations/hono.md +97 -0
- package/skills/void/docs/integrations/nodejs-bun-deno.md +210 -0
- package/skills/void/docs/node_modules/@iconify/vue/README.md +408 -0
- package/skills/void/docs/node_modules/@iconify/vue/offline/readme.md +5 -0
- package/skills/void/docs/node_modules/@voidzero-dev/vitepress-theme/README.md +103 -0
- package/skills/void/docs/node_modules/oxc-minify/README.md +78 -0
- package/skills/void/docs/node_modules/reka-ui/README.md +80 -0
- package/skills/void/docs/node_modules/vitepress/README.md +28 -0
- package/skills/void/docs/node_modules/vitepress/template/api-examples.md +49 -0
- package/skills/void/docs/node_modules/vitepress/template/index.md +28 -0
- package/skills/void/docs/node_modules/vitepress/template/markdown-examples.md +85 -0
- package/skills/void/docs/node_modules/vitepress-plugin-group-icons/README.md +101 -0
- package/skills/void/docs/node_modules/void/AGENTS.md +204 -0
- package/skills/void/docs/node_modules/void/AGENT_PROMPT.md +15 -0
- package/skills/void/docs/node_modules/void/README.md +89 -0
- package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/CHANGELOG.md +591 -0
- package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/README.md +375 -0
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/sandbox/README.md +174 -0
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/vite-plugin/README.md +37 -0
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/workers-types/README.md +135 -0
- package/skills/void/docs/node_modules/void/node_modules/@electric-sql/pglite/README.md +189 -0
- package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/CHANGELOG.md +143 -0
- package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/README.md +1272 -0
- package/skills/void/docs/node_modules/void/node_modules/@napi-rs/keyring/README.md +19 -0
- package/skills/void/docs/node_modules/void/node_modules/@types/better-sqlite3/README.md +15 -0
- package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +15 -0
- package/skills/void/docs/node_modules/void/node_modules/@types/pg/README.md +15 -0
- package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/README.md +22 -0
- package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/vendor/vscode-jsonrpc/README.md +69 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/README.md +152 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/engine-javascript/README.md +9 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/transformers/README.md +9 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +15 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/CHANGELOG.md +24 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/README.md +565 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-exit/README.md +124 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-anchor/README.md +600 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-attrs/README.md +386 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-container/README.md +95 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-emoji/README.md +101 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/pathe/README.md +73 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/shiki/README.md +15 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tinyglobby/README.md +25 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tsdown/README.md +55 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/LICENSE.md +2230 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/README.md +20 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vue/README.md +58 -0
- package/skills/void/docs/node_modules/void/node_modules/arktype/README.md +165 -0
- package/skills/void/docs/node_modules/void/node_modules/better-auth/LICENSE.md +20 -0
- package/skills/void/docs/node_modules/void/node_modules/better-auth/README.md +32 -0
- package/skills/void/docs/node_modules/void/node_modules/better-sqlite3/README.md +99 -0
- package/skills/void/docs/node_modules/void/node_modules/blake3-jit/README.md +108 -0
- package/skills/void/docs/node_modules/void/node_modules/drizzle-arktype/README.md +51 -0
- package/skills/void/docs/node_modules/void/node_modules/drizzle-kit/README.md +79 -0
- package/skills/void/docs/node_modules/void/node_modules/drizzle-orm/README.md +44 -0
- package/skills/void/docs/node_modules/void/node_modules/drizzle-valibot/README.md +51 -0
- package/skills/void/docs/node_modules/void/node_modules/drizzle-zod/README.md +65 -0
- package/skills/void/docs/node_modules/void/node_modules/es-module-lexer/README.md +390 -0
- package/skills/void/docs/node_modules/void/node_modules/estree-walker/README.md +48 -0
- package/skills/void/docs/node_modules/void/node_modules/hono/README.md +85 -0
- package/skills/void/docs/node_modules/void/node_modules/ignore/README.md +452 -0
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/CHANGELOG.md +76 -0
- package/{LICENSE → skills/void/docs/node_modules/void/node_modules/jsonc-parser/LICENSE.md} +21 -21
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/README.md +364 -0
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/SECURITY.md +41 -0
- package/skills/void/docs/node_modules/void/node_modules/magic-string/README.md +325 -0
- package/skills/void/docs/node_modules/void/node_modules/ofetch/README.md +398 -0
- package/skills/void/docs/node_modules/void/node_modules/pathe/README.md +73 -0
- package/skills/void/docs/node_modules/void/node_modules/pg/README.md +95 -0
- package/skills/void/docs/node_modules/void/node_modules/pglite-server/LICENSE.md +21 -0
- package/skills/void/docs/node_modules/void/node_modules/pglite-server/README.md +135 -0
- package/skills/void/docs/node_modules/void/node_modules/picocolors/README.md +21 -0
- package/skills/void/docs/node_modules/void/node_modules/tinyglobby/README.md +25 -0
- package/skills/void/docs/node_modules/void/node_modules/tsdown/README.md +55 -0
- package/skills/void/docs/node_modules/void/node_modules/valibot/LICENSE.md +9 -0
- package/skills/void/docs/node_modules/void/node_modules/valibot/README.md +94 -0
- package/skills/void/docs/node_modules/void/node_modules/vite/LICENSE.md +2230 -0
- package/skills/void/docs/node_modules/void/node_modules/vite/README.md +20 -0
- package/skills/void/docs/node_modules/void/node_modules/wrangler/README.md +63 -0
- package/skills/void/docs/node_modules/void/node_modules/zod/README.md +191 -0
- package/skills/void/docs/node_modules/void/skills/migrate-vite-cloudflare-to-void/SKILL.md +175 -0
- package/skills/void/docs/node_modules/void/skills/void/SKILL.md +75 -0
- package/skills/void/docs/node_modules/void/skills/void/command/void.md +7 -0
- package/skills/void/docs/reference/api.md +917 -0
- package/skills/void/docs/reference/cli.md +561 -0
- package/skills/void/docs/reference/config.md +408 -0
- package/skills/void/docs/reference/resource-inference.md +149 -0
- package/skills/void/docs/reference/structure.md +176 -0
- package/.npmignore +0 -29
- package/.travis.yml +0 -9
- package/favicon.ico +0 -0
- package/index.js +0 -14
- package/lib/Job.js +0 -150
- package/lib/Void.js +0 -99
- package/lib/scan.js +0 -19
- package/test/credentials.js +0 -20
- package/test/job.js +0 -64
- package/test/static/dir1/test6.html +0 -0
- package/test/static/dir2/test7.html +0 -0
- package/test/static/dir2/test8.html +0 -0
- package/test/static/dir2/test9.html +0 -0
- package/test/static/test1.html +0 -0
- package/test/static/test2.html +0 -0
- package/test/static/test3.html +0 -0
- package/test/void.js +0 -31
- /package/{test/static/dir1/test4.html → skills/void/docs/integrations/auth-providers.md} +0 -0
- /package/{test/static/dir1/test5.html → skills/void/docs/integrations/payment-processors.md} +0 -0
|
@@ -0,0 +1,561 @@
|
|
|
1
|
+
---
|
|
2
|
+
outline: deep
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# CLI
|
|
6
|
+
|
|
7
|
+
`void` is a local binary from the installed `void` package.
|
|
8
|
+
|
|
9
|
+
Use this page as a command reference. If you are setting up a project for the first time, start with [Quickstart](../guide/quickstart.md) and come back here when you need exact command behavior or flags.
|
|
10
|
+
|
|
11
|
+
## Cheat Sheet
|
|
12
|
+
|
|
13
|
+
| Command | Purpose |
|
|
14
|
+
| --------------------------------- | ------------------------------------------------ |
|
|
15
|
+
| `void deploy` | Build and deploy to Void |
|
|
16
|
+
| `void prepare` | Generate `.void` artifacts without starting Vite |
|
|
17
|
+
| `void gen model <name> [cols...]` | Scaffold migration + CRUD routes |
|
|
18
|
+
| `void gen route <path>` | Create an API route |
|
|
19
|
+
| `void db status` | Show local/remote migration status |
|
|
20
|
+
| `void db reset` | Drop and re-apply all migrations |
|
|
21
|
+
| `void db seed` | Reset + seed local database |
|
|
22
|
+
| `void db studio` | Open Drizzle Studio for local database |
|
|
23
|
+
| `void secret put <name=value>` | Set a production secret |
|
|
24
|
+
| `void secret sync .env.local` | Bulk upload secrets from dotenv file |
|
|
25
|
+
| `void env check [--remote]` | Validate env.ts schema |
|
|
26
|
+
| `void env types` | Regenerate .void/env.d.ts from env.ts |
|
|
27
|
+
| `void env example` | Refresh the void-managed block in .env.example |
|
|
28
|
+
| `void auth login` | Authenticate with Void |
|
|
29
|
+
| `void project link` | Link directory to a project |
|
|
30
|
+
| `void project logs` | Show runtime logs from deployed project |
|
|
31
|
+
| `void project rollback` | Roll back to a previous deployment |
|
|
32
|
+
| `void project purge-cache` | Purge all cached pages |
|
|
33
|
+
| `void init` | Setup wizard for new or existing projects |
|
|
34
|
+
|
|
35
|
+
## Binary Invocation
|
|
36
|
+
|
|
37
|
+
Outside npm scripts, invoke `void` with `npx`, `pnpm`, `yarn`, or `bunx`. For readability, the docs show unprefixed `void` commands. In practice, you still need a binary runner unless the executable is already on your `PATH`.
|
|
38
|
+
|
|
39
|
+
Alternatively, you can add `./node_modules/.bin` to your `PATH` so that you can invoke `void` directly when you are in the root directory of your app.
|
|
40
|
+
|
|
41
|
+
:::warning ⚠️ Prefer local install
|
|
42
|
+
We do not recommend installing `void` globally, because the CLI needs to be in sync with same version of the runtime framework. Always install `void` locally as a dev dependency of your project.
|
|
43
|
+
:::
|
|
44
|
+
|
|
45
|
+
## Help
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
void --help
|
|
49
|
+
void help
|
|
50
|
+
void help <command>
|
|
51
|
+
void help <group> <command>
|
|
52
|
+
void <command> --help
|
|
53
|
+
void <group> <command> --help
|
|
54
|
+
void <group> help <command>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Use `void --help` or `void help` for the top-level command list. Every command and grouped subcommand has a focused help page, so `void deploy --help`, `void help db execute`, and `void db help execute` all print command-specific usage before any command validation or network/auth work runs.
|
|
58
|
+
|
|
59
|
+
## Setup
|
|
60
|
+
|
|
61
|
+
### `void init`
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
void init [--tsconfig] [--github] [--agents]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Setup wizard for Void projects (new or existing).
|
|
68
|
+
|
|
69
|
+
If run in a scaffoldable empty directory, `void init` scaffolds a Pages starter. If a single Pages adapter is already installed, it reuses that framework; otherwise it asks which framework to scaffold (React, Vue, Svelte, or Solid). It then asks which starter you want: D1, PostgreSQL, or Static Pages. The D1 and PostgreSQL starters write a framework-specific `vite.config.ts`, a `pages/` home page plus `.server.ts` loader, `db/schema.ts`, `db/seed.ts`, a generated initial migration under `db/migrations/`, and `routes/api/hello.ts`. The Static Pages starter writes just the framework-specific `vite.config.ts` and a `pages/` home page so you can add server features later.
|
|
70
|
+
|
|
71
|
+
If run in an existing project, `void init` configures the project in place: it ensures `void` and `vite` are declared, adds missing `dev` (`vite`) and `build` (`vite build`) scripts without overwriting existing scripts, and creates or patches `vite.config.*` with `voidPlugin()` when the config shape is safe to edit. If the Vite config is too dynamic to patch confidently, it prints the manual snippet instead of rewriting it.
|
|
72
|
+
|
|
73
|
+
After that, the full interactive flow walks through:
|
|
74
|
+
|
|
75
|
+
1. **TypeScript:** creates or updates `tsconfig.json`, including `extends .void/tsconfig.json`, `void/env` types, and root-level `files` / `compilerOptions.paths` merges when an existing config would otherwise replace Void's generated entries.
|
|
76
|
+
2. **Database:** asks whether you want D1, PostgreSQL, or no database yet. Choosing PostgreSQL writes `"database": "pg"` to `void.json`; D1 stays implicit; choosing no database leaves config unchanged so you can add data features later.
|
|
77
|
+
3. **Agent instructions:** detects agents once and injects instructions into `CLAUDE.md` or `AGENTS.md`.
|
|
78
|
+
4. **Skills:** links Void skills using the same detected or selected agent context.
|
|
79
|
+
5. **MCP config:** writes MCP server config using that same agent context.
|
|
80
|
+
6. **Demo code:** for existing non-Pages projects, optionally scaffolds a `db/migrations/` directory plus an API route and typed fetch example.
|
|
81
|
+
7. **GitHub Actions:** optionally creates `.github/workflows/deploy.yml` with the right package manager commands.
|
|
82
|
+
8. **`env.ts` scaffold:** if the project has no `env.ts` but has `.env` / `.env.example` / `.env.local` / `.env.development*` files on disk, generates an `env.ts` pre-populated with their keys. Values get conservative type inference (`boolean`/`url`/`number`/`string`) — the file carries a banner nudging you to tighten anything the heuristic got wrong.
|
|
83
|
+
9. **Project setup:** optionally logs you in, lets you select or create a project, and writes `.void/project.json` so your first deploy can just be `void deploy`.
|
|
84
|
+
|
|
85
|
+
If no agent is detected, `void init` asks you to choose one from a short list (Claude, Cursor, Codex, Gemini CLI, Generic). That single choice is reused across all agent steps.
|
|
86
|
+
|
|
87
|
+
Use flags to run individual steps without prompts:
|
|
88
|
+
|
|
89
|
+
| Flag | Purpose |
|
|
90
|
+
| ------------ | ------------------------------------------------- |
|
|
91
|
+
| `--tsconfig` | Only update `tsconfig.json` |
|
|
92
|
+
| `--agents` | Set up agent instructions, skills, and MCP config |
|
|
93
|
+
| `--github` | Only create GitHub Actions workflow |
|
|
94
|
+
|
|
95
|
+
Flags can be combined. When any flag is provided, only the specified steps run and interactive prompts are skipped.
|
|
96
|
+
|
|
97
|
+
For projects that already have `"extends"`, `void init --tsconfig` preserves the existing config and adds `./.void/tsconfig.json`. If the existing config defines `files` or `compilerOptions.paths`, Void also merges its generated declaration files and aliases into the root config because TypeScript replaces those fields across `extends` instead of deeply merging them.
|
|
98
|
+
|
|
99
|
+
### `void prepare`
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
void prepare
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Generates the project-local `.void/` artifacts used by TypeScript and runtime codegen without starting `vite dev` or running a full `vite build`.
|
|
106
|
+
|
|
107
|
+
This is the intended command for CI, fresh clones, editor bootstrap, and any workflow that needs `routes.d.ts`, `db.d.ts`, `queues.d.ts`, `env.d.ts`, and `.void/tsconfig.json` in place before typechecking.
|
|
108
|
+
|
|
109
|
+
## Auth
|
|
110
|
+
|
|
111
|
+
### `void auth login`
|
|
112
|
+
|
|
113
|
+
OAuth login. You choose GitHub or Google at the prompt, and the token is saved to `~/.void/config.json`.
|
|
114
|
+
|
|
115
|
+
This is optional if you already completed auth during the interactive `void init` flow.
|
|
116
|
+
|
|
117
|
+
### `void auth logout`
|
|
118
|
+
|
|
119
|
+
Removes saved credentials.
|
|
120
|
+
|
|
121
|
+
### `void auth whoami`
|
|
122
|
+
|
|
123
|
+
Prints your current login.
|
|
124
|
+
|
|
125
|
+
### `void auth token`
|
|
126
|
+
|
|
127
|
+
Copies your auth token to the system clipboard. Useful for setting up CI secrets.
|
|
128
|
+
|
|
129
|
+
## Project commands
|
|
130
|
+
|
|
131
|
+
### `void project status [name]`
|
|
132
|
+
|
|
133
|
+
Show the last 5 deployments for a project.
|
|
134
|
+
|
|
135
|
+
- If `[name]` is provided, looks up the project by slug
|
|
136
|
+
- Otherwise uses the linked project from `.void/project.json`
|
|
137
|
+
|
|
138
|
+
### `void project link [name]`
|
|
139
|
+
|
|
140
|
+
Link current directory to an existing project by slug, or select interactively if omitted. State is stored in `.void/project.json`.
|
|
141
|
+
|
|
142
|
+
### `void project list`
|
|
143
|
+
|
|
144
|
+
List all your projects (slug, mode, URL).
|
|
145
|
+
|
|
146
|
+
### `void project logs`
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
void project logs [--level <level>] [--filter <text>] [--range <duration>] [--deployment <id>]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Show runtime logs from the deployed project. Uses the linked project from `.void/project.json`.
|
|
153
|
+
|
|
154
|
+
| Flag | Purpose | Default |
|
|
155
|
+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
|
156
|
+
| `--range <duration>` | How far back to look. Format: `<number><unit>` (m/h/d). Max 7d. | `1h` |
|
|
157
|
+
| `--level <level>` | Filter by log level. One of `error`, `warn`, `info`, `log`, `debug`, `all`. `error` also includes uncaught exceptions and non-`ok` requests. | `all` |
|
|
158
|
+
| `--filter <text>` | Case-insensitive **substring** match against log message text and exception name/message — not a level filter. Shows the full request entry on any hit. | none |
|
|
159
|
+
| `--deployment <id>` | Filter logs to a specific deployment ID. | none |
|
|
160
|
+
|
|
161
|
+
Output shows one line per request (`HH:MM:SS METHOD URL STATUS`) with indented console log and exception lines beneath. Errors and exceptions are colored red, warnings yellow.
|
|
162
|
+
|
|
163
|
+
Examples:
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
void project logs --level error --range 12h
|
|
167
|
+
void project logs --level error --filter websocket
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Tip: `void project logs` only sees what Cloudflare Tail captures — top-level `console.*` calls and uncaught throws. Application errors caught and persisted to your own DB are invisible to tail. Surface them via `console.error(...)` or `void/log`'s `logger.error(...)` so they show up under `--level error`.
|
|
171
|
+
|
|
172
|
+
### `void project rollback [deployId]`
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
void project rollback [deployId]
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Roll back to a previous deployment. Traffic instantly switches to the target deployment's worker script via KV routing update.
|
|
179
|
+
|
|
180
|
+
- If `[deployId]` is omitted, shows an interactive select menu of retained deployments
|
|
181
|
+
- If the target deployment has fewer applied migrations than the current one, a warning is shown listing the migration diff before confirmation
|
|
182
|
+
|
|
183
|
+
Only **retained** deployments can be rolled back to. The number of retained deployments depends on your plan (free: 1, solo: 5, pro: 25, unlimited for sponsored/custom).
|
|
184
|
+
|
|
185
|
+
### `void project delete [name]`
|
|
186
|
+
|
|
187
|
+
Permanently delete a project and all its resources (databases, KV namespaces, R2 buckets, deployments). Requires typing the project slug to confirm.
|
|
188
|
+
|
|
189
|
+
If `[name]` is omitted, uses the linked project.
|
|
190
|
+
|
|
191
|
+
### `void project purge-cache`
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
void project purge-cache [--project <name>]
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Purge all cached pages for the linked project. The edge cache will clear within seconds.
|
|
198
|
+
|
|
199
|
+
If `--project` is provided, purges that project's cache instead of the linked project.
|
|
200
|
+
|
|
201
|
+
## Deploy
|
|
202
|
+
|
|
203
|
+
### `void deploy`
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
void deploy [--project <name>] [--dir <path>] [--spa] [--skip-build]
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Auto-detects your project type and chooses the right pipeline. See [Supported App Types](../guide/app-types.md) and [Deployment](../guide/deployment.md) for details.
|
|
210
|
+
|
|
211
|
+
For Drizzle projects, deploy performs a read-only schema drift check. If a new migration would be generated, deploy stops and tells you to run `void db generate`, review the migration, commit it yourself, and rerun `void deploy`.
|
|
212
|
+
|
|
213
|
+
| Flag | Purpose |
|
|
214
|
+
| ------------------ | ------------------------------------------------- |
|
|
215
|
+
| `--project <name>` | Target a specific project by slug |
|
|
216
|
+
| `--dir <path>` | Deploy a pre-built static directory (skips build) |
|
|
217
|
+
| `--spa` | Use SPA mode instead of SSG for static deploys |
|
|
218
|
+
| `--skip-build` | Skip the build step (use existing build output) |
|
|
219
|
+
|
|
220
|
+
Project resolution precedence:
|
|
221
|
+
|
|
222
|
+
1. `--project <name>`
|
|
223
|
+
2. `VOID_PROJECT`
|
|
224
|
+
3. linked project in `.void/project.json`
|
|
225
|
+
|
|
226
|
+
If no project is linked and no override is provided, CLI prompts to link or create one. In CI (non-TTY), `void deploy` errors out instead — set `VOID_PROJECT` or pass `--project <slug>`.
|
|
227
|
+
|
|
228
|
+
That fallback is mainly for projects that skipped Void project setup during `void init`.
|
|
229
|
+
|
|
230
|
+
## Database
|
|
231
|
+
|
|
232
|
+
### `void db status`
|
|
233
|
+
|
|
234
|
+
Show migration status. Displays which migrations are applied or pending locally. When logged in and linked to a project, also shows remote status.
|
|
235
|
+
|
|
236
|
+
### `void db reset`
|
|
237
|
+
|
|
238
|
+
Drop the local D1 database and re-apply all migrations. Does not affect the remote database.
|
|
239
|
+
|
|
240
|
+
### `void db seed`
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
void db seed [--file <path>]
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Reset the local database, re-apply all migrations, then execute a seed file.
|
|
247
|
+
|
|
248
|
+
If `--file` is omitted, Void looks for default seed files in this order: `db/seed.ts`, `db/seed.mts`, `db/seed.js`, `db/seed.mjs`, `db/seed.sql`.
|
|
249
|
+
|
|
250
|
+
If more than one default seed file exists, the CLI stops and asks you to pass `--file <path>`.
|
|
251
|
+
|
|
252
|
+
Programmatic seed modules must export either a default function or a named `seed` function.
|
|
253
|
+
|
|
254
|
+
### `void db execute`
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
void db execute <sql>
|
|
258
|
+
void db execute --file <path>
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Run ad-hoc SQL against the local D1 database. Provide SQL inline or from a file. SELECT queries display results as a formatted table; other statements execute silently.
|
|
262
|
+
|
|
263
|
+
### `void db migrate`
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
void db migrate [--remote]
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Apply pending migrations to the local database without resetting. Unlike `void db reset`, this preserves existing data and only runs migrations that haven't been applied yet.
|
|
270
|
+
|
|
271
|
+
Pass `--remote` to apply pending migrations to the remote database instead. Requires being logged in (`void auth login`) and having a linked project.
|
|
272
|
+
|
|
273
|
+
### `void db studio`
|
|
274
|
+
|
|
275
|
+
Open [Drizzle Studio](https://orm.drizzle.team/docs/drizzle-kit-studio) for the local database. Launches a web-based GUI for browsing and editing your data.
|
|
276
|
+
|
|
277
|
+
### `void db rename-migrations`
|
|
278
|
+
|
|
279
|
+
Rename existing migrations from the old numeric prefix format (`0001_name.sql`) to timestamp-based format (`20260410161500_name.sql`). Updates local tracking table and remote records if logged in with a linked project.
|
|
280
|
+
|
|
281
|
+
### `void db set-url`
|
|
282
|
+
|
|
283
|
+
Update the PostgreSQL connection string for deployment. Only available for projects with `database.dialect: "postgresql"`.
|
|
284
|
+
|
|
285
|
+
Prompts for a connection string and sends it to the platform API to create or update the Hyperdrive configuration.
|
|
286
|
+
|
|
287
|
+
### `void db export`
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
void db export [--output <path>] [--no-data] [--no-schema] [--table <name>]
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Dump the local database as SQL. Outputs to stdout by default (pipeable), or to a file with `--output`.
|
|
294
|
+
|
|
295
|
+
| Flag | Purpose |
|
|
296
|
+
| ----------------- | ---------------------------------- |
|
|
297
|
+
| `--output <path>` | Write to a file instead of stdout |
|
|
298
|
+
| `--no-data` | Schema only (no INSERT statements) |
|
|
299
|
+
| `--no-schema` | Data only (no CREATE TABLE) |
|
|
300
|
+
| `--table <name>` | Export a single table |
|
|
301
|
+
|
|
302
|
+
## Code Generation
|
|
303
|
+
|
|
304
|
+
### `void gen model`
|
|
305
|
+
|
|
306
|
+
```
|
|
307
|
+
void gen model <name> [columns...]
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Scaffold a complete model: migration file, CRUD API routes, and regenerated DB types in one command.
|
|
311
|
+
|
|
312
|
+
```sh
|
|
313
|
+
void gen model posts title:string body:text published:boolean
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Creates:
|
|
317
|
+
|
|
318
|
+
- `db/migrations/NNN_create_posts.sql`: `CREATE TABLE` with `id` (autoincrement), your columns, and `created_at`
|
|
319
|
+
- `routes/api/posts/index.ts`: `GET` for list and `POST` for insert with validation
|
|
320
|
+
- `routes/api/posts/[id].ts`: `GET` by id with `404` handling
|
|
321
|
+
- Regenerated `.void/db.d.ts`
|
|
322
|
+
|
|
323
|
+
The generated routes automatically detect your validation library from `package.json` (`valibot`, `zod`, or `arktype`). If none is found, you will be prompted to choose one or skip validation. See [Database: Scaffolding](../guide/database.md#scaffolding) for the full type mapping.
|
|
324
|
+
|
|
325
|
+
Column format: `name:type` or `name:type?` (nullable). Types: `string`, `text`, `datetime`, `integer`, `boolean`, `real`, `blob`.
|
|
326
|
+
|
|
327
|
+
Model names must be lowercase alphanumeric with underscores (e.g. `posts`, `user_roles`). Existing files are never overwritten.
|
|
328
|
+
|
|
329
|
+
### `void gen migration`
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
void gen migration <name>
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
Create an empty migration file with a timestamp prefix (`YYYYMMDDHHMMSS`).
|
|
336
|
+
|
|
337
|
+
```sh
|
|
338
|
+
void gen migration add_avatar_to_users
|
|
339
|
+
# → db/migrations/20260410161500_add_avatar_to_users.sql
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
Existing projects using the old numeric prefix (`0001_`, `0002_`, ...) can rename with `void db rename-migrations`.
|
|
343
|
+
|
|
344
|
+
### `void gen route`
|
|
345
|
+
|
|
346
|
+
```
|
|
347
|
+
void gen route <path> [--methods get,post,...]
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
Create a route file with `defineHandler` exports. Defaults to GET.
|
|
351
|
+
|
|
352
|
+
```sh
|
|
353
|
+
void gen route api/health
|
|
354
|
+
void gen route api/users --methods get,post,delete
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Creates `routes/<path>.ts` with an exported handler for each method. Supported methods: `get`, `post`, `put`, `patch`, `delete`.
|
|
358
|
+
|
|
359
|
+
### `void gen middleware`
|
|
360
|
+
|
|
361
|
+
```
|
|
362
|
+
void gen middleware <name>
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
Create a numbered middleware file with `defineMiddleware` default export.
|
|
366
|
+
|
|
367
|
+
```sh
|
|
368
|
+
void gen middleware auth
|
|
369
|
+
# → middleware/01.auth.ts (or 02, 03, etc.)
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
The prefix is auto-detected from existing middleware files.
|
|
373
|
+
|
|
374
|
+
### `void gen ssr`
|
|
375
|
+
|
|
376
|
+
```
|
|
377
|
+
void gen ssr [--react | --vue | --svelte | --solid]
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Scaffold SSR entry points and a minimal App component for your framework.
|
|
381
|
+
|
|
382
|
+
Creates three files:
|
|
383
|
+
|
|
384
|
+
- `src/main.ssr.{tsx,ts}`: server entry with `defineRender`
|
|
385
|
+
- `src/main.client.{tsx,ts}`: client entry with hydration
|
|
386
|
+
- `src/App.{tsx,vue,svelte}`: minimal interactive component
|
|
387
|
+
|
|
388
|
+
If no flag is provided, the framework is auto-detected from `package.json` dependencies.
|
|
389
|
+
|
|
390
|
+
### `void gen cron`
|
|
391
|
+
|
|
392
|
+
```
|
|
393
|
+
void gen cron <name>
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
Create a cron job file in `crons/` with `defineScheduled` and a placeholder cron expression.
|
|
397
|
+
|
|
398
|
+
```sh
|
|
399
|
+
void gen cron hourly-sync
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### `void gen queue`
|
|
403
|
+
|
|
404
|
+
```
|
|
405
|
+
void gen queue <name>
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
Create a queue consumer file in `queues/` with `defineQueue`, a `Message` interface, and commented-out batch options.
|
|
409
|
+
|
|
410
|
+
```sh
|
|
411
|
+
void gen queue emails
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
## Secrets
|
|
415
|
+
|
|
416
|
+
### `void secret put`
|
|
417
|
+
|
|
418
|
+
```
|
|
419
|
+
void secret put <name> [--project <name>]
|
|
420
|
+
void secret put <name=value> [--project <name>]
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
Value input modes:
|
|
424
|
+
|
|
425
|
+
- inline: `void secret put API_KEY=abcd`
|
|
426
|
+
- prompt (TTY): `void secret put API_KEY` (masked input)
|
|
427
|
+
- stdin: `echo -n "abcd" | void secret put API_KEY`
|
|
428
|
+
|
|
429
|
+
### `void secret sync`
|
|
430
|
+
|
|
431
|
+
```
|
|
432
|
+
void secret sync <file> [--project <name>]
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Bulk upload secrets from a dotenv file. Each `KEY=value` line in the file is uploaded as a secret.
|
|
436
|
+
|
|
437
|
+
```sh
|
|
438
|
+
void secret sync .env.local # uploads secrets from .env.local
|
|
439
|
+
void secret sync .env.production # uploads a specific file
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### `void secret delete`
|
|
443
|
+
|
|
444
|
+
```
|
|
445
|
+
void secret delete <name> [--project <name>]
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
Project resolution for secrets follows the same order as deploy (`--project`, env var, linked project).
|
|
449
|
+
|
|
450
|
+
## Env Schema
|
|
451
|
+
|
|
452
|
+
### `void env check`
|
|
453
|
+
|
|
454
|
+
```
|
|
455
|
+
void env check [--remote]
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
Validate `env.ts` against `.env` + `.env.production` (and, with `--remote`, also against the remote secret list). Exits non-zero if any required key is missing or invalid. Use in CI before deploy.
|
|
459
|
+
|
|
460
|
+
### `void env types`
|
|
461
|
+
|
|
462
|
+
```
|
|
463
|
+
void env types
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
Regenerate `.void/env.d.ts` from `env.ts`. Normally happens automatically on dev server start and HMR; use this command after a fresh clone or to refresh stale types in non-dev contexts.
|
|
467
|
+
|
|
468
|
+
### `void env example`
|
|
469
|
+
|
|
470
|
+
```
|
|
471
|
+
void env example [--force]
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
Generate or refresh a marker-delimited "void env" block inside `.env.example` at the project root, sourced from the registered `env.ts` schema. The block is grouped into `required`, `with defaults`, and `optional` sections, with enum members emitted as inline comments. Prefilled values are used for keys with a `.default(...)`.
|
|
475
|
+
|
|
476
|
+
The command never overwrites the whole file — anything above or below the markers (custom CI tokens, build flags, etc.) is preserved verbatim:
|
|
477
|
+
|
|
478
|
+
| State of `.env.example` | Behavior |
|
|
479
|
+
| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
480
|
+
| File doesn't exist | Writes a fresh file containing only the marker block. |
|
|
481
|
+
| Exists, contains both markers | Replaces only the lines between (and including) the markers; everything else is preserved. |
|
|
482
|
+
| Exists, no markers | Appends the block at the end (one blank line separator) and prints `appended void env block to existing .env.example`. |
|
|
483
|
+
| Exists, only one of the two markers present | Hard error — fix the file (restore the missing marker or delete the file) and rerun. |
|
|
484
|
+
|
|
485
|
+
Pass `--force` to suppress the "appended block" notice for scripted runs.
|
|
486
|
+
|
|
487
|
+
Example output:
|
|
488
|
+
|
|
489
|
+
```ini
|
|
490
|
+
# >>> void env: managed block — do not edit between markers <<<
|
|
491
|
+
# Run `void env example` to refresh.
|
|
492
|
+
# required
|
|
493
|
+
STRIPE_KEY=
|
|
494
|
+
# enum: development | production
|
|
495
|
+
NODE_ENV=
|
|
496
|
+
|
|
497
|
+
# with defaults
|
|
498
|
+
PORT=3000
|
|
499
|
+
# >>> end void env <<<
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
::: tip Deploy validation
|
|
503
|
+
`void deploy` runs the same schema validation automatically (with remote secrets) and refuses to upload if any required key is missing — no need to call `env check` separately when deploying.
|
|
504
|
+
:::
|
|
505
|
+
|
|
506
|
+
See [Environment Variables](../guide/env-vars.md) for the full guide.
|
|
507
|
+
|
|
508
|
+
## Custom Domains
|
|
509
|
+
|
|
510
|
+
### `void domain add`
|
|
511
|
+
|
|
512
|
+
```
|
|
513
|
+
void domain add <hostname> [--project <name>]
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
Add a custom domain to a project. Prints the CNAME target you need to add in your DNS provider.
|
|
517
|
+
|
|
518
|
+
### `void domain delete`
|
|
519
|
+
|
|
520
|
+
```
|
|
521
|
+
void domain delete <hostname> [--project <name>]
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
Remove a custom domain from a project.
|
|
525
|
+
|
|
526
|
+
### `void domain list`
|
|
527
|
+
|
|
528
|
+
```
|
|
529
|
+
void domain list [--project <name>]
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
List all custom domains and their status (active/pending).
|
|
533
|
+
|
|
534
|
+
### `void domain status`
|
|
535
|
+
|
|
536
|
+
```
|
|
537
|
+
void domain status <hostname> [--project <name>]
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
Check verification and SSL status for a specific domain. Shows hostname, status, SSL status, and any verification errors.
|
|
541
|
+
|
|
542
|
+
Project resolution for domain commands follows the same order as deploy (`--project`, `VOID_PROJECT`, linked project).
|
|
543
|
+
|
|
544
|
+
## Agent
|
|
545
|
+
|
|
546
|
+
### `void init --agents`
|
|
547
|
+
|
|
548
|
+
Runs all agent setup steps:
|
|
549
|
+
|
|
550
|
+
1. **Instructions:** detects agents once and injects Void framework instructions with versioned markers.
|
|
551
|
+
2. **Skills:** links skills for the same detected or selected agent context.
|
|
552
|
+
3. **MCP config:** writes MCP server config for that same context, or prints generic MCP JSON in Generic mode.
|
|
553
|
+
|
|
554
|
+
If no agent is detected, `void init --agents` asks you to choose from Claude Code, Cursor, Codex, Gemini CLI, or Generic.
|
|
555
|
+
|
|
556
|
+
## Environment variables
|
|
557
|
+
|
|
558
|
+
| Variable | Purpose | Default |
|
|
559
|
+
| -------------- | ------------------------------------------------------------ | ------- |
|
|
560
|
+
| `VOID_TOKEN` | Auth token override instead of saved config | none |
|
|
561
|
+
| `VOID_PROJECT` | Default project slug for deploy, secret, and delete commands | none |
|