kapable CLI

A single native binary (linux-amd64, darwin-arm64) that mirrors the SDK's customer-tier surface from your terminal — auth, board, data, comms, knowledge, store, and a local dev/preview supervisor. It rides kapable-sdk exclusively, so anything you can do with the Rust SDK you can do from the CLI.

First call
kapable whoami

You should see your signed-in identity and org.

Install

curl -fsSL https://cli.kapable.ai/install.sh | sh

Detects your OS/arch (linux or darwin, amd64 or arm64), downloads the latest stable build from the public release registry, verifies its SHA-256, and installs to ~/.local/bin/kapable (no sudo). Re-running the same command upgrades in place.

Overrides

KAPABLE_INSTALL_DIR / --install-dir <dir> changes the install location (default ~/.local/bin). KAPABLE_CHANNEL / --channel <name> picks a release channel (default stable). If ~/.local/bin isn't on your PATH, the installer prints how to add it.

Verify the install:

kapable --version

Staying current

The installed binary updates itself — no need to re-run the installer:

kapable self-update --check   # report whether a newer stable build exists; changes nothing
kapable self-update            # download, verify SHA-256, and atomically replace this binary

The replace is atomic: the new binary is staged, proven to run (--version succeeds), and only then swapped in with a single rename. Any failure before that point leaves your current binary untouched. On macOS, a Gatekeeper quarantine strip runs automatically; if the staged binary still won't launch, an ad-hoc codesign retry kicks in as a safety net.

Authenticating

Two credential shapes, resolved in the same precedence order on every command: flag > environment variable > stored config (an org key in [api] outranks a stored session in [session]).

kapable auth login --email you@example.com   # prompts for your password
kapable auth me                 # confirm — prints identity, org, role
kapable auth logout             # clear the stored session (any [api] org key stays)

Login persists a session grant to ~/.kapable/kapable.toml under [session] (session_token — the durable kses_… token; the short-lived JWT is never persisted).

kapable auth set-key sk_org_...   # persists a durable org key under [api]

# or, for a single invocation / headless agent — no file written:
export KAPABLE_API_KEY=sk_org_...
kapable auth me

# or, per-command override (highest precedence):
kapable --api-key sk_org_... auth me

Env vars & flags

NameKindEffect
--api-key <key>global flagCredential for this invocation only. Highest precedence.
--api-url <url>global flagBase URL for this invocation only.
KAPABLE_API_KEYenv varCredential, second precedence. Recommended for CI/agents.
KAPABLE_API_URLenv varBase URL, second precedence.
--config <path>global flagConfig file path (default ~/.kapable/kapable.toml).
KAPABLE_RELEASES_URLenv varself-update only — override the release registry (staging/testing).

With nothing set, the base URL defaults to https://api.kapable.ai and an unauthenticated command fails with an actionable Not authenticated. Run `kapable auth login …` … error — never a silent 401.

Command tree

Every command in the CLI, generated from its own command tree at version 0.21.4 — 28 groups, 243 commands in all. --help on any of them prints its flags.

kapable activity Activity: inspect, watch, and publish org-scoped Herald events · 5 commands
kapable activity listList recent events without arbitrary payload or metadata fields
kapable activity showShow one event, including its payload and metadata
kapable activity earliestReturn the earliest position still retained for this principal
kapable activity watchWatch the live event stream as NDJSON until cancelled or bounded
kapable activity publishPublish an org-scoped event.
kapable login Sign in — the fastest way to get started.

Takes no subcommand. Run kapable login --help for its flags.

kapable logout Sign out — clears the stored session (device- or password-minted alike).

Takes no subcommand. Run kapable logout --help for its flags.

kapable whoami Who am I — show the authenticated identity (org, email/key, role).

Takes no subcommand. Run kapable whoami --help for its flags.

