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

# CLI overview

> What the geo CLI is and how it relates to the ai-cmo.dev platform.

The `geo` CLI is an operator tool for running the ai-cmo.dev measurement and analysis pipeline from the command line.

## Installation

The CLI is a Python package. Install it from the repository:

```sh theme={null}
pip install .
```

This registers the `geo` command via the `pyproject.toml` console script entry point:

```toml theme={null}
[project.scripts]
geo = "geo.cli:main"
```

Python 3.12 or later is required.

## How it works

The CLI runs locally against a checkout of the ai-cmo.dev repository. It reads brand configs from YAML files, runs prompts against AI engines, extracts mentions and citations, computes metrics, and generates reports. It does **not** call the ai-cmo.dev REST API — it works against SQLite databases and local files.

## Web app integration

The ai-cmo.dev web app invokes the CLI through a strict allowlist via `execFile` (never a shell). The allowed commands correspond to the token-authorized pipeline commands (`run`, `extract`, `prompts generate`, `recs generate`, `research run`, `seo`).

## Who should use it

Most users should use the ai-cmo.dev dashboard or [REST API](../api-reference/overview). The CLI is designed for operators running the production pipeline, debugging, or developing new features.

## Key paths

| Path                     | Default    | Configurable via  |
| ------------------------ | ---------- | ----------------- |
| Pipeline data            | `./data`   | `GEO_DATA_ROOT`   |
| Brand configs            | `./brands` | `GEO_BRANDS_ROOT` |
| App root (web app reads) | —          | `GEO_ROOT`        |

## Next steps

<CardGroup cols={2}>
  <Card title="CLI commands" icon="terminal" href="/cli/commands">
    Complete reference for every geo subcommand and flag.
  </Card>

  <Card title="CLI configuration" icon="gear" href="/cli/configuration">
    Every environment variable the CLI reads.
  </Card>
</CardGroup>
