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

# Extole CLI

> A command-line tool for interacting from the terminal and integrating into scripts and AI tools.

The Extole CLI is a command-line tool for developers and technical operators working with the Extole API. It runs from the terminal, integrates into scripts and automation pipelines, and includes a built-in MCP server so Claude Desktop and Claude Code can call any CLI command as a tool.

> For complete per-command documentation, flags, and examples, see the [GitHub README](https://github.com/extole/extole-cli).

## Install

**Binary (no Node required) -- Mac and Linux:**

```bash theme={null}
curl -fsSL https://raw.githubusercontent.com/extole/extole-cli/master/install.sh | sh
```

Installs to `/usr/local/bin/extole` when writable; otherwise to `~/.local/bin/extole`. Open a new terminal after installing. Override with `EXTOLE_INSTALL=/your/path`.

**Binary -- Windows:**

Download `extole-windows-x64.exe` from the [latest release](https://github.com/extole/extole-cli/releases/latest), rename to `extole.exe`, and place it on your PATH.

**Homebrew (Mac):**

```bash theme={null}
brew install extole/tap/extole
```

**npm (requires Node 22.12+):**

```bash theme={null}
npm install -g @extole/cli
```

Verify: `extole --version`

## Getting a token

Log in to [my.extole.com](https://my.extole.com), navigate to **Settings -- API Access**, and create or copy an API token. The token needs `CLIENT_ADMIN` scope for most read operations and `CLIENT_SUPERUSER` for write operations and advanced diagnostics.

## Authenticate

```bash theme={null}
extole auth login --token TOKEN
```

For scripts and CI, prefer environment variables:

```bash theme={null}
export EXTOLE_TOKEN=your-token-here
export EXTOLE_ACCOUNT=acme
```

## Commands

| Domain | Commands | What they do |
| - | - | - |
| **Auth** | `extole auth *`, `extole ping`, `extole whoami` | Manage credentials, switch between accounts, verify token validity and expiry |
| **Events & People** | `extole events fire` | Fire events -- sandbox by default (safe), `--live` for production. Trace campaign routing with `--trace` |
| | `extole events listen` | Tail live inbound events in real time with filters by type, person, or source |
| | `extole events report <event_id>` | Look up a past event by ID |
| | `extole person get/steps/relationships/stats` | Look up a person's profile, step history, referral graph, and network stats |
| | `extole person rewards` | Rewards for a specific person |
| | `extole person report` | Full profile events report for a person |
| **Rewards** | `extole rewards` | Look up rewards by person, get full details, history, fulfillments, sends, redeems, and cancels |
| | `extole rewards state-summary` | Account-wide reward counts by state, bucketed over time |
| | `extole rewards find-coupon` | Reverse-lookup: given a coupon code, find who received it and its current state |
| **Reward Suppliers** | `extole reward-suppliers` | List configured suppliers (Tango, PayPal, manual coupon batches, etc.) with face values |
| | `extole reward-suppliers get` | Full supplier detail, including limits, expiry, and tags |
| | `extole reward-suppliers coupons` | For manual-coupon suppliers: count, inventory preview, and depletion warnings |
| | `extole reward-suppliers create` | Create a new reward supplier (MANUAL\_COUPON, CUSTOM\_REWARD, etc.) *(write)* |
| | `extole reward-suppliers upload-coupons` | Upload coupon codes to a MANUAL\_COUPON supplier *(write)* |
| **Components** | `extole components` | List, inspect, and traverse campaign components and their type hierarchy |
| | `extole components create/set/deploy/delete` | Create integration components, patch settings, deploy bundles, and delete components *(write)* |
| **Webhooks** | `extole webhooks` | List, inspect, create, attach, and delete webhooks |
| | `extole webhooks dispatches/dispatch-results/listen` | Inspect dispatch history, HTTP response outcomes, and tail live results in real time |
| | `extole webhooks trace` | Temporarily wire a URL to a campaign event and tail dispatch results |
| **Campaigns & Programs** | `extole programs` | List programs by state and type |
| | `extole campaigns quality-rules/reward-rules/maxmind` | Inspect quality rules, reward rules, and MaxMind fraud-scoring settings per campaign |
| **Audiences** | `extole audiences list/get/members` | List audiences, view size, and page through members |
| | `extole audiences history` | View recent add/remove/replace/sync runs; tail with `--listen` |
| **Reports** | `extole reports recommended/types/describe` | Discover available reports and inspect their parameters before running |
| | `extole reports run/status/download` | Run a report, check completion, and stream results to stdout |
| **Notifications** | `extole notifications` | View recent platform alerts (webhook failures, integration errors); tail with `--listen` |
| **Health** | `extole health` | Email domain deliverability checks (SPF, DMARC, DKIM, MX) and program domain resolution |
| | `extole health provision-dkim` | Provision DKIM keys for an email domain *(write)* |
| **Share Links** | `extole share-links list` | List share links for a person |
| | `extole share-links lookup` | Reverse-lookup: given a share code or URL, find the owning person and program |
| **Zones** | `extole zones` | List embed zone names, get the core.js script tag, and retrieve embed snippets |
| | `extole zones call` | POST to a zone to test FRONTEND\_CONTROLLER pipelines without a browser |
| **API** | `extole api <path>` | Authenticated access to any Extole endpoint -- GET by default, supports `--method`, `--body` |
| | `extole api search <keyword>` | Search published Extole API endpoints by keyword across path, summary, and description |
| **Feedback** | `extole feedback` | Submit feedback or bug reports directly from the CLI |

Run `extole --help` or `extole <command> --help` for full options on any command.

## Output conventions

* Human-readable by default; add `--json` on any command for machine-readable output
* `--compact` strips nulls and empty fields
* `--verbose` logs each HTTP request to stderr
* Data goes to stdout, status to stderr -- fully pipeable

## AI integration

The CLI includes a built-in MCP server that connects Claude Desktop and Claude Code without manual config file editing:

```bash theme={null}
extole serve setup   # auto-configure Claude Desktop and Claude Code
extole serve remove  # remove the registration
```

The CLI also exposes an AI assistant with deep knowledge of the Extole API:

```bash theme={null}
extole chat "why would a purchase event not trigger a reward?"
extole chat "what endpoint filters person steps by cause event id?"
```

## Source

[github.com/extole/extole-cli](https://github.com/extole/extole-cli)


## Related topics

- [Extole AI Tools](/technical/extole-ai-tools/index.md)
- [Claude Desktop](/technical/extole-ai-tools/extole-cli/extole-cli-claude-desktop.md)
- [Claude Code](/technical/extole-ai-tools/extole-cli/extole-cli-claude-code.md)
- [HubSpot](/technical/partners/crm/hubspot.md)
- [Build a Partner Integration with the Management API](/technical/building-partner-integrations/integration-lifecycle/management-api-integration.md)


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