kapable app App lifecycle: create, list, status, clone, open, deploy, logs, pat mint, templates, delete · 11 commands
kapable app deployDeploy an app and follow it to `live`/`failed` (push-verify built in).
kapable app logsPrint the newest deployment's build log tail (stdout = the raw log)
kapable app listList your org's apps (JSON default; --table for columns)
kapable app statusShow an app row + its newest deployment (works with sessions AND read-scope org keys — composed from routes both can call, D15)
kapable app clonegit-clone an app's repo (git.kapable.dev/customer-{org}/{app})
kapable app openPrint the app's live URL (and open it in a browser)
kapable app patApp repo PATs
kapable app pat mintPrint the app's repo bot PAT as JSON on stdout (owner session required; the server mints one on demand for apps that predate bot PATs)
kapable app createCreate an app from a starter template and follow provisioning to `created` (repo ready) — requires a login session (`kapable login`)
kapable app templatesList the starter-template catalog (`--template` values for `create`)
kapable app deleteDelete an app (soft-delete; container + routes torn down, repo archived).
kapable brand Brand: install the Kapable brand kit — theme tokens, the four faces and their licences, the mark — and check a copy for drift. · 3 commands
kapable brand installDownload the brand kit into a directory and record what was fetched
kapable brand checkCompare the copies in a directory with what the platform serves
kapable brand showPrint the live brand facts — the faces and the accent, as served
kapable artifact Artifacts: publish a document to the org gallery, list, read, verdict · 9 commands
kapable artifact publishPublish a document — a new slug creates v1, an existing slug appends the next version.
kapable artifact listList the org gallery (latest-version metadata only, never the body)
kapable artifact getShow one artifact's metadata and its full version list
kapable artifact htmlFetch a published document's rendered body
kapable artifact skillInstall the artifact-publishing doctrine as a Claude Code skill, so an agent on a fresh machine publishes to taste without being told how
kapable artifact skill installWrite the skill into a Claude Code skills directory
kapable artifact skill showPrint the skill to stdout instead of writing it
kapable artifact skill statusReport the embedded version and what is installed, without writing
kapable artifact verdictRead a decided ballot's verdict.
kapable agent Agent: LLM-powered agentic TUI over the platform (bare `agent` or `agent -p "…"` headless); `run`/`swap`/`status` remain the local worker supervisor · 3 commands
kapable agent run
kapable agent swap
kapable agent status
kapable auth Auth: login, orgs, API keys, apps · 21 commands
kapable auth loginLogin: with --email (password prompted, or read from stdin when piped), with --email/--password for classic command-line credentials, or with neither to sign in via the browser (device login) and persist the session for future commands.
kapable auth set-keyPersist a durable org API key (`sk_org_…`) as the stored credential
kapable auth clear-keyRemove the stored org API key (leaves any stored login session intact).
kapable auth logoutRemove the stored login session (leaves any stored org key intact)
kapable auth meShow current authenticated user info
kapable auth orgsManage organisations
kapable auth orgs getGet an organisation by ID
kapable auth orgs membersList members of an organisation
kapable auth keysManage API keys
kapable auth keys listList API keys for the current org
kapable auth keys createCreate a new API key
kapable auth keys rotateRotate an API key: mint a fresh secret onto the same key row.
kapable auth keys revokeRevoke an API key
kapable auth service-tokensManage service tokens (`sig_st_*` and legacy `st_*`) — automation credentials
kapable auth service-tokens listList service tokens for the current org
kapable auth service-tokens createCreate a new Signet service token (`sig_st_*`).
kapable auth service-tokens rotateRotate a service token; Signet keeps its id and reveals a new value once
kapable auth service-tokens revokeRevoke a service token (idempotent)
kapable auth appsList apps in an organisation
kapable auth apps listList apps in an organisation
kapable auth apps getGet app detail (with deployments)
kapable board Board: stories, sprints, plans, products, comments · 30 commands
kapable board storiesManage stories
kapable board stories listList stories with optional filters
kapable board stories getGet a story by UUID or code
kapable board stories createCreate a new story
kapable board stories updateUpdate an existing story
kapable board stories deleteDelete a story
kapable board stories transitionTransition a story to a new status
kapable board sprintsManage sprints
kapable board sprints listList sprints with optional filters
kapable board sprints getGet a sprint by UUID or code (includes attached stories)
kapable board sprints createCreate a new sprint
kapable board sprints startStart a planned sprint
kapable board sprints completeComplete an active sprint
kapable board sprints attachAttach a story to a sprint
kapable board sprints detachDetach a story from a sprint
kapable board plansManage plans
kapable board plans listList plans with optional filters
kapable board plans getGet a plan by UUID or code
kapable board plans createCreate a new plan
kapable board plans updateUpdate an existing plan
kapable board plans revisionsList revisions for a plan
kapable board productsManage products
kapable board products listList all products
kapable board products getGet a product by slug or UUID
kapable board products createCreate a new product
kapable board products updateUpdate an existing product
kapable board commentsManage comments
kapable board comments listList comments for a target
kapable board comments createCreate a comment
kapable board comments deleteDelete a comment
kapable builder Designer: live previews for the design.kapable.ai workspace · 2 commands
kapable builder previewManage live preview sources for designer sessions
kapable builder preview registerRegister a preview tunnel URL so the workspace iframe can load it
kapable comms Comms: agents, rooms, messages, email · 13 commands
kapable comms agentsManage agents
kapable comms agents listList all agents in the org
kapable comms agents createCreate (or upsert) an agent
kapable comms agents getGet agent detail by ID
kapable comms agents deleteDelete an agent
kapable comms roomsManage rooms
kapable comms rooms listList rooms
kapable comms rooms createCreate a new room
kapable comms rooms getGet room details (with participants)
kapable comms rooms messagesList messages in a room
kapable comms rooms postPost a message to a room
kapable comms emailSend email via a mailbox
kapable comms email sendSend an email via a mailbox
kapable conductor Conductor: run the agent daemon on this Mac — install, setup, status, uninstall · 4 commands
kapable conductor installDownload the daemon and (unless --no-setup) run the full setup
kapable conductor setupPlatform-side setup only — re-runnable for repair
kapable conductor statusReport what is installed, running, and registered.
kapable conductor uninstallStop and remove the launchd job.
kapable data Data: tables, rows, search · 10 commands
kapable data tablesManage tables
kapable data tables listList all tables
kapable data tables createCreate a new table (columns as JSON array)
kapable data tables dropDrop a table
kapable data rowsManage rows
kapable data rows listList rows in a table
kapable data rows getGet a single row by UUID
kapable data rows createCreate one or more rows (JSON object or array)
kapable data rows deleteDelete a row
kapable data searchFull-text search within a table
kapable dev Dev: spawn the local dev server + open a preview tunnel

