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

# Installation

> Install the Coral CLI

Coral ships as a single local CLI. Once installed, the same binary is used for source management, SQL queries, and the MCP stdio server.

<Note>
  Coral publishes macOS, Linux, and x86\_64 Windows artifacts. Windows support
  currently targets native Windows 10/11 on `x86_64-pc-windows-msvc`; ARM64
  Windows is not released.
</Note>

## Install Coral

<Tabs>
  <Tab title="Homebrew">
    ```shellscript theme={"theme":{"light":"github-light","dark":"github-dark"}}
    brew install withcoral/tap/coral
    ```
  </Tab>

  <Tab title="Install script">
    ```shellscript theme={"theme":{"light":"github-light","dark":"github-dark"}}
    curl -fsSL https://withcoral.com/install.sh | sh
    ```
  </Tab>

  <Tab title="Windows ZIP">
    Download and install the Windows x86\_64 release ZIP:

    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    Invoke-WebRequest `
      -Uri "https://github.com/withcoral/coral/releases/latest/download/coral-x86_64-pc-windows-msvc.zip" `
      -OutFile "coral-x86_64-pc-windows-msvc.zip"
    Expand-Archive -Path "coral-x86_64-pc-windows-msvc.zip" -DestinationPath "coral" -Force
    New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.local\bin"
    Copy-Item "coral\coral.exe" "$env:USERPROFILE\.local\bin\coral.exe"
    ```

    If that directory is not already on your user `PATH`, add it:

    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    [Environment]::SetEnvironmentVariable("Path", "$env:USERPROFILE\.local\bin;$env:Path", "User")
    $env:Path = "$env:USERPROFILE\.local\bin;$env:Path"
    ```

    Verify the install:

    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    coral --version
    coral source discover
    coral onboard
    ```
  </Tab>

  <Tab title="Build from source">
    Requires [Rust and Cargo](https://www.rust-lang.org/tools/install), Node.js/npm, and Make.

    ```shellscript theme={"theme":{"light":"github-light","dark":"github-dark"}}
    make install
    coral --help
    ```

    This installs Coral's source-management, SQL, and MCP surfaces. It does
    not include `coral ui`, which is compiled only when the `embedded-ui`
    feature is enabled.
  </Tab>

  <Tab title="Build for Windows">
    Native Windows source builds target Windows 10 or 11 on
    `x86_64-pc-windows-msvc`. WSL is not required for this path.

    Prerequisites:

    * [Git for Windows](https://git-scm.com/download/win)
    * [Rust via rustup](https://www.rust-lang.org/tools/install), using the
      default MSVC toolchain
    * Visual Studio Build Tools with the "Desktop development with C++" workload
    * Windows 10 SDK or Windows 11 SDK

    Build the CLI:

    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    cargo build --release --locked -p coral-cli
    ```

    The compiled binary is:

    ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
    target\release\coral.exe
    ```

    Install it under your user profile:

    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.local\bin"
    Copy-Item "target\release\coral.exe" "$env:USERPROFILE\.local\bin\coral.exe"
    ```

    If that directory is not already on your user `PATH`, add it:

    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    [Environment]::SetEnvironmentVariable("Path", "$env:USERPROFILE\.local\bin;$env:Path", "User")
    $env:Path = "$env:USERPROFILE\.local\bin;$env:Path"
    ```

    Verify the build:

    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    coral --version
    coral source discover
    coral onboard
    ```

    This build includes Coral's source-management, SQL, and MCP surfaces. It
    does not include `coral ui`, which is compiled only when the `embedded-ui`
    feature is enabled.

    To include the local UI, build the UI first and enable `embedded-ui`:

    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    npm ci --prefix ui
    npm run build --prefix ui
    cargo build --release --locked -p coral-cli --features embedded-ui
    ```
  </Tab>
</Tabs>

<Tip>
  Once installed, run `coral onboard` to start the interactive wizard to complete the setup.
</Tip>

## Upgrade

<Tabs>
  <Tab title="Homebrew">
    ```shellscript theme={"theme":{"light":"github-light","dark":"github-dark"}}
    brew upgrade withcoral/tap/coral
    ```
  </Tab>

  <Tab title="Install script">
    Re-run the installer to upgrade a direct install:

    ```shellscript theme={"theme":{"light":"github-light","dark":"github-dark"}}
    curl -fsSL https://withcoral.com/install.sh | sh
    ```
  </Tab>

  <Tab title="Windows ZIP">
    Download the latest `coral-x86_64-pc-windows-msvc.zip`, expand it, and
    overwrite the installed `coral.exe`:

    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    Invoke-WebRequest `
      -Uri "https://github.com/withcoral/coral/releases/latest/download/coral-x86_64-pc-windows-msvc.zip" `
      -OutFile "coral-x86_64-pc-windows-msvc.zip"
    Expand-Archive -Path "coral-x86_64-pc-windows-msvc.zip" -DestinationPath "coral" -Force
    Copy-Item "coral\coral.exe" "$env:USERPROFILE\.local\bin\coral.exe"
    ```
  </Tab>
