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

# Famulor CLI

> Your whole Famulor workspace in the terminal: every API operation as a command

The Famulor CLI brings the complete REST API to your terminal. Create assistants, start calls, run campaigns, manage leads and phone numbers, and read call history with one tool. Everything you can do through the API, you can script, run in CI, or hand to a coding agent.

```bash theme={null}
npm install --global famulor
famulor auth login
famulor list-assistants --output table
```

<Note>
  The CLI is a public preview (version 0.x). Command names follow the API and may still change before 1.0. A renamed command keeps working for at least one minor version.
</Note>

## Requirements

* **Node.js 22** or newer.
* A workspace plan with **API Access**, the same requirement as the [REST API](/api-reference/introduction#api-access).
* An API key from **Settings → API & MCP**.

## Quickstart

<Steps>
  <Step title="Install">
    ```bash theme={null}
    npm install --global famulor
    ```
  </Step>

  <Step title="Log in">
    Create an API key under **Settings → API & MCP**, then run:

    ```bash theme={null}
    famulor auth login
    ```

    Paste the key when asked. The input stays hidden, and the key is saved in your system keychain.
  </Step>

  <Step title="Run your first commands">
    ```bash theme={null}
    famulor list-assistants --output table
    famulor list-calls --status completed --limit 10 --output table
    famulor create-call --assistant-id <assistant-id> --to-number +4930123456
    ```
  </Step>
</Steps>

## How commands work

Every operation in the [API reference](/api-reference/introduction) is one command. The command name is the operation ID in kebab case, so **Start an outbound call** (`createCall`) is `famulor create-call`.

* **Path parameters** are arguments: `famulor get-assistant <id>`.
* **Query parameters and body fields** are options in kebab case: `assistant_id` becomes `--assistant-id`.
* Options are **typed and checked** before anything is sent: numbers must be numbers, choices must be allowed values, and required fields must be present.

```bash theme={null}
famulor --help               # areas and the most useful commands
famulor assistants           # every command in one area
famulor assistants create --name "Front desk"  # area and verb work too
famulor commands recording   # search all commands
famulor create-call --help   # arguments, options, required fields and an example
```

## Learn more

<CardGroup cols={2}>
  <Card title="Log in and workspaces" href="/cli/authentication" icon="key">
    Keychain storage, CI keys, one profile per workspace and white-label domains.
  </Card>

  <Card title="Commands and output" href="/cli/commands" icon="terminal">
    Request bodies, file uploads, tables, JSON Lines, pagination and downloads.
  </Card>

  <Card title="Scripts, CI and coding agents" href="/cli/scripting" icon="robot">
    Safe automation, exit codes, `jq` pipelines and the command schema for agents.
  </Card>

  <Card title="Reference" href="/cli/reference" icon="book">
    Global options, environment variables, exit codes and troubleshooting.
  </Card>
</CardGroup>

<Tip>
  Working inside an AI assistant such as Claude or ChatGPT instead of a terminal? Connect it through the [MCP server](/mcp/overview). It offers the same capabilities as tools.
</Tip>