Takes no subcommand. Run kapable dev --help for its flags.

kapable feedback Feedback: file a bug report or propose an idea (IMP-2190) · 2 commands
kapable feedback bugReport a bug (files a `ticket_type: "bug"` ticket)
kapable feedback ideaPropose an idea (files a `ticket_type: "feature"` ticket)
kapable knowledge Knowledge: sources, claims, predicates, tensions · 13 commands
kapable knowledge sourcesManage knowledge sources
kapable knowledge sources listList knowledge sources
kapable knowledge sources createCreate a new knowledge source
kapable knowledge sources deleteDelete a knowledge source
kapable knowledge claimsManage knowledge claims
kapable knowledge claims listList claims with optional filters
kapable knowledge claims getGet a single claim by UUID
kapable knowledge claims createCreate a new claim
kapable knowledge claims searchSearch claims (lexical, vector, or hybrid)
kapable knowledge predicatesList predicates in the ontology
kapable knowledge predicates listList all predicates
kapable knowledge predicates ontologyShow ontology info for a predicate
kapable knowledge tensionsDetect tensions (contradictions) in the knowledge graph
kapable inbox Inbox: notification feed, unread count, read receipts, and previews · 5 commands
kapable inbox listList unread notifications (or history with --include-read)
kapable inbox countReturn the unread badge count without fetching feed rows
kapable inbox readMark explicit notification ids read, or mark everything through an instant
kapable inbox replayReplay an existing stored audio render on an org sink
kapable inbox previewPreview how many stored notifications a subscription pattern matches
kapable kap Kaps: create, list, versions, triggers, runs, tokens, secrets, db · 33 commands
kapable kap listList your org's kaps
kapable kap getShow one kap with its files, version and triggers
kapable kap createCreate a kap from local files; prints the address and the bypass token once
kapable kap saveSave a whole new file snapshot to a kap
kapable kap versionsList a kap's versions, newest first
kapable kap diffShow what changed between two versions
kapable kap restoreRestore an old version as a new version
kapable kap deleteDelete a kap (recoverable for a while afterwards)
kapable kap recoverRecover a deleted kap
kapable kap recoveryList deleted kaps that can still be recovered
kapable kap tokenBypass tokens: skip the audience check for one kap
kapable kap token listList a kap's bypass tokens
kapable kap token createMint a bypass token; the token is printed once
kapable kap token revokeRevoke a bypass token
kapable kap secretPer-kap secrets: values come from stdin or a file, never the command line
kapable kap secret listList a kap's secret names (values never come back)
kapable kap secret setSet a secret's value; read from stdin, or --value-file
kapable kap secret deleteDelete a secret
kapable kap triggerTriggers: request, schedule and inbox
kapable kap trigger listList a kap's triggers
kapable kap trigger add-scheduleAttach a schedule trigger that runs a file on a cadence
kapable kap trigger add-inboxAttach an inbox trigger that runs a file when mail arrives
kapable kap trigger pausePause a trigger
kapable kap trigger resumeResume a paused trigger
kapable kap trigger deleteDelete a trigger
kapable kap trigger run-nowRun a schedule trigger now, even while paused
kapable kap runsList a kap's runs, newest first
kapable kap disableSwitch a kap off; it refuses calls until enabled
kapable kap enableSwitch a kap back on
kapable kap usageWhat your org consumed, per kap, per day, for the last 30 days
kapable kap dbThe kap's own PostgreSQL database
kapable kap db queryRun one SQL statement against the kap's database
kapable kap db tablesList the kap's tables and columns
kapable model Model catalogue: facts, freshness, and role-based model recommendations · 5 commands
kapable model listList catalogue models with bounded filtering, sorting, and pagination
kapable model showShow the full facts for one canonical model id or exact alias
kapable model statusShow catalogue freshness, source health, and latest published diff
kapable model rolesList the work roles in an org's public model roster
kapable model recommendReturn the org-approved ranked model fallback for a work role.
kapable notify Notify: send a one-liner update to the operator (the D8 agent surface)

