mirror of
https://github.com/LukeHagar/better-auth.git
synced 2025-12-10 04:19:32 +00:00
103 lines
4.0 KiB
Plaintext
103 lines
4.0 KiB
Plaintext
---
|
|
title: CLI
|
|
description: Built-in CLI for managing your project.
|
|
---
|
|
|
|
Better Auth comes with a built-in CLI to help you manage the database schemas, initialize your project, generate a secret key for your application, and gather diagnostic information about your setup.
|
|
|
|
## Generate
|
|
|
|
The `generate` command creates the schema required by Better Auth. If you're using a database adapter like Prisma or Drizzle, this command will generate the right schema for your ORM. If you're using the built-in Kysely adapter, it will generate an SQL file you can run directly on your database.
|
|
|
|
```bash title="Terminal"
|
|
npx @better-auth/cli@latest generate
|
|
```
|
|
|
|
### Options
|
|
|
|
- `--output` - Where to save the generated schema. For Prisma, it will be saved in prisma/schema.prisma. For Drizzle, it goes to schema.ts in your project root. For Kysely, it's an SQL file saved as schema.sql in your project root.
|
|
- `--config` - The path to your Better Auth config file. By default, the CLI will search for a auth.ts file in **./**, **./utils**, **./lib**, or any of these directories under `src` directory.
|
|
- `--yes` - Skip the confirmation prompt and generate the schema directly.
|
|
|
|
|
|
## Migrate
|
|
|
|
The migrate command applies the Better Auth schema directly to your database. This is available if you're using the built-in Kysely adapter. For other adapters, you'll need to apply the schema using your ORM's migration tool.
|
|
|
|
```bash title="Terminal"
|
|
npx @better-auth/cli@latest migrate
|
|
```
|
|
|
|
### Options
|
|
|
|
- `--config` - The path to your Better Auth config file. By default, the CLI will search for a auth.ts file in **./**, **./utils**, **./lib**, or any of these directories under `src` directory.
|
|
- `--yes` - Skip the confirmation prompt and apply the schema directly.
|
|
|
|
## Init
|
|
|
|
The `init` command allows you to initialize Better Auth in your project.
|
|
|
|
```bash title="Terminal"
|
|
npx @better-auth/cli@latest init
|
|
```
|
|
|
|
### Options
|
|
|
|
- `--name` - The name of your application. (Defaults to your `package.json`'s `name` property.)
|
|
- `--framework` - The framework your codebase is using. Currently, the only supported framework is `nextjs`.
|
|
- `--plugins` - The plugins you want to use. You can specify multiple plugins by separating them with a comma.
|
|
- `--database` - The database you want to use. Currently, the only supported database is `sqlite`.
|
|
- `--package-manager` - The package manager you want to use. Currently, the only supported package managers are `npm`, `pnpm`, `yarn`, `bun`. (Defaults to the manager you used to initialize the CLI.)
|
|
|
|
## Info
|
|
|
|
The `info` command provides diagnostic information about your Better Auth setup and environment. Useful for debugging and sharing when seeking support.
|
|
|
|
```bash title="Terminal"
|
|
npx @better-auth/cli@latest info
|
|
```
|
|
|
|
### Output
|
|
|
|
The command displays:
|
|
- **System**: OS, CPU, memory, Node.js version
|
|
- **Package Manager**: Detected manager and version
|
|
- **Better Auth**: Version and configuration (sensitive data auto-redacted)
|
|
- **Frameworks**: Detected frameworks (Next.js, React, Vue, etc.)
|
|
- **Databases**: Database clients and ORMs (Prisma, Drizzle, etc.)
|
|
|
|
### Options
|
|
|
|
- `--config` - Path to your Better Auth config file
|
|
- `--json` - Output as JSON for sharing or programmatic use
|
|
|
|
### Examples
|
|
|
|
```bash
|
|
# Basic usage
|
|
npx @better-auth/cli@latest info
|
|
|
|
# Custom config path
|
|
npx @better-auth/cli@latest info --config ./config/auth.ts
|
|
|
|
# JSON output
|
|
npx @better-auth/cli@latest info --json > auth-info.json
|
|
```
|
|
|
|
Sensitive data like secrets, API keys, and database URLs are automatically replaced with `[REDACTED]` for safe sharing.
|
|
|
|
## Secret
|
|
|
|
The CLI also provides a way to generate a secret key for your Better Auth instance.
|
|
|
|
```bash title="Terminal"
|
|
npx @better-auth/cli@latest secret
|
|
```
|
|
|
|
## Common Issues
|
|
|
|
**Error: Cannot find module X**
|
|
|
|
If you see this error, it means the CLI can't resolve imported modules in your Better Auth config file. We're working on a fix for many of these issues, but in the meantime, you can try the following:
|
|
|
|
- Remove any import aliases in your config file and use relative paths instead. After running the CLI, you can revert to using aliases. |