cara CLI Guide

This page is command-reference-first: subcommands, key flags, and CLI-specific behavior that is easy to miss from --help.

For first-run walkthroughs and channel onboarding:

Command Reference

cara / cara start

Starts the Carapace service (default when no subcommand is given).

cara config

Manage configuration values.

cara setup

Interactive first-run wizard for provider/auth/network/channel setup.

Wizard outcomes include local-chat, discord, telegram, and hooks. Use --force to overwrite an existing config file. For the full setup flow and decision guidance, use First Run.

cara import

Import configuration from another tool into Carapace.

cara import <source> [--force]

Supported sources:

The import flow:

  1. Discovers the source config on disk
  2. Shows a preview table of mapped fields (secrets redacted) and skipped surfaces with reasons
  3. Asks for confirmation before writing
  4. Writes Carapace config with restricted file permissions and secret encryption

Use --force to overwrite an existing Carapace config.

After import, run cara verify to validate the imported providers work.

cara verify

Run first-run outcome checks with pass/fail output and next-step guidance.

cara verify --outcome auto --port 18789

Autonomy scenario:

cara verify --outcome autonomy --port 18789

Outcomes:

Options:

Notes:

cara status

Health/status check via HTTP.

cara status --port 18789

cara logs

Fetch log lines via WebSocket (logs.tail).

cara logs -n 50 --port 18789

cara logs is a snapshot tail request (not a persistent follow stream).

Remote hosts require TLS or explicit plaintext opt-in:

cara plugins

Inspect runtime plugin status and manage installed plugins.

cara plugins status

Fetch plugin activation state via WebSocket (plugins.status).

cara plugins status --strict

Useful flags:

cara plugins bins

List managed plugin binary names tracked on disk (plugins.bins).

cara plugins bins

Use --json to print the raw response payload.

cara plugins install

Install a managed plugin (plugins.install).

cara plugins install demo-plugin --url https://example.com/demo-plugin.wasm

Local file workflow:

cara plugins install demo-plugin --file ./target/wasm32-wasip1/release/demo_plugin.wasm

Options:

Notes:

cara plugins update

Update a managed plugin (plugins.update).

cara plugins update demo-plugin --url https://example.com/demo-plugin.wasm

Local file workflow:

cara plugins update demo-plugin --file ./target/wasm32-wasip1/release/demo_plugin.wasm

cara plugins update accepts the same flags as cara plugins install. If --file is used, the CLI stages the file into state_dir/plugins/<name>.wasm and the server adopts that managed artifact on update. Managed plugin updates still require restart before the new artifact becomes active. If the update request fails after local staging, the CLI restores the previous local managed artifact state when possible and reports the recovery action explicitly. If plugins.update succeeds but the CLI cannot remove its local .cli-backup / .cli-lock staging files, the command exits nonzero and tells you to recover or remove those files before the next local --file mutation. If a previous local --file install/update was interrupted and left .cli-backup or .cli-lock files under state_dir/plugins, the CLI fails closed instead of mutating plugin files again; verify that no other local file-based plugin mutation is still running, inspect the PID recorded in .cli-lock if needed, remember that PID values may have been recycled if the original process crashed, restore from the .cli-backup file if needed, remove stale .cli-backup / .cli-lock files, and then retry.

cara chat

Start an interactive chat REPL (chat.send over WebSocket).

cara chat

Options:

REPL commands:

cara pair

Pair this CLI with a Carapace service.

cara pair https://gateway.local:3001 --name "My CLI" --trust

Notes:

cara backup / cara restore

Create or restore a backup archive of Carapace state.

cara reset

Remove state data categories. Use --all or explicit flags plus --force.

cara update

Check for or install updates from GitHub releases.

cara version

Print version/build info.

cara tls

Manage cluster CA and node certificates:

Authentication Inputs

The CLI resolves auth inputs in this order:

  1. Environment: CARAPACE_GATEWAY_TOKEN / CARAPACE_GATEWAY_PASSWORD
  2. Config file: gateway.auth.token / gateway.auth.password
  3. OS credential store (Keychain / Secret Service / Credential Manager)

If none are found, local-direct access may still work when configured.

Device Identity (CLI)

The CLI creates a device identity for WebSocket access:

Strict mode to disallow legacy fallback:

Strict mode behavior:

State Directory

Default: platform config directory (for example ~/.config/carapace/ on Linux).

Override with:

Common Snippets

Tail logs over TLS (self-signed service cert):

cara logs --host gateway.local --port 3001 --tls --trust -n 200

Allow plaintext logs (unsafe):

cara logs --host 10.0.0.12 --port 18789 --allow-plaintext

Pair with a remote Carapace service:

CARAPACE_GATEWAY_TOKEN=... cara pair https://gateway.local:3001 --name "Ops CLI" --trust

Start a fresh local chat session:

cara chat --new