</Tabs>

## Uninstall

<Tabs>
  <Tab title="Homebrew">
    ```shellscript theme={"theme":{"light":"github-light","dark":"github-dark"}}
    brew uninstall withcoral/tap/coral
    ```
  </Tab>

  <Tab title="Install script">
    ```shellscript theme={"theme":{"light":"github-light","dark":"github-dark"}}
    rm -f ~/.local/bin/coral
    rm -rf ~/.config/coral
    ```
  </Tab>

  <Tab title="Windows ZIP">
    ```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    Remove-Item "$env:USERPROFILE\.local\bin\coral.exe" -ErrorAction SilentlyContinue
    Remove-Item "$env:APPDATA\withcoral\coral\config" -Recurse -Force -ErrorAction SilentlyContinue
    ```
  </Tab>
</Tabs>

## Skills

Coral publishes a set of agent skills that teach your coding agent how to use Coral effectively. Install them with:

```shellscript theme={"theme":{"light":"github-light","dark":"github-dark"}}
npx skills add withcoral/skills
```

Available skills:

* **`coral`** — teaches your agent the discovery-first MCP workflow for answering data questions through Coral, including how to use `list_catalog`, `search_catalog`, `coral.tables`, `coral.table_functions`, `coral.columns`, and `coral.inputs`.
* **`coral-create-source-spec`** — guides your agent through authoring or repairing a custom source spec YAML for `coral source add --file`, or adapting it into a bundled source.
* **`coral-review-source-spec`** — guides source manifest and source PR reviews for correctness, query ergonomics, documentation quality, and consistency with existing Coral sources.

Installable skill packages are published from [github.com/withcoral/skills](https://github.com/withcoral/skills).

## Local state

Coral stores local state in its platform-specific configuration directory. You can override that location with:

```shellscript theme={"theme":{"light":"github-light","dark":"github-dark"}}
export CORAL_CONFIG_DIR=/path/to/coral-config
```

On Windows PowerShell:

```powershell theme={"theme":{"light":"github-light","dark":"github-dark"}}
$env:CORAL_CONFIG_DIR = "C:\path\to\coral-config"
```

On Windows, the default local state path is
`%APPDATA%\withcoral\coral\config`.

Important files include:

* `config.toml` for installed-source metadata, non-secret variables, and runtime settings. See [Configuration](/docs/reference/configuration).
* imported source specs under `workspaces/<workspace>/sources/<source>/manifest.yaml`
* source secrets stored separately within the same local trust boundary

<Note>
  [Bundled source](/docs/reference/bundled-sources) specs are not copied into the config directory. Coral resolves them from the current binary when you validate or query a bundled source, so upgrades pick up newer bundled manifests without re-adding the source.
</Note>
