CLI Command Reference
All commands support:
--json--api-url <url>--env-file <path>--help
Auth
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
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
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
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
chainabit wallet balanceChainy
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
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
chainabit bit list [--chain <id>]
chainabit bit create --title <title> --chain <id> [--description <desc>]
chainabit bit complete <id> [--notes <text>] [--at <datetime>]Contribution
chainabit contribution graph [--year <year>] [--chain <id>]AI
Sessions
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.
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
chainabit ai message send <session-id> --message <text> [--model <id>]
chainabit ai message list <session-id> [--limit <n>]Analysis
chainabit ai analyze create [--period <period>] [--chain <id>]
chainabit ai analyze list [--limit <n>]
chainabit ai analyze get <id>Suggestions
chainabit ai suggest create [--chain <id>]
chainabit ai suggest list [--limit <n>]
chainabit ai suggest accept <id>
chainabit ai suggest dismiss <id>Models
chainabit ai models
chainabit ai models get <id>Chao
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
chainabit connectors list [--category <category>] [--active|--inactive] [--locale <locale>]
chainabit connectors get <key> [--locale <locale>]
chainabit connectors install <key> [--name <name>] [--config <json>]Instances
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
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
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
chainabit auth status --json
chainabit connectors list --json
chainabit connectors tools <instance-id> --jsonExample auth whoami --json response:
{
"authenticated": true,
"email": "[email protected]",
"sub": "user_123",
"exp": "2026-03-28T12:00:00.000Z"
}Tips
- Use
chainabit <command> --helpfor subcommand-specific options. - Use
--jsonwhen you want machine-readable output. - Interactive auth defaults to browser/device flow; non-interactive login should pass
--identifierplus a secure password source.
Related Pages
- Use CLI in CI/CD for automation-friendly examples.
- Use Connectors CLI Reference for task-based connector workflows.