# @mintel/cli

The Mintel CLI is the primary automation tool for managing the monorepo and ensuring all client websites follow the same high-quality standards and infrastructure patterns.

## 🚀 Installation

### Using npx (Recommended)

Run the CLI without installing it globally. This always uses the latest version from the registry:

```bash
npx @mintel/cli init apps/my-new-website.com
```

### Global Installation

Install the CLI globally from the Mintel registry:

```bash
npm install -g @mintel/cli
```

### Development (Local Link)

If you are contributing to the CLI, you can link it locally:

```bash
cd packages/cli
pnpm build
npm link
```

## 🛠 Commands

### `init <path>`

Scaffolds a new, production-ready client website in the specified path.

```bash
mintel init apps/my-new-website.com
```

#### What it does:

1.  **Project Structure**: Creates a modern Next.js directory layout.
2.  **Shared Configs**: Generates `package.json`, `tsconfig.json`, and `eslint.config.mjs` that extend the `@mintel` shared packages.
3.  **Localization**: Sets up a localized routing structure (`src/app/[locale]`) with `next-intl` pre-configured.
4.  **Error Tracking**: Injects Sentry/GlitchTip instrumentation.
5.  **Environment Safety**: Adds a validation script (`scripts/validate-env.ts`) to catch missing secrets at build time.
6.  **Infrastructure**: Injects the universal `Dockerfile`, `docker-compose.yml`, and the tag-based Gitea Actions deployment workflow.

## 🛠 Development

To add new features to the scaffold (e.g., new shared files or config templates), modify `packages/cli/src/index.ts`.
