---
title: Install
description: Install the looot CLI with npm (Node 20 or newer), check the version, and run looot doctor to confirm the setup works.
---

The CLI is the npm package `looot`. It needs **Node.js 20 or newer**.

```bash
npm install -g looot
looot --version
```

`looot --version` works without a token and prints one line such as `looot 1.1.0`.

## Check the setup

```bash
looot doctor
```

`doctor` checks, in order:

| Check | What it looks at |
| --- | --- |
| `node_version` | Your Node version is 20 or newer. |
| `reachability` | `GET https://api.looot.ai/health` answers. |
| `token` | The saved or exported token is accepted. A missing token is a warning, not a failure. |
| `clock_skew` | Your clock is within 60 seconds of the gateway's. |
| `agent_clients` | Which of Claude Code, Cursor and Codex are installed, and which already have looot configured. |
| `agent_env` | When a client is configured, whether `LOOOT_TOKEN` is set in this shell. |

`agent_env` can't tell a header setup from a browser sign-in. If your agent signed in with the
browser (see [Connect your agent](/connect)), it doesn't need `LOOOT_TOKEN` and you can ignore
that warning.

It also compares your installed version with the one published on npm. `doctor` exits with code 1
when a check fails.

## Output formats

On a terminal every command prints a short human summary. When the output is piped or redirected
(a script, an agent, `| jq`), it prints JSON instead. Add `--format json`, `--format human` or
`--format jsonl` after the command to choose:

```bash
looot balance --format json
```

## Help

```bash
looot help            # the customer commands
looot help run        # one command in detail
looot help --all      # every command with all its flags
```

## Next

[Browse the catalog without an account](/get-started/browse), or go straight to
[Sign in](/get-started/sign-in). Running anything also needs a top-up first, see
[Before your first run](/money#before-your-first-run).

<Related />
