Skip to content

CLI Command Reference

All commands support:

  • --json
  • --api-url <url>
  • --env-file <path>
  • --help

Auth

bash
chainabit auth login [--email <email>] [--identifier <id>]
  [--token-stdin | --token-env <env-var> | --token-file <path>]
  [--password-stdin | --password-env <env-var> | --password-file <path>]
chainabit auth login --device [--no-open]
chainabit auth login --browser [--no-open]
chainabit auth status
chainabit auth whoami
chainabit auth refresh
chainabit auth token
chainabit auth logout
chainabit auth keys create <name> [--ttl <days>] [--scope <scope>] [--account <account-id>]
chainabit auth keys list
chainabit auth keys revoke <id> [--yes]

Interactive sign-in defaults to browser/device flow when a TTY is available. For scripts and CI, use a developer token via stdin, env, or file input. The CLI first tries direct bearer auth for cbt_live_... values and only falls back to the legacy exchange endpoint when required for older servers.

Workspace

bash
chainabit workspace current
chainabit workspace use <id>
chainabit workspace list [--limit <n>]
chainabit workspace get <id>
chainabit workspace create --slug <slug> --name <name> [--description <text>]
chainabit workspace update <id> [--slug <slug>] [--name <name>] [--description <text>]
chainabit workspace activate <id>
chainabit workspace deactivate <id>
chainabit workspace set-default <id>
chainabit workspace cot-retention get <id>
chainabit workspace cot-retention set <id> --enabled <true|false>
chainabit workspace members list <id> [--limit <n>] [--offset <n>]
chainabit workspace members add <id> --chainer <chainer-id> [--role <role>]
chainabit workspace members update-role <id> <chainer-id> --role <role>
chainabit workspace members remove <id> <chainer-id>

--role accepts owner, admin, member, analyst, billing, or viewer (defaults to member on add).

workspace set-default and workspace cot-retention set both require owner or admin on the workspace, same as update.

workspace use also pings the API to mark the workspace as your active one (PUT /workspaces/:id/active), a UX hint other signed-in devices pick up on next load — it does not change your default workspace or permissions.

Account

bash
chainabit account get [<id>]
chainabit account create --slug <slug> --legal-name <name> [--display-name <name>]
  [--website <url>] [--industry <text>] [--billing-email <email>] [--default-timezone <tz>]
chainabit account update <id> [--slug <slug>] [--legal-name <name>] [--display-name <name>]
  [--status <active|suspended>] [--website <url>] [--industry <text>]
  [--billing-email <email>] [--default-timezone <tz>]
chainabit account delete <id> [--yes]
chainabit account members list <account-id> [--limit <n>] [--offset <n>]
chainabit account members add <account-id> --chainer <chainer-id> [--role <role>]
chainabit account members update-role <account-id> <chainer-id> --role <role>
chainabit account members remove <account-id> <chainer-id> [--release-seat]
chainabit account invitations list <account-id> [--limit <n>] [--offset <n>]
chainabit account invitations invite <account-id> --email <email> [--role <role>]
chainabit account invitations resend <account-id> <invitation-id>
chainabit account invitations revoke <account-id> <invitation-id>

account members add attaches a chainer who already has a Chainabit account, by their chainer ID. To bring in someone by email address who may not have an account yet, use account invitations invite instead — nothing is added to the member roster until that invitation is accepted (see Invitation below). --role accepts admin, analyst, billing, viewer, or member (defaults to member); owner cannot be assigned this way.

account members remove --release-seat hands the vacated seat back to the subscription; omit it to leave billing untouched.

Invitation

bash
chainabit invitation accept --token <token>

Accepts an account invitation as the signed-in user. This is a top-level command, not nested under account, because whoever is accepting isn't a member of that account yet — sign in (or sign up) first, then run this with the token from the invitation link.

Wallet

bash
chainabit wallet balance

Chainy

bash
chainabit chainy list [--limit <n>] [--offset <n>]
chainabit chainy get <id>
chainabit chainy create --title <title> [--description <desc>]
chainabit chainy update <id> [--title <title>] [--description <desc>]
chainabit chainy delete <id>
chainabit chainy collaborators list <chainy-id>
chainabit chainy collaborators invite <chainy-id> --chainer <chainer-id> [--role <role>]
chainabit chainy collaborators role <chainy-id> <chainer-id> --role <role>
chainabit chainy collaborators remove <chainy-id> <chainer-id>
chainabit chainy invites list
chainabit chainy invites accept <invite-id>
chainabit chainy invites decline <invite-id>

chainy collaborators is only available on a Chainy that has a workspaceId set. --role accepts owner, admin, member, or viewer (defaults to member on invite); inviting or changing roles requires the caller to be an owner or admin collaborator, though any collaborator can remove themselves.

chainy invites manages the invitee's own pending-invite inbox — list shows invites sent to you, and accept/decline act on one of them. Unlike chainy collaborators remove, invites require an explicit accept before you become a collaborator.

Chain

bash
chainabit chain list [--chainy <id>]
chainabit chain get <id>
chainabit chain create --title <title> [--description <desc>] [--chainy <id>]
chainabit chain delete <id>
chainabit chain streak <id>

Bit

bash
chainabit bit list [--chain <id>]
chainabit bit create --title <title> --chain <id> [--description <desc>]
chainabit bit complete <id> [--notes <text>] [--at <datetime>]

Contribution

bash
chainabit contribution graph [--year <year>] [--chain <id>]

AI

Sessions

bash
chainabit ai session create [--title <title>]
chainabit ai session list [--limit <n>]
chainabit ai session get <id>
chainabit ai session delete <id>

ai session is legacy; prefer ai sessions below for anything not already covered by the legacy commands.

bash
chainabit ai sessions share <id>
chainabit ai sessions unshare <id>
chainabit ai sessions invite <id> --chainer <chainer-id>

ai sessions share creates (or, if one already exists, reactivates) a public read-only link for the session and prints its shareUrl. ai sessions unshare revokes it. ai sessions invite adds an existing workspace member as a full read+write participant on the session — no accept step, unlike chainy invites.

Messages

bash
chainabit ai message send <session-id> --message <text> [--model <id>]
chainabit ai message list <session-id> [--limit <n>]

Analysis

bash
chainabit ai analyze create [--period <period>] [--chain <id>]
chainabit ai analyze list [--limit <n>]
chainabit ai analyze get <id>

Suggestions

bash
chainabit ai suggest create [--chain <id>]
chainabit ai suggest list [--limit <n>]
chainabit ai suggest accept <id>
chainabit ai suggest dismiss <id>

Models

bash
chainabit ai models
chainabit ai models get <id>

Chao

bash
chainabit chao [--session <id>] [--title <text>] [--model <key>]
  [--chain-id <uuid>] [--chainy-id <uuid>] [--bit-id <uuid>]
  [--workspace <uuid>] [--message <text>]
  [--no-stream] [--no-wallet-check]

Interactive mode commands: /help, /session, /exit

Connectors

Catalog

bash
chainabit connectors list [--category <category>] [--active|--inactive] [--locale <locale>]
chainabit connectors get <key> [--locale <locale>]
chainabit connectors install <key> [--name <name>] [--config <json>]

Instances

bash
chainabit connectors instances list [--limit <n>] [--offset <n>]
chainabit connectors instances get <id>
chainabit connectors instances update <id> [--name <name>] [--config <json>] [--enabled|--disabled]

Authentication

bash
chainabit connectors auth <instance-id>
  [--api-key-stdin | --api-key-env <env-var> | --api-key-file <path>]
  [--token-stdin | --token-env <env-var> | --token-file <path>]
  [--connection-string-stdin | --connection-string-env <env-var> | --connection-string-file <path>]
  [--username <username>]
  [--password-stdin | --password-env <env-var> | --password-file <path>]
  [--custom-stdin | --custom-env <env-var> | --custom-file <path>]
  [--no-open]

Runtime

bash
chainabit connectors test <instance-id> [--locale <locale>]
chainabit connectors tools <instance-id> [--locale <locale>]
chainabit connectors exec <instance-id> <tool> --input <json> [--locale <locale>]
chainabit connectors sync <instance-id>
chainabit connectors executions <instance-id> [--limit <n>] [--offset <n>]
chainabit connectors remove <instance-id>

Machine-Readable Output

bash
chainabit auth status --json
chainabit connectors list --json
chainabit connectors tools <instance-id> --json

Example auth whoami --json response:

json
{
  "authenticated": true,
  "email": "you@example.com",
  "sub": "user_123",
  "exp": "2026-03-28T12:00:00.000Z"
}

Tips

  • Use chainabit <command> --help for subcommand-specific options.
  • Use --json when you want machine-readable output.
  • Interactive auth defaults to browser/device flow; non-interactive login should pass --identifier plus a secure password source.

Built with purpose.