Docs navigation
Command Reference

Command reference

Every command, grouped by area. Run brainbase help to print this same summary in your terminal.

bash
brainbase <command> [options]

Commands

GroupCommandsReference
Authlogin · logout · whoamiauth
Teamsteam listteam
Membersmember lsmember
Agentagent list · init · create · pull · push · delete · unpack · status · eval · env · link · unlink · sync · runagent
Connectionsagent connections · agent connect · agent disconnect · agent surfaceagent
Agent versionsagent versions list · show · diff · label · restore · pin · unpinagent
Taskstask create · list · get · logs · send · update · stop · deletetask
Interfacesinterface ls · get · create · access · build · preview · publish · rollback · archiveinterface
MCPmcp list · mcp check · mcp connectmcp
Integrationsintegrations list · search · actions · add · connect · disconnect · remove · allow · ask · denyintegrations
Templatestemplate pack · publish · search · info · onboard · list · removetemplate
Skillsskill add · list · update · remove · search · info · publishskill
Orchestrationsorchestration init · create · list · pull · push · status · add-agent · deleteorchestration
Sandboxesmachine ls · machine rmmachine
Tokenstoken create · list · rename · revoke · cleartoken

Global flags

FlagApplies toDescription
--yes, -ymost commandsSkip confirmations / auto-overwrite. Required by destructive commands when there is no terminal — see below.
--harness <id>onboard, sync, agent init / create / unpack, orchestration pull / add-agentForce the harness (e.g. claude-code). agent pull ignores it: the harness comes from the cloud agent.
--scope <s>onboard, sync, skill, agent pull / unpackForce install scope: global or project.
--agent <id>link, task create / list, interface ls / create, mcp list / connect, integrations, agent connections / connect / disconnect / surface, agent versionsOn link, attach this folder to an existing agent non-interactively. On task list and interface ls, filter to that agent. Everywhere else, act on that agent instead of the one linked in this folder.
--no-trackinglink, agent create, agent pull --linkSkip routing LLM traffic through Brainbase.
--linkagent pullLink this folder to the agent first, as brainbase link --agent <id> --yes would, then pull.
--trackagent createRoute LLM traffic through Brainbase (off without a TTY).
--shell <sh|fish>agent envOutput format (auto-detected from $SHELL).
--alltemplate list, machine lsInclude more: other folders' installs, or torn-down machines.
--forceagent init, orchestration init, agent pull, agent push, orchestration pushOn init, overwrite an existing manifest (orchestration init still refuses a folder linked to an orchestration); on pull, take cloud runtime/content changes; on push, keep local conflicts — for orchestration push, the graph's schedule triggers and metadata. It cannot change machine_kind.
--minimal / --fullagent init, orchestration initWrite the starter manifest (the default), or a commented template covering every block. Passing both is an error.
--run-entrypointagent pullExecute the agent entrypoint after pulling.
--graph-onlyorchestration pushPush members, edges, edge settings, and schedule triggers without pushing member-agent content.
--no-pushorchestration add-agentCreate / wire locally but skip the push.
--web <url>loginWeb app URL.
--org <id-or-slug>team list, member ls, agent list / create, orchestration create / listScope to an organization. Omitted, team list shows every organization you belong to; the others select a lone one automatically and otherwise ask.
--team <id>agent list / create, orchestration create / listScope to a team. Team ids are unique, so this works without --org.
--jsonwhoami, team list, member ls, agent init / list / status / delete / eval / connections / connect / disconnect / surface / versions, orchestration init / list / delete, mcp list / check / connect, integrations, machine ls / rm, task, interfaceMachine-readable output, and nothing else on stdout. Never prompts — an ambiguous choice or a missing value errors instead, and a destructive command needs --yes alongside it. On the connection, MCP and integrations commands, failures print {"error": "…"} rather than plain text.
--wait / --timeout <secs>task create, agent versions listOn task create, block until the task settles and exit 0 only when it succeeded. On agent versions list, wait until the latest edit is saved as a version. --timeout bounds the wait and needs --wait. See task and agent versions.
--timeout <secs>agent connect github / linear, agent surface github / linear connect / reconnect / waitHow long to wait for the provider setup to finish (default 600).
--no-openmcp connect, integrations connect, agent connect github / linear, agent surface github / linear connectPrint the link without opening a browser. Implied when there is no terminal.
--no-waitmcp connect, integrations connect, agent connect github / linear, agent surface github / linear connectPrint the link and exit instead of waiting for the outcome.
--account <id>integrations disconnectWhich connected account to remove, when the app has more than one.
--limit <n>task list, task logs, machine ls, agent eval runsOn task list and machine ls, cap the page (1–200). On agent eval runs, how many verdicts to fetch (1–200, default 50). On task logs, stop after <n> events instead of the whole transcript — or, with --follow, size the first page the server sends before it starts tailing.
--follow, -ftask logsStay attached and print events as they land, until the task reaches a terminal state.
--bot-token <t>agent connect slackSlack bot token. Also BRAINBASE_SLACK_BOT_TOKEN, or piped on stdin.
--signing-secret <s>agent connect slackSlack signing secret. Also BRAINBASE_SLACK_SIGNING_SECRET, or piped on stdin.
--app-id <id> / --app-name <name>agent connect slackSlack app metadata, recorded for reference.
--bot-name <name>agent connect meetingDisplay name the agent joins meetings under.
--bot-image-url <url>agent connect meetingAvatar for the meeting bot.
--nameagent init / create, orchestration init, skill publish, token create / renameName / label (alias -n for token create and token rename).
--taglineagent init / createAgent tagline.
--from <agent>orchestration add-agentSource edge into the new agent (repeatable).
--to <agent>orchestration add-agentEdge out of the new agent (repeatable).
--description <text>orchestration add-agentDescription for the new member agent.
--schema <json>orchestration add-agentEdge payload schema.
--visibility <s>template publish, skill publishpublic, unlisted, or private.
--category <s>template search, skill searchFilter by category (ignored by publish).
--target <id>template searchFilter search results by target.
--page <n>template search, skill searchPage through search results.
--as <slug>skill addInstall the skill under a different slug.
--skill-version <v>skill publishVersion to publish (MAJOR.MINOR.PATCH).

