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

# Installation

> Get closed-alpha access to Cerulion, then install the CLI from source and verify it works.

Cerulion is in **closed alpha** — curated early access for teams building
high-performance robotics. This page shows how to get access and, once you have
it, get the `cerulion` CLI building and verified on your machine.

Cerulion runs on **Linux and macOS**.

## Get access

During the closed alpha, we onboard teams directly so you start with the right
setup and a fast path to your first running graph. Book a 15-minute call and the
team will set you up with the source and walk you through it.

<CardGroup cols={1}>
  <Card title="Schedule a 15-minute call" icon="calendar" href="https://link.cerulion.com/book/docs" color="#0080FF">
    Tell us about your use case and we'll get you access to Cerulion and up and
    running fast.
  </Card>
</CardGroup>

<Info>
  The prerequisites and install steps below use the Cerulion source you'll
  receive during onboarding. Once you have access, continue here.
</Info>

<Frame>
  <img src="https://mintcdn.com/cerulion-5327fd47/lTRLJjqSsKCVFhMl/images/relaxing.webp?fit=max&auto=format&n=lTRLJjqSsKCVFhMl&q=85&s=3ec64b7a0dcb78c8d7d27e7e60d0bbd9" alt="The Cerulion lion relaxing on a beach chair with a coconut while code runs on a nearby laptop — onboarding the easy way" width="1200" height="800" loading="lazy" decoding="async" data-path="images/relaxing.webp" />
</Frame>

## Prerequisites

<CardGroup cols={2}>
  <Card title="Rust toolchain" icon="rust" color="#0080FF">
    Rust **1.88 or later** (stable), with `cargo`. Install via
    [rustup](https://rustup.rs).
  </Card>

  <Card title="cargo on PATH" icon="terminal" color="#0080FF">
    Required at runtime. `cerulion node build` shells out to `cargo`, and
    `cerulion graph run` loads the compiled node libraries it produces.
  </Card>
</CardGroup>

<Warning>
  `cargo` must be on your `PATH` even after installation. The CLI shells out to
  `cargo build` when you build a node, and it loads the resulting compiled
  libraries (`.dylib` on macOS, `.so` on Linux) when you run a graph. Without
  `cargo`, those commands fail.
</Warning>

Install the Rust toolchain with rustup if you do not already have it:

```bash theme={null}
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

Confirm `cargo` is available:

```bash theme={null}
cargo --version
```

## Install the CLI

Once you have access to the Cerulion repository, build the CLI from source and
install the `cerulion` binary onto your `PATH`. Building from source gives you
the full toolchain in a single `cargo install --path` step; a one-line installer
(Homebrew / `curl | sh`) is coming as Cerulion opens up.

<Steps>
  <Step title="Get the source" icon="code-branch">
    Clone the Cerulion repository to your machine. You should have the workspace
    that contains the `cerulion_cli` crate.
  </Step>

  <Step title="Install the binary" icon="hammer">
    From the repository root, build and install the CLI with `cargo`:

    ```bash theme={null}
    cargo install --path cerulion_cli
    ```

    This compiles the `cerulion_cli` crate and places the `cerulion` binary in
    your Cargo bin directory (`~/.cargo/bin`), which rustup adds to your `PATH`.
  </Step>

  <Step title="Confirm it is on your PATH" icon="magnifying-glass">
    Open a new shell so the updated `PATH` takes effect, then check that the
    binary resolves:

    ```bash theme={null}
    which cerulion
    ```
  </Step>
</Steps>

<Info>
  Generated node crates depend on `cerulion_core` and `native_ros2_messages`,
  which the CLI resolves relative to the Cerulion source tree: an absolute path
  to your checkout when it can be located, otherwise a sibling `../cerulion_core`
  (with a warning). Create your workspaces near the source checkout so node
  crates resolve their dependencies and build cleanly. Packaged dependencies are
  on the way as Cerulion opens up.
</Info>

## Verify the installation

Confirm everything is wired up in three quick checks: print the version, list
the available commands, and scaffold a throwaway workspace.

<Steps>
  <Step title="Check the version" icon="tag">
    ```bash theme={null}
    cerulion --version
    ```
  </Step>

  <Step title="List the commands" icon="list">
    Confirm the CLI runs and prints its help:

    ```bash theme={null}
    cerulion --help
    ```

    You should see the top-level commands: `workspace`, `node`, `graph`,
    `topic`, `schema`, `tui`, `trace`, and `clean`.
  </Step>

  <Step title="Create a smoke-test workspace" icon="folder-plus">
    Create a scratch workspace to confirm the CLI can scaffold a project:

    ```bash theme={null}
    cerulion workspace create install_check
    ```

    Expected output:

    ```text theme={null}
    Created workspace at install_check
    ```
  </Step>
</Steps>

<Check>
  `cerulion --version` printed a version, `cerulion --help` listed the commands,
  and `cerulion workspace create install_check` created a new workspace. Your
  installation is working. You can delete the `install_check` directory once you
  are satisfied.
</Check>

<Frame>
  <img src="https://mintcdn.com/cerulion-5327fd47/lTRLJjqSsKCVFhMl/images/thumbs-welcome.webp?fit=max&auto=format&n=lTRLJjqSsKCVFhMl&q=85&s=50bbaf3bd97eee53cfb3d3f8ad2323d5" alt="The Cerulion lion celebrating with balloons and a Welcome to Cerulion banner" width="1200" height="900" loading="lazy" decoding="async" data-path="images/thumbs-welcome.webp" />
</Frame>

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/cerulion/quickstart" color="#0080FF">
    Build and run your first two-node graph end to end.
  </Card>

  <Card title="Concepts" icon="lightbulb" href="/cerulion/concepts" color="#0080FF">
    Understand workspaces, nodes, graphs, topics, and schemas.
  </Card>
</CardGroup>
