bt versions. Find each version newer than your installed version and follow its migration steps in order. To update the CLI itself, run bt update.
v0.16.0
v0.16.0 changes authentication, renames several commands and flags, and addsbt trace for coding-agent tracing.
Authentication
Inbt, a profile is a saved login. Previously, each profile was tied to one organization, so multi-org users needed a separate login per org. v0.16.0 decouples profiles from organizations. A profile now stores your credentials and app URL, and one login works across every org the account can access.
Organization and project are selected separately with bt switch (which also prompts for a profile in interactive mode), or overridden per command with --org and --project. Most people need only one profile; add another when you sign in as a different user or work against a different deployment (e.g. self-hosted).
Your saved credentials carry over automatically and do not need to be migrated. The --api-key flag is deprecated, hidden from help output, and will be removed soon; use BRAINTRUST_API_KEY or bt login instead.
Breaking change: Your saved logins carry over, but the org that was saved with each login does not. Commands that previously inferred an org from the profile may prompt or fail until you run bt switch or pass --org.
What to do:
- Run
bt switchto select your org and project. - Run
bt statusto verify the active profile, org, and credential source are correct. - If you had separate profiles for each org under one account, you only need one now. Remove the extras with
bt logout--profile <name>. - In scripts, pass
--orgexplicitly instead of relying on a profile to imply it. If profile auto-selection is ambiguous, setBRAINTRUST_PROFILEor pass--profile. - If
BRAINTRUST_API_KEYis set in your shell,btuses it instead of your saved profile. This is fine if intentional (e.g. CI). If not, check for leftover exports and unset the variable, or pass--prefer-profileto use your saved login. - If you pass
--api-keyon the command line, switch toBRAINTRUST_API_KEYorbt login. The flag still works, but it is deprecated, hidden from help output, and will be removed soon.
Renamed commands and flags
Thebt auth command group is replaced by top-level commands, --fresh is renamed to --force on sync and pipeline commands, and --api-key is deprecated, hidden from help output, and will be removed soon.
Breaking changes:
bt authno longer exists. Scripts that call it fail.--freshis gone onbt sync pull,bt sync push, andbt datasets pipeline push.
- Replace
bt authcalls with the new spellings above. - Replace
--freshwith--forceonbt syncandbt datasets pipeline. Behavior is unchanged. bt self updatestill runs but is undocumented. Switch tobt update.- Replace
--api-keywithBRAINTRUST_API_KEYorbt login. The flag still works, but it is deprecated, hidden from help output, and will be removed soon.
Coding-agent tracing
bt trace manages tracing for Claude Code, Codex, OpenCode, and pi. Each agent gets a Braintrust plugin that observes sessions and sends trace data through bt. Authentication is handled by bt login or BRAINTRUST_API_KEY, the same as any other bt command, so there is nothing separate to configure for credentials.
Breaking change: The new plugins replace the earlier tracing plugins. Settings move from environment variables to a config file managed by bt trace setup, and credentials are handled by bt instead of the plugin. If you use the old versions of the plugins, follow the steps below to upgrade.
What to do:
- Install
btand runbt login. - Run
bt trace setup <agent> --project <name>to install the new plugin and configure tracing. - Follow the upgrade section in your agent’s guide for details on migrating from the old plugin: Claude Code, Codex, OpenCode, pi.
Next steps
- CLI overview for the full command reference and auth precedence.
- bt releases for complete release notes.