> ## 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: Keep Studio and local files in sync

> Azul is a Studio-first sync tool for Roblox that mirrors your DataModel to disk so you can use real editor tooling without leaving Studio.

Azul keeps Roblox Studio and your local filesystem in sync — without requiring you to change how you build. Studio remains the source of truth for your place hierarchy, and Azul mirrors that structure to a local folder so you can use linting, search, refactoring, and version control in any editor you prefer. If you already have files on disk, `azul build` and `azul push` let you push them back into Studio on demand.

<CardGroup cols={2}>
  <Card title="Installation" icon="download" href="/getting-started/installation">
    Install the Azul daemon CLI and companion Studio plugin in two steps.
  </Card>

  <Card title="Project setup" icon="folder-open" href="/getting-started/projects">
    Start a new sync session or push existing local files into Studio.
  </Card>

  <Card title="Commands" icon="terminal" href="/commands">
    Full reference for `azul`, `azul build`, `azul push`, `azul pack`, and more.
  </Card>

  <Card title="Configuration" icon="sliders" href="/configuration">
    Tune defaults for the daemon and plugin to match your workflow.
  </Card>
</CardGroup>

## How Azul works

Azul runs as a local daemon that opens a connection the Studio companion plugin can join. Once connected, every change you make in Studio is written to your local folder, and every local edit is pushed back to Studio in real time. The daemon does not require a project file to start — it reads your DataModel directly from Studio.

<Steps>
  <Step title="Install the daemon and plugin">
    Install the `azul-sync` CLI globally with npm, then add the companion plugin to Roblox Studio from the Creator Store.
  </Step>

  <Step title="Start the daemon">
    Open your project folder in a terminal and run `azul`. The daemon starts and waits for Studio to connect.
  </Step>

  <Step title="Connect in Studio">
    Open your place in Roblox Studio and click **Connect** in the Azul plugin. Your DataModel is mirrored to the local folder immediately.
  </Step>

  <Step title="Edit anywhere">
    Edit scripts in Studio or your local editor. Both sides stay in sync automatically. Commit local changes with any version control tool you prefer.
  </Step>
</Steps>

## Key features

<CardGroup cols={2}>
  <Card title="Bi-directional sync" icon="arrows-rotate">
    Changes in Studio appear on disk instantly. Local edits sync back to Studio in real time.
  </Card>

  <Card title="No project file required" icon="circle-check">
    Start from any place — new or existing. No `default.project.json` needed by default.
  </Card>

  <Card title="Build and push local files" icon="upload">
    Use `azul build` for a full push or `azul push` with targeted mappings for repeatable imports.
  </Card>

  <Card title="Rojo compatibility" icon="plug">
    Import from existing Rojo-based projects with the `--rojo` flag when you need it.
  </Card>

  <Card title="Sourcemap support" icon="map">
    Generate a Rojo-compatible `sourcemap.json` for tools like Luau LSP with `azul pack`.
  </Card>

  <Card title="Works with existing places" icon="boxes-stacked">
    No required schema. Open any place in Studio and start syncing without migration.
  </Card>
</CardGroup>

## How Azul differs from Rojo

Azul and Rojo solve a similar problem but from opposite directions. Rojo treats local files as the source of truth and builds the DataModel from them. Azul treats Studio as the source of truth and mirrors the DataModel to local files.

|                       | Azul                           | Rojo                         |
| --------------------- | ------------------------------ | ---------------------------- |
| Source of truth       | Studio DataModel               | Local project files          |
| Project file required | No                             | Yes (`default.project.json`) |
| Workflow direction    | Studio → disk (with push back) | Disk → Studio                |
| Rojo compatibility    | Opt-in via `--rojo`            | Native                       |
| Targeted imports      | `azul push` mappings           | N/A                          |

<Tip>
  If you have an existing Rojo project, you can import it into Azul using `azul build --rojo` to get started without rewriting your file structure.
</Tip>
