# CLI reference

Install, sign in and find the command you need. Every command and flag comes from the CLI’s own schema.

CLI 0.5.1 · 81 commands · Generated from the CLI schema

Each command is marked read, writes or needs a person. Conditional commands use the strongest effect they can have. Guarded writes can require confirmation even without --yes. [Read the write confirmation rules](https://recala.co/developers/agents/#guarded).

## Install the CLI

```
curl -fsSL https://recala.co/install.sh | sh
```

```
uv tool install https://recala.co/releases/cli/recala_cli-0.5.1-py3-none-any.whl
```

```
pipx install https://recala.co/releases/cli/recala_cli-0.5.1-py3-none-any.whl
```

The script needs uv or pipx. Install uv first if neither is available. With pipx, use Python 3.11 or newer. [Install uv](https://docs.astral.sh/uv/getting-started/installation/). Recala is in beta. [Join the beta](https://recala.co/register/).

[Authentication: keys, scopes and caps →](https://recala.co/developers/authentication/)

## Sign in with a one-time code

The terminal opens [recala.co/cli](https://recala.co/cli) and prints a code. Sign in to Recala, type that code and approve the request. Return to your terminal to continue.

```
recala login
```

Credentials are resolved in this order. There is no command-line token flag; keep credentials out of your shell history.

| Priority | Source | When used |
| --- | --- | --- |
| 1 | `RECALA_API_KEY` | Environment credential, where organization-key access is enabled. |
| 2 | `RECALA_TOKEN` | Environment access token, if no API key is set. |
| 3 | Saved login | The session from your one-time sign-in. |

**Sign in on a remote machine**

```
recala login --no-browser
```

Open the printed link on your own device and type the code there.

## Choose your organization

Use the organization’s name, slug or id. Save your choice once, or override it for a single command.

```
recala org use <name>
```

| Priority | Source | Scope |
| --- | --- | --- |
| 1 | `--org` | This command; for example `--org rebeam`. |
| 2 | `RECALA_ORG` | Your shell, script or agent. |
| 3 | `recala org use` | The choice saved on this machine. |

```
recala article list --org rebeam
```

**List organizations or set a shell default**

```
recala org list
```

```
RECALA_ORG=rebeam recala article list
```

## Find a command group

[### Top-level commands

Commands you run directly, with no subcommand.](https://recala.co/developers/cli/top-level/)[### Article

Read, edit, review, approve, schedule and unpublish articles.](https://recala.co/developers/cli/article/)[### Authors

The real people who sign articles.](https://recala.co/developers/cli/authors/)[### Autoapprove

Automatic approval for passing drafts and the person who signs them.](https://recala.co/developers/cli/autoapprove/)[### Cadence

Publication days, time and autopilot consent.](https://recala.co/developers/cli/cadence/)[### Cms

Connect your content management system and check its status.](https://recala.co/developers/cli/cms/)[### Connect

Connections: the CMS and Search Console.](https://recala.co/developers/cli/connect/)[### Index

Check indexing status and submit content for indexing.](https://recala.co/developers/cli/index/)[### Keys

Organization API keys, where key access is enabled. A person’s session manages keys.](https://recala.co/developers/cli/keys/)[### Knowledge

The sources Recala writes from.](https://recala.co/developers/cli/knowledge/)[### Org

Choose and show the organization you act on.](https://recala.co/developers/cli/org/)[### Questions](https://recala.co/developers/cli/questions/)[### Report

Reports on the company's authority.](https://recala.co/developers/cli/report/)[### Skills

The agent skills that ship with the CLI.](https://recala.co/developers/cli/skills/)[### Topics

The topic queue: what Recala proposes to write next.](https://recala.co/developers/cli/topics/)

## Read the exit code

Scripts can branch on these stable codes. [Read the JSON output contract](https://recala.co/developers/reference/#json-output) for error details.

| Code | Name | Meaning | What to do |
| --- | --- | --- | --- |
| 0 | `OK` | Done. | Continue. |
| 1 | `ERROR` | Unexpected error, or an answer the CLI could not read. | Stop and report error.message to the person. Do not retry a write. |
| 2 | `USAGE` | Bad flags or arguments. | Fix the command. recala schema --json lists every flag. |
| 3 | `NOT_AUTHENTICATED` | Not signed in, or the credential was refused. | Stop and ask the person to run recala login. |
| 4 | `FORBIDDEN` | Your role does not allow it. | Stop and name what is missing. Never look for another way around it. |
| 5 | `NOT_FOUND` | Not found. | Check the id with a list command. |
| 6 | `CONFLICT` | Not allowed yet: no organization selected, not ready to schedule, or no person linked. | Fix the precondition the message names, or ask the person. |
| 7 | `INVALID` | The input was refused. | Read error.message and fix the input. |
| 8 | `RATE_LIMITED` | Rate limited. | Wait, then retry once. |
| 9 | `UNAVAILABLE` | Server or network trouble. | Retry a read once. After outcome_unknown, never retry: check the state first. |
| 10 | `CONFIRMATION_REQUIRED` | Confirmation is missing or was declined. | Nothing was sent. Ask the person to confirm in a terminal or grant this sign-in access. |
| 11 | `PAYMENT_REQUIRED` | Not allowed to spend: no credits, a cap reached or a blocked topic. | Stop and tell the person. An agent never buys. |
