CLI 账号与工作空间
在一台机器上保留多个 Busabase 账号,并在工作空间之间切换而无需重新登录。
CLI 账号与工作空间
busabase-cli 可以同时保存多个账号,每个账号又可以指向它所属的任意工作空间。这是两件不同的事:
- 账号 —— 不同的凭证。工作账号和个人账号、云版和自托管服务器,或者同一个主机上的两个登录。
- 工作空间 —— 在 Busabase Cloud 上,一个账号通常属于多个工作空间;自托管服务器则只有一个。
CLI 把工作空间称作 space(--space-id、space use),与 API 的 x-busabase-space 请求头保持一致。它和本文档里说的「工作空间」是同一样东西。
多个账号
busabase-cli login --profile work # 添加第二个账号,并切换过去
busabase-cli auth status # 列出所有账号,按主机分组(* 为当前)
busabase-cli auth switch # 选一个(只有一个候选时自动切换)
busabase-cli auth switch work # …或者直接指定名字
busabase-cli auth remove old # 删除一个已保存的账号
busabase-cli logout --profile work # 只退出该账号auth status 按主机分组只是为了方便阅读,账号本身是扁平存储的 —— 同一个主机上的两个登录就是两个账号:
https://busabase.com
* work orgAbc123 (API key)
personal orgDef456 (OAuth, expires in 12d)
http://localhost:15419
local (not set) (no auth)同一个账号,多个工作空间
busabase-cli space list # 该账号能访问的所有工作空间(* 为当前目标)
busabase-cli space use # 从列表中选择
busabase-cli space use "Marketing" # 按名字选 —— slug 和 id 同样可以不需要重新登录。所选的工作空间会拿你的凭证实际能访问的范围校验,所以名字打错会当场报错,而不是等到下一条命令才返回 403。自托管服务器会显示它唯一的工作空间并加以说明。
存储在哪里
~/.busabase/
├── .env 当前账号的凭证(0600)。始终存在。
├── config.json (可选)设置 + 当前是哪个账号。
└── profiles/ (可选)一个账号一个文件。
├── default.env
└── work.env切换账号会用你选中的账号重写 ~/.busabase/.env。这是刻意设计:busabase 智能体技能、本文档里的 curl 示例、以及任何读取该文件的 SDK 都会自动跟着切换,完全不需要知道「账号」这个概念的存在。
正因为 .env 在每次切换时都会被重写,一旦你有了多个账号,就不要再手工往里追加工作空间(echo BUSABASE_SPACE_ID=… >> ~/.busabase/.env)—— 这个改动会在下一次 auth switch 时丢失。请改用 busabase-cli space use,它会记录到正确的账号上。
如果你自始至终只用一个账号,以上这些都不会出现:目录里仍然只有 ~/.busabase/.env,和以前完全一样,不会生成 config.json 或 profiles/。
脚本、CI,以及同时开两个终端
| 参数 | 环境变量 | 作用 |
|---|---|---|
--profile <name> | BUSABASE_PROFILE | 本条命令使用该账号,直接读取它自己的文件。共享的 .env 不受影响,因此两个终端可以同时驱动两个账号。 |
--config <path> | BUSABASE_CONFIG | 从任意指定文件读取凭证,完全绕过账号机制。 |
--api-key、--base-url、--space-id | BUSABASE_API_KEY、… | 覆盖单个值;优先级最高。 |
优先级依次为:单项参数 → --config → --profile → 当前账号的 .env → 默认值。导出的环境变量始终优先于磁盘上的内容。
偏好设置
无论用哪个账号都成立的设置,存放在 config.json 里:
busabase-cli auth config set output json # 不用每次都敲 --output json
busabase-cli auth config list