> ## 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
```

Command help lists supported operations and their JSON input schemas. The first
increment covers account credentials, workspaces, members, teams, agents, data
sources, learning review, Grill and personal notifications. Full product parity,
MCP writes, billing and other remaining workflows are delivered in later increments.

## 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.