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

# Open a Local MCAP

> Visualize a local .mcap recording in under two minutes — no account required.

Have a raw `.mcap` recording on your machine? You can open it in the Avala
Mission Control viewer without creating an account. There are two ways in — the
command line and the browser — and both keep the file on your machine.

<Info>
  The local viewer is **read-only**: it renders your recording so you can
  inspect camera images, LiDAR point clouds, transforms, and other topics.
  Annotation, QC, consensus, and sharing live in the full cloud platform — see
  [Upload Workflow](/docs/visualization/mcap-ros/overview#upload-workflow).
</Info>

## Option A — the `avala view` command

<Steps>
  <Step title="Install the CLI">
    The `avala` command ships with the Python SDK's CLI extra:

    ```bash theme={null}
    pip install "avala[cli]"
    ```
  </Step>

  <Step title="Point it at your recording">
    ```bash theme={null}
    avala view drive.mcap
    ```

    This starts a tiny local web server, opens the no-login MCAP viewer in your
    browser, and streams the file to it over HTTP range requests. The recording
    never leaves your machine — the viewer reads it back over `127.0.0.1`.

    ```text theme={null}
    → serving drive.mcap on http://127.0.0.1:53124 (local only)
    → opening https://avala.ai/mcap?url=http://127.0.0.1:53124/recording.mcap
    Press Ctrl+C to stop.
    ```

    <Note>
      Your recording's filename never leaves your machine — it's served under an
      opaque path, so only the loopback URL (not the real basename) is put in the
      viewer link.
    </Note>
  </Step>

  <Step title="Explore, then stop">
    Scrub the timeline and rearrange panels just like in the cloud viewer. When
    you're done, press `Ctrl+C` in the terminal to stop serving.
  </Step>
</Steps>

### Flags

| Flag                 | Purpose                                                                                                        |
| -------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--no-browser`       | Print the viewer URL instead of launching a browser (handy over SSH).                                          |
| `--port <n>`         | Serve on a fixed port instead of an ephemeral one.                                                             |
| `--viewer-url <url>` | Point at a self-hosted or staging Mission Control (or set `AVALA_VIEWER_URL`). Defaults to `https://avala.ai`. |
| `--force`            | Serve a file that doesn't start with the MCAP magic bytes.                                                     |

<Tip>
  Viewing over SSH or on a headless box? Run with `--no-browser` and a fixed
  `--port 53124`, forward that port (`ssh -L 53124:127.0.0.1:53124 …`), then open
  the printed URL locally. The file is served on `127.0.0.1`, so the tunnel is
  what makes it reachable.
</Tip>

## Option B — drag and drop in the browser

Prefer not to install anything? Open [avala.ai/mcap](https://avala.ai/mcap) and
choose **Select from Device**. The file is parsed entirely in your browser and
never uploaded. This is the same viewer the `avala view` command opens.

## Take it to the cloud

The local viewer is the fast way to sanity-check a recording. To label it, run
quality control, or share it with your team, upload it to a dataset — the same
recording becomes an annotation workspace with no reprocessing step.

<CardGroup cols={2}>
  <Card title="Upload & annotate" icon="cloud-arrow-up" href="/docs/visualization/mcap-ros/overview#upload-workflow">
    Turn a recording into an annotation workspace: 3D cuboids on point clouds,
    boxes on camera images, object tracking across frames.
  </Card>

  <Card title="Supported messages" icon="list-check" href="/docs/visualization/mcap-ros/supported-messages">
    See which ROS and Foxglove schemas map to which panels automatically.
  </Card>
</CardGroup>
