Skip to main content

Documentation Index

Fetch the complete documentation index at: https://86d.app/docs/llms.txt

Use this file to discover all available pages before exploring further.

This page documents every command available in the 86d CLI. For a high-level overview and a typical workflow, see the CLI overview.

86d dev

Starts the Next.js store development server. Loads .env, .env.local, and .env.development.local (in that precedence order), checks that DATABASE_URL is set and reachable, and then runs turbo run dev --filter=store under the hood.
86d dev
Flags
FlagDescription
--port NListen on port N instead of the default 3000
Example
86d dev --port 3001

86d init

Configures your local store. The command:
  • Creates .env from apps/store/.env.example if one does not exist
  • Generates a random BETTER_AUTH_SECRET if the placeholder is still in place
  • Installs dependencies with bun install
  • Runs code generation
  • Optionally runs database migrations (when DATABASE_URL is set and reachable)
  • Optionally seeds demo data (when DATABASE_URL is set and reachable)
When run interactively, 86d init prompts you before running migrations and before seeding. On success it prints your admin credentials. In a non-TTY environment (CI pipelines, shell scripts, pipes), database setup is skipped automatically because there is no interactive stdin. Flags
FlagDescription
--yes, -ySkip all interactive prompts and auto-confirm migrate and seed
86d init

86d status

Prints a summary of your project: root directory, active template, enabled and disabled modules, environment variable status, and dependency state.
86d status
Run this after 86d init to verify your setup is correct before starting development.

86d doctor

Runs a deeper diagnostic with pass / warn / fail status for each check, plus a suggested fix for any issue. Checks include:
  • Node.js version (requires v23 or newer)
  • Bun installation
  • Project root and turbo.json
  • Dependencies and lockfile
  • Active template and config.json validity
  • Module integrity (each module has package.json and src/index.ts; enabled modules exist)
  • Required environment variables (DATABASE_URL, STORE_ID, BETTER_AUTH_SECRET)
  • Optional environment variables (RESEND_API_KEY, NEXT_PUBLIC_STORE_URL, NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID)
  • Database connectivity (TCP connect to host:port from DATABASE_URL)
  • Code-generation scripts present
  • TypeScript configs present
86d doctor
Use doctor when something is off but you do not know why. The output points at the broken check and tells you how to fix it.

86d module create <name>

Scaffolds a new module at modules/<name>/ with a complete structure: entry point, schema, store and admin endpoints, components, and a basic test.
86d module create loyalty-points
After creating a module, wire it into your store:
  1. Add "@86d-app/<name>" to your active template’s config.json, or run 86d module enable <name>.
  2. Run 86d generate to regenerate module imports and the API router.

86d module add <specifier>

Installs a module from a registry source, a GitHub repository, or an npm package. The CLI downloads the module to modules/<name>/, fetches its dependencies, runs bun install, and enables it in the active template. Specifier grammar
SpecifierMeaning
productsOfficial module from the 86d registry (short name)
@86d-app/productsOfficial module (full name)
github:owner/repoWhole repository as a module
github:owner/repo/modules/nameSpecific module within a GitHub repo
github:owner/repo#branchSpecific branch or tag
npm:@scope/packagenpm package
Examples
86d module add products
86d module add github:owner/repo/modules/loyalty
86d module add npm:@acme/commerce-module
After the command finishes, run 86d generate so the module is wired into the store.

86d module update [name]

Compares each locally installed module against the registry by version and integrity hash, then prints any modules that have updates available. Pass a module name to check just one module.
86d module update            # check every local module
86d module update reviews    # check only @86d-app/reviews
To apply an update, re-run 86d module add <name> for the listed modules.

86d module list

Lists all modules in modules/ along with their version and registry category, and tags whether each module exposes store components or admin endpoints.
86d module list
86d module ls

86d module search [query]

Searches the registry by module name, description, or category. Local modules are marked with a green dot.
86d module search           # list every registry module
86d module search payment   # filter by name, description, or category

86d module info <name>

Shows details about a module: version, category, declared id, store and admin endpoint counts, the actual endpoint paths, whether it has store / admin components, and whether it ships tests. If the module is not installed locally but is in the registry, prints the registry summary and an install hint.
86d module info loyalty-points

86d module enable <name>

Enables a module in your active template’s config.json and reminds you to regenerate. If config.json has "modules": "*", the command notes that all modules are already included and is a no-op.
86d module enable loyalty-points

86d module disable <name>

Disables a module in your active template’s config.json. If config.json has "modules": "*", the command converts it to an explicit list with the disabled module excluded.
86d module disable loyalty-points

86d template create <name>

Copies the default brisa template to templates/<name>/ and updates the new config.json so theme and name reflect the new template. Use this as the starting point for a custom store design.
86d template create minimal

86d template add <specifier>

Adds a template from a GitHub repository or an npm package. Specifier grammar
SpecifierMeaning
github:owner/repoUse the repository root as a template
github:owner/repo/templates/xSpecific template within a GitHub repo
github:owner/repo#branchSpecific branch or tag
npm:@scope/store-templatenpm package
Examples
86d template add github:owner/repo/templates/custom
86d template add npm:@acme/store-template
If the downloaded template is missing config.json, the CLI writes a minimal config and warns you so the template is at least usable.

86d template remove <name>

Deletes a template from templates/. The CLI refuses to remove the base template (brisa) and refuses to remove the currently active template; switch to another template first with 86d template activate.
86d template remove my-custom-theme

86d template list

Lists all templates in your project, with the active one marked.
86d template list
86d template ls

86d template activate <name>

Switches the store to use a different template. The CLI rewrites the template/* path alias in apps/store/tsconfig.json to point at the new template directory.
86d template activate minimal

86d generate

Runs every code generator: registry manifest, module imports and API router, and component documentation. Run this after editing config.json to add or remove modules.
86d generate
Sub-commands
CommandDescription
86d generate modulesRegenerate module imports and the API router only
86d generate registryRegenerate registry.json only
86d generate componentsRegenerate component documentation only
86d generate