> ## Documentation Index
> Fetch the complete documentation index at: https://au-2a4a5dc8.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Commands

> Every openlabel command, what it needs, and how it exits.

| Command | Does | Needs an API key |
| - | - | - |
| [`check`](https://au-2a4a5dc8.mintlify.site/cli/check) | Judges a piece's claims against its label | Yes, any provider |
| [`watch`](https://au-2a4a5dc8.mintlify.site/cli/watch) | Lists saved claims a label change touches | No |
| [`unseen`](https://au-2a4a5dc8.mintlify.site/cli/unseen) | Finds prescribers with little industry contact | Only for a question, any provider |
| [`search`](https://au-2a4a5dc8.mintlify.site/cli/search) | Prints the label sentences matching a question | No |
| [`diff`](https://au-2a4a5dc8.mintlify.site/cli/diff) | Prints what changed between two label versions | No |
| [`skills eval`](https://au-2a4a5dc8.mintlify.site/cli/skills) | Runs the skills' eval suites | Yes, Anthropic |

Every command takes `--json` to print machine-readable output instead of text, and `-h` or `--help`.

Color is on when output goes to a terminal. Set `NO_COLOR` to turn it off.

## Models and providers

Check and the plain-language form of Unseen work with any of these. Open Label uses the provider you name with `--provider` (or `OPENLABEL_PROVIDER`), otherwise the first one whose key is set, in this order:

| Provider | Key | Model |
| - | - | - |
| `anthropic` | `ANTHROPIC_API_KEY` | Optional. Defaults to `claude-opus-5-5` |
| `openai` | `OPENAI_API_KEY` | Required |
| `openrouter` | `OPENROUTER_API_KEY` | Required |
| `gemini` | `GEMINI_API_KEY` | Required |
| `groq` | `GROQ_API_KEY` | Required |
| `ollama` | none | Required; runs against `http://localhost:11434` |

Set the model with `--model <id>` or `OPENLABEL_MODEL`. Every provider except Anthropic needs one, because Open Label can't know which of a provider's models you have access to. `OPENLABEL_BASE_URL` points any OpenAI-style provider at another address, such as a company gateway.

```sh theme={null}
openlabel check email.html --label dupixent --provider openrouter --model <model id>
```

Open Label asks every model for JSON that matches a schema and rejects answers that don't. The guards on verdicts apply whatever the model: a claim must quote the piece, and a citation must be a sentence the model was shown. How well a model judges claims still varies, so run a few pieces you know before relying on one.

`skills eval` always runs Claude, because the skills are written for Claude Code.

A `.env` file in the directory you run from is loaded automatically.

## Exit codes

| Code | Meaning |
| - | - |
| 0 | Success with nothing to report |
| 1 | Something needs attention: an overstated claim, an affected piece, a failed eval case |
| 2 | `check` only: an off-label or unsupported claim, or a rule violation |
| 64 | Usage error |
| 69 | Could not run: network or API failure |

See [Verdicts and exit codes](https://au-2a4a5dc8.mintlify.site/concepts/verdicts.md) for exactly when `check` returns each.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.