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

# Communicate CLI

> Install and use named commands for scoped Communicate workflows.

The Communicate CLI is distributed as `@communicate_so/cli`. Install the current
public release from npm; `communicate --version` reports its exact version.
It requires Node.js 22 or later.

```bash theme={null}
npm install --global @communicate_so/cli@latest
communicate --version
communicate --help
```

Version `0.1.5` provides 213 named commands with JSON input schemas. It covers account credentials, workspaces, members, teams, agents, data sources, learning review, Grill, personal notifications, custom actions, scheduling integrations, in-app/outbound campaigns, inbox tickets, contacts, linked agents, webhooks, custom domains, analytics and billing reads. Destructive, billing-change, sharing and compliance workflows remain in progress.

MCP read/write management uses a separate MCP-bound account credential; see [Connect with MCP](/docs/mcp). Scheduling consent and signed image URL responses require a protected `--output-file`. Image preparation and confirmation do not upload the bytes themselves; use the returned PUT URL without forwarding your Communicate bearer token.

## Authenticate without a browser

Verified email/password users can bootstrap a scoped account credential. Inspect
the schema before preparing `proof.json` with your email, password, credential name
and required scopes. Keep that file private; do not commit or log it.

```bash theme={null}
communicate auth credentials bootstrap --help
chmod 600 proof.json
communicate auth credentials bootstrap --input - --output-file credential.json < proof.json
communicate workspaces list --token-file credential.json
```

Issuance reserves a new output file with mode `0600`; existing files are never
overwritten. Credential files must be user-owned, regular files without symlinks
and have restrictive permissions. You can also supply `COMMUNICATE_TOKEN` through
your secret manager. The CLI does not load dotenv files or save credentials implicitly.

## Manage a workspace and its sources

Set your credential through `COMMUNICATE_TOKEN` or pass `--token-file` on each command.
Create JSON inputs using the relevant command's `--help` schema.

```bash theme={null}
communicate workspaces create --input - < workspace.json
communicate workspaces get --workspace WORKSPACE_ID
communicate agents create --workspace WORKSPACE_ID --input agent.json
communicate sources upload --workspace WORKSPACE_ID --agent AGENT_ID --file knowledge.txt
```

`--workspace` and `--agent` reject conflicts with selections in the JSON input.
Nested settings remain available through validated JSON. Use `--dry-run` to validate
input and inspect the method and route without sending a request.

## Automation and output

Success writes JSON to stdout; errors write structured JSON to stderr. Array
results support `--format ndjson`. Normal output redacts secrets and invitation
links. `--output-file` stores the complete response, including one-time secrets,
so protect it as you would the credential itself.

| Exit code | Meaning |
| - | - |
| `2` | Invalid input or configuration |
| `3` | Authentication or authorization failure |
| `4` | Conflict |
| `5` | Quota or rate limit |
| `6` | Local file or transport failure |
| `7` | API or response validation failure |

The default API URL is `https://app.communicate.so/api/v1`. HTTPS is required
except HTTP on loopback. Authenticated redirects are refused and writes are never
automatically retried. After a timeout, reconcile server state before retrying.


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