Destructive commands

Most confirmation prompts only exist to slow a human down, and with no terminal to ask — a pipe, a CI job, an agent-driven shell — they carry on by themselves.

Commands that destroy something do not. Without a terminal they need an explicit --yes, and exit non-zero naming the flag if it is missing, rather than reading the absent terminal as a "yes".

bash
$ brainbase token revoke tok_abc123 < /dev/null
Revoking ci-runner (tok_abc123) is destructive and needs confirmation, but
there is no interactive terminal to ask. Pass --yes to revoke it without a
prompt.
$ echo $?
1

This covers token revoke, unlink, link (its unlink and re-link paths), agent delete, orchestration delete, task delete, agent disconnect, integrations disconnect, agent versions restore, pin and unpin, interface access, threads, address, archive, unarchive, publish and rollback, template remove, skill remove, and skill add when it would overwrite a skill that already exists. In a real terminal nothing changes — you still get the prompt, and --yes still skips it. Under --json, which never prompts, the delete, integrations, versions and interface commands need --yes as well.

A few never prompt at all and need --yes every time, at a terminal too: agent surface <surface> disconnect — and agent disconnect for chat, github, linear and phone — plus agent surface phone purchase and agent surface phone release, which start and end recurring charges.

`agent disconnect --json` for Slack and meeting is the exception
For those two it still goes ahead on its own. What changed is that an *absent* terminal no longer counts as agreement — --json is a flag you typed, and it has never prompted in a terminal either, so it keeps authorising the disconnect the way --yes does. The other four surfaces need --yes with --json too.
Environment variables
Hosts, the config dir, and PATs are all configurable via environment variables — see Environment variables.