Takes no subcommand. Run kapable notify --help for its flags.

kapable self-update Self-update: replace this binary with the channel's latest published build

Takes no subcommand. Run kapable self-update --help for its flags.

kapable drop Drops: one-time secret handoff — mint a link, claim it, check its state · 3 commands
kapable drop claimClaim a drop and put the secret somewhere that is not your screen
kapable drop mintMint a drop and print the one link that can claim it
kapable drop statusWhat is the state of a drop I minted? Never reveals the secret
kapable store Store: buckets, objects · 9 commands
kapable store bucketsManage buckets
kapable store buckets listList all buckets
kapable store buckets createCreate a new bucket
kapable store objectsManage objects
kapable store objects listList objects in a bucket
kapable store objects uploadUpload a file to a bucket
kapable store objects downloadDownload an object from a bucket
kapable store objects deleteDelete an object from a bucket
kapable store objects headCheck if an object exists
kapable todo Todos: the obligation primitive — list, add, claim, complete, dependencies (IMP-2715) · 15 commands
kapable todo listList todos.
kapable todo summaryThe launchpad-badge summary counts (open/blocked/overdue/… + by-kind)
kapable todo addFile (add) a new todo
kapable todo showShow a todo's detail, including its dependency edges
kapable todo waitWait until a todo is completed, dropped, or deleted.
kapable todo updateUpdate an existing todo.
kapable todo deleteSoft-delete a todo
kapable todo doneMark a todo done.
kapable todo dropDrop (abandon) a todo.
kapable todo reopenReopen a closed (done/dropped) todo
kapable todo claimClaim shared (unassigned, or workspace-assigned) work.
kapable todo releaseRelease a held claim.
kapable todo depManage prerequisite (dependency) edges
kapable todo dep addAdd prerequisites: `id` waits on every id in --depends-on (max 50 per call, D20)
kapable todo dep removeRemove a prerequisite edge
kapable vault Vault: secrets, forwarded to the operator CLI (`kapable-ops vault …`)

