---
title: Quick Start
description: From mille init to mille check — get started in minutes
---

import { Steps } from '@astrojs/starlight/components';

<Steps>

1. **Generate `mille.toml` with `mille init`**

   ```sh
   mille init
   ```

   mille analyzes actual import statements in your source files to infer layer structure and dependencies:

   ```
   Detected languages: rust
   Scanning imports...
   Using layer depth: 2

   Inferred layer structure:
     domain               ← (no internal dependencies)
     usecase              → domain
       external: anyhow
     infrastructure       → domain
       external: serde, tokio

   Generated 'mille.toml'
   ```

   Review the generated config and adjust as needed.

2. **Visualize with `mille analyze`** (optional)

   ```sh
   mille analyze
   ```

   Inspect the actual dependency graph before enforcing rules. Generate an SVG for browser viewing:

   ```sh
   mille analyze --format svg > graph.svg && open graph.svg
   ```

3. **Run `mille check`**

   ```sh
   mille check
   ```

   Exits with code 0 if no violations are found.

4. **Add to CI**

   For GitHub Actions:

   ```yaml
   - run: mille check --format github-actions
   ```

   Violations appear as annotations directly in PR reviews.

</Steps>

## Next Steps

- [Configuration Reference](/mille/en/configuration/overview/) — All `mille.toml` options
- [CI Integration](/mille/en/guides/ci-integration/) — GitHub Actions setup
- [Language Guides](/mille/en/guides/languages/rust/) — Per-language configuration examples
