# Top-level commands commands

Signatures, flags and examples for commands you run directly.

## Use these commands

Commands you run directly, with no subcommand.

Examples assume you have signed in and selected the intended organization. Set shell variables such as `ARTICLE_ID` to ids from the corresponding list command. Set `PUBLICATION_TIME` to a future local time in YYYY-MM-DDTHH:MM format.

Badges describe the command’s strongest effect; a preview or read-only option may do less. [Guarded writes can require confirmation even without --yes](https://recala.co/developers/agents/#guarded). “Needs a person” covers identity, consent and credentials.

### [`recala calendar`](https://recala.co/developers/cli/top-level/#cmd-top-level-calendar)

What is scheduled to publish, by day, and what is ready to schedule.

read Acts on an organization

```
recala calendar [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--from` | No | First day (default today). |
| `--to` | No | Last day (default in 30 days; 93 at most). |

#### Examples

See what is already scheduled before you plan the month.

```
recala calendar
```

What is scheduled to publish, and when.

```
recala calendar --from 2026-10-01 --to 2026-10-31
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala credits`](https://recala.co/developers/cli/top-level/#cmd-top-level-credits)

Plan, articles left and when they reset, extras, caps; unlimited for an internal account.

read Acts on an organization

```
recala credits [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--spend` | No | Also Recala's provider spend this month and today (owners). |

#### Examples

See what the plan has left.

```
recala credits
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala grant`](https://recala.co/developers/cli/top-level/#cmd-top-level-grant)

Confirm every write for this sign-in at once (the [a]ll answer), so an agent can work without prompts.

needs a person

```
recala grant [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--status` | No | Show whether writes are confirmed for this sign-in. |
| `--revoke` | No | Ask before every write again. |

#### Examples

Set the named shell variables to your own values before running.

```
recala grant
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala login`](https://recala.co/developers/cli/top-level/#cmd-top-level-login)

Sign in: approve a one-time code in the browser (create an account at https://recala.co/register)

needs a person

```
recala login [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--with-token` | No | Read an API key or access token from standard input (for agents and CI). |
| `--no-browser` | No | Print the sign-in link without opening a browser. |

#### Examples

Start a sign-in.

```
recala login
```

Print the link without opening a browser, for a remote machine.

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

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala logout`](https://recala.co/developers/cli/top-level/#cmd-top-level-logout)

End this machine's session on the server, then forget it here. An API key stays valid until revoked.

writes

```
recala logout [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |

#### Examples

End this machine's session and forget it here.

```
recala logout
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala onboard`](https://recala.co/developers/cli/top-level/#cmd-top-level-onboard)

Create a company (es/en), read its site, add the signing author, connect its CMS, and scout topics.

needs a person Acts on an organization

```
recala onboard [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--apply` | No | Apply the complete step, including in JSON mode. |
| `--step` | No | Run just this step (again). |

#### Examples

Run in your terminal with the intended organization selected.

```
recala onboard
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala plan`](https://recala.co/developers/cli/top-level/#cmd-top-level-plan)

Preview each slot, topic and state; never generates, approves or publishes.

read Acts on an organization

```
recala plan [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--weeks` | No | No description supplied by the CLI. |

#### Examples

Set the named shell variables to your own values before running.

```
recala plan
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala schema`](https://recala.co/developers/cli/top-level/#cmd-top-level-schema)

Every command, its arguments and flags, and what each exit code means.

read

```
recala schema [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |

#### Examples

Read every command, argument, flag and exit code before acting.

```
recala schema --json
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala status`](https://recala.co/developers/cli/top-level/#cmd-top-level-status)

The active company at a glance: plan and caps, connections, questions, articles, calendar, onboarding.

read Acts on an organization

```
recala status [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |

#### Examples

Set the named shell variables to your own values before running.

```
recala status
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala whoami`](https://recala.co/developers/cli/top-level/#cmd-top-level-whoami)

Who this credential is, which organizations it may act on, and the active one.

read Acts on an organization

```
recala whoami [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |

#### Examples

Who you are signed in as, which organizations you may act on and which one is active.

```
recala whoami
```

Who the agent acts as, and which organizations it may use.

```
recala whoami --json
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).
