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

# Install CLI

The Inference CLI (`inf`) drives Catalyst from the terminal. It serves two main paths:

1. **Instrument your codebase** so every LLM call your app makes is captured in Gateway — `inf instrument` hands the job to an AI coding agent (Claude Code, OpenCode, or Codex) and walks you through the diff.
2. **Operate the platform programmatically** — browse models, manage rubrics and eval runs, upload and materialize datasets, queue and monitor training runs, and inspect captured inferences, traces, and spans without opening the dashboard.

Sign up for an account at [Inference.net](https://inference.net/register) to get started.

<Warning>
  The CLI is currently in beta. Please report any issues you find.
</Warning>

## Quick Start

<Steps>
  <Step title="Install">
    <Metadata text="cli/overview/quickstart-install" />

    ```bash theme={"system"}
    npm install -g @inference/cli
    ```
  </Step>

  <Step title="Sign in">
    <Metadata text="cli/overview/quickstart-sign-in" />

    ```bash theme={"system"}
    inf auth login
    ```
  </Step>

  <Step title="Check status">
    <Metadata text="cli/overview/quickstart-status" />

    ```bash theme={"system"}
    inf auth status
    ```
  </Step>
</Steps>

Run `inf --help` at any time to see every command. Having trouble? [Send us a message](mailto:support@inference.net) or tag us at [x.com/@inference\_net](https://x.com/inference_net).

## Global Options

These flags work on every command.

| Flag                 | Description                                         |
| -------------------- | --------------------------------------------------- |
| `--json`             | Output as JSON (preserves full UUIDs for scripting) |
| `-v, --verbose`      | Verbose debug output                                |
| `-p, --project <id>` | Override the active project for this invocation     |
| `-V, --version`      | Show CLI version                                    |
| `-h, --help`         | Show help                                           |

<Tip>
  Tables show UUIDs as readable 8-character prefixes. For scripting, always use `--json` — it preserves full UUIDs so you can round-trip values between commands (e.g. `inf dataset list --json | jq -r '.[0].id' | xargs inf dataset get`).
</Tip>

## Commands

| Command                             | Description                                                           |
| ----------------------------------- | --------------------------------------------------------------------- |
| [`inf instrument`](/cli/instrument) | Instrument your codebase for Catalyst observability using an AI agent |
| [`inf auth`](/cli/authentication)   | Sign in, sign out, and check authentication status                    |
| [`inf project`](/cli/projects)      | List, switch between, and inspect projects                            |
| [`inf models`](/cli/models)         | Browse callable models with capabilities and pricing                  |
| [`inf eval`](/cli/evals)            | Manage rubrics, launch eval runs, inspect results                     |
| [`inf dataset`](/cli/datasets)      | Upload JSONL data, create eval/training datasets, download            |
| [`inf training`](/cli/training)     | Queue training runs, monitor progress, view logs, and poll status     |
| [`inf inference`](/cli/inferences)  | View inference requests and responses captured by Gateway             |
| [`inf trace`](/cli/traces)          | Browse trace trees, timelines, facets, and exports                    |
| [`inf span`](/cli/spans)            | Search spans and inspect span IO, attributes, events, and links       |
| [`inf dashboard`](/cli/dashboard)   | Launch the interactive terminal dashboard                             |

## Explore the CLI

<CardGroup cols={2}>
  <Card title="Instrument your codebase" icon="wand-magic-sparkles" href="/cli/instrument">
    Hand your project to an AI coding agent that wires up Catalyst for you.
  </Card>

  <Card title="Authentication" icon="key" href="/cli/authentication">
    Browser and headless authentication, env vars, and config.
  </Card>

  <Card title="Projects" icon="book" href="/cli/projects">
    Switch between projects and inspect the active project.
  </Card>

  <Card title="Models" icon="sparkles" href="/cli/models">
    Browse callable models, capabilities, and pricing.
  </Card>

  <Card title="Evals" icon="flask" href="/cli/evals">
    Manage rubrics, launch eval runs, and inspect results.
  </Card>

  <Card title="Datasets" icon="file-code" href="/cli/datasets">
    Upload JSONL files and materialize eval or training datasets.
  </Card>

  <Card title="Training" icon="graduation-cap" href="/cli/training">
    Queue training runs, monitor progress, view logs, and poll for completion.
  </Card>

  <Card title="Inferences" icon="code" href="/cli/inferences">
    Inspect request and response payloads captured by Gateway.
  </Card>

  <Card title="Traces" icon="waypoints" href="/cli/traces">
    Browse trace trees, timelines, facets, and exports from the terminal.
  </Card>

  <Card title="Spans" icon="git-branch" href="/cli/spans">
    Search spans and inspect captured IO, attributes, events, and links.
  </Card>

  <Card title="TUI Dashboard" icon="computer" href="/cli/dashboard">
    Interactive terminal UI for training runs, evals, datasets, and inferences.
  </Card>
</CardGroup>

## Usage telemetry

The CLI reports anonymized usage events so we can prioritize the commands our
customers actually rely on.

* **What we capture:** the command name, CLI version, OS and CPU architecture,
  the JavaScript runtime, and the flag names (never flag *values*) you used.
  When you run the CLI inside a git repository we also capture the repo
  `owner/name` and current branch from your `origin` remote — this is most
  useful for `inf instrument`, where we want to understand which codebases
  Catalyst gets wired into.
* **What we never capture:** argument values, environment variables, file
  contents, API keys, or any data you pass to a command.
* **When we don't capture anything:** events are only sent once you are
  authenticated. Commands run before `inf auth login` / `inf auth set-key`
  emit no events.
* **How it works:** events are sent fire-and-forget over tRPC with a short
  timeout, so telemetry never slows down or blocks your command. Failures are
  silent.