Takes no subcommand. Run kapable vault --help for its flags.

kapable voice Voice: talk to the platform agent — local web console, spoken results

Takes no subcommand. Run kapable voice --help for its flags.

kapable workspace Workspaces: collaboration containers, membership, roles, and audit · 19 commands
kapable workspace listList workspaces visible to the current principal
kapable workspace showShow a workspace, its member role assignments, and bound resources
kapable workspace createCreate a workspace
kapable workspace updateRename or re-describe a workspace
kapable workspace deleteDelete a workspace (workspace-owner only)
kapable workspace memberManage workspace members
kapable workspace member addAdd an existing org user by user id
kapable workspace member set-roleChange an existing member's role
kapable workspace member removeRemove a member from the workspace
kapable workspace inviteManage workspace invitations
kapable workspace invite createCreate an invitation.
kapable workspace invite listList invitations with email addresses masked
kapable workspace invite revokeRevoke an unused invitation
kapable workspace roleManage fixed and custom workspace roles
kapable workspace role listList built-in and custom roles
kapable workspace role createCreate a custom role
kapable workspace role updateReplace a custom role's capability set
kapable workspace role deleteDelete a custom role
kapable workspace auditRead the org audit trail, optionally narrowed to one workspace

Every subcommand supports --help. Output defaults to JSON (scriptable); this mirrors the SDK's ListResponse<T> shape for list endpoints (data + total).

Publishing artifacts — kapable artifact

The document is read from a file, never from an argument. That is the point of the command: prose passed through a shell string can break an interpolation on an apostrophe or a $, leaving the previous content in the payload — and the publish still returns 200. Use - to read stdin.

kapable artifact publish --slug q3-report --title "Q3 Delivery" \
  --kind report --markdown report.md \
  --summary "…" --favicon "🧾" --grounding repo:platform/kapable-artifacts

# a ballot — see the Artifacts guide for the grammar and its bounds
kapable artifact publish --slug the-call --title "The call" \
  --kind decision --html body.html --decision ballot.json
kapable artifact publish --slug the-call --title "…" --kind decision \
  --html body.html --decision carry        # forward the existing ballot unchanged

kapable artifact list --kind decision -t
kapable artifact get   <slug>
kapable artifact html  <slug> --version 2 -o old.html
kapable artifact verdict <slug>           # 'still open' until a member rules

--dry-run validates locally and stops. Every mechanically checkable publish rule runs before the network call — the 2 MiB cap, external resource loads, forbidden <iframe>/<object>/<embed>, meta refresh, and a full-page wrapper where a fragment belongs — and each error names the fix. Publish warnings go to stderr, so piping the JSON cannot hide an unstyled-document.

--markdown and --html are not interchangeable

--markdown is server-rendered in the platform’s house reading register — the right default, and impossible to publish slop through, since you never author CSS. But the register has its own palette, so a markdown artifact cannot carry your org’s brand accent. Only --html can, and only if it inherits the platform theme tokens rather than restating colours. Deciding is always a member action in the browser; agent keys get a 403.

Example session

curl -fsSL https://cli.kapable.ai/install.sh | sh
kapable auth login --email you@example.com   # prompts for your password
kapable auth me
kapable board stories list --status active
kapable data tables list
Two binaries: kapable vs. kapable-ops

kapable is the customer/developer surface documented here. kapable-ops is a separate, privileged operator binary (deploy, vault, caddy, migrate) — it is not published on this registry and is not what cli.kapable.ai/install.sh installs.

Next Steps

Next

Getting Started · Authentication