> ## Documentation Index
> Fetch the complete documentation index at: https://vercel.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Azul CLI commands: build, push, pack, config

> Complete reference for every Azul CLI command — azul, build, push, pack, and config — with all flags, options, and usage examples.

Azul is driven entirely from the terminal using the `azul` command and its subcommands. Every flag accepts either a space-separated value (`--flag value`) or an equals-separated value (`--flag=value`). Optional arguments are shown in brackets — for example, `[PATH]` — and short aliases are available where noted.

<Note>
  Run `azul --help` at any time to print usage information. Add `--help` after any subcommand (e.g., `azul push --help`) to see that command's options.
</Note>

## `azul`

Running `azul` on its own starts the live sync daemon. The daemon connects to Roblox Studio via the companion plugin and mirrors your DataModel to disk in real time.

```bash theme={null}
azul [command] [options]
```

### Global options

The following options are accepted by `azul` and can also be combined with any subcommand.

| Option              | Short | Description                               |
| ------------------- | ----- | ----------------------------------------- |
| `--help`            | `-h`  | Print help text and exit                  |
| `--version`         |       | Print the installed Azul version and exit |
| `--debug`           |       | Enable verbose debug logs                 |
| `--no-warn`         |       | Skip confirmation prompts                 |
| `--sync-dir [PATH]` |       | Override the sync directory               |
| `--port [NUMBER]`   |       | Override the daemon port                  |

```bash theme={null}
azul --sync-dir ./sync --port 8080
```

***

## `azul build`

`azul build` performs a one-time push from your local filesystem into Roblox Studio. Use it to seed Studio from local files without starting continuous sync.

```bash theme={null}
azul build [options]
```

| Option                    | Description                                                           |
| ------------------------- | --------------------------------------------------------------------- |
| `--from-sourcemap [FILE]` | Build from sourcemap data instead of the filesystem                   |
| `--rojo`                  | Enable Rojo-compatible parsing for your project structure             |
| `--rojo-project [FILE]`   | Override the Rojo project file path (default: `default.project.json`) |

<CodeGroup>
  ```bash Basic build theme={null}
  azul build
  ```

  ```bash Build from sourcemap theme={null}
  azul build --from-sourcemap ./sourcemap.json
  ```

  ```bash Build with Rojo theme={null}
  azul build --rojo --rojo-project default.project.json
  ```
</CodeGroup>

<Tip>
  If you're migrating an existing Rojo project into Studio, use `--rojo` together with `--rojo-project` to point Azul at your project file.
</Tip>

***

## `azul push`

`azul push` selectively pushes a local folder to a specific location in the Studio DataModel. Unlike `azul build`, which processes your entire project, `push` targets a single source-to-destination mapping.

```bash theme={null}
azul push [options]
```

| Option                    | Short | Description                                                  |
| ------------------------- | ----- | ------------------------------------------------------------ |
| `--source [DIR]`          | `-s`  | Local source folder to push                                  |
| `--destination [PATH]`    | `-d`  | Studio destination path (e.g., `ReplicatedStorage.Packages`) |
| `--from-sourcemap [FILE]` |       | Push from sourcemap data instead of the filesystem           |
| `--destructive`           |       | Wipe all children at the destination before pushing          |
| `--no-place-config`       |       | Ignore place config path mappings                            |
| `--rojo`                  |       | Enable Rojo-compatible parsing                               |
| `--rojo-project [FILE]`   |       | Override the Rojo project file path                          |

<CodeGroup>
  ```bash Push a folder to ReplicatedStorage theme={null}
  azul push -s Packages -d ReplicatedStorage.Packages
  ```

  ```bash Push with destructive wipe theme={null}
  azul push -s Packages -d ReplicatedStorage.Packages --destructive --rojo
  ```

  ```bash Push a server folder theme={null}
  azul push -s src/Server -d ServerScriptService.Server
  ```
</CodeGroup>

<Warning>
  `--destructive` deletes all existing children at the destination before writing. This cannot be undone from within Azul — make sure your local files are the source of truth before using this flag.
</Warning>

***

## `azul pack`

`azul pack` serializes Studio instance properties into a `sourcemap.json` file for hermetic, reproducible builds. The output is compatible with tools like Luau LSP.

```bash theme={null}
azul pack [options]
```

| Option            | Short | Description                                  |
| ----------------- | ----- | -------------------------------------------- |
| `--output [FILE]` | `-o`  | Output path for the generated sourcemap      |
| `--scripts-only`  |       | Serialize only scripts and their descendants |

<CodeGroup>
  ```bash Generate sourcemap to default path theme={null}
  azul pack
  ```

  ```bash Generate sourcemap to a specific path theme={null}
  azul pack -o sourcemap.json
  ```

  ```bash Serialize scripts only theme={null}
  azul pack -o sourcemap.json --scripts-only
  ```
</CodeGroup>

***

## `azul config`

`azul config` opens the Azul configuration file in your default editor. Use `--path` if you want to locate the file without opening it.

```bash theme={null}
azul config [options]
```

| Option   | Description                                            |
| -------- | ------------------------------------------------------ |
| `--path` | Print the config file path and exit without opening it |

<CodeGroup>
  ```bash Open config in default editor theme={null}
  azul config
  ```

  ```bash Print config file path theme={null}
  azul config --path
  ```
</CodeGroup>

<Tip>
  Use `azul config --path` to find the config file and open it manually, pipe it to another tool, or check it into version control.
</Tip>
