Busabase

CLI 账号与工作空间

在一台机器上保留多个 Busabase 账号,并在工作空间之间切换而无需重新登录。

CLI 账号与工作空间

busabase-cli 可以同时保存多个账号,每个账号又可以指向它所属的任意工作空间。这是两件不同的事:

  • 账号 —— 不同的凭证。工作账号和个人账号、云版和自托管服务器,或者同一个主机上的两个登录。
  • 工作空间 —— 在 Busabase Cloud 上,一个账号通常属于多个工作空间;自托管服务器则只有一个。

CLI 把工作空间称作 space--space-idspace 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.jsonprofiles/

脚本、CI,以及同时开两个终端

参数环境变量作用
--profile <name>BUSABASE_PROFILE本条命令使用该账号,直接读取它自己的文件。共享的 .env 不受影响,因此两个终端可以同时驱动两个账号。
--config <path>BUSABASE_CONFIG从任意指定文件读取凭证,完全绕过账号机制。
--api-key--base-url--space-idBUSABASE_API_KEY、…覆盖单个值;优先级最高。

优先级依次为:单项参数 → --config--profile → 当前账号的 .env → 默认值。导出的环境变量始终优先于磁盘上的内容。

偏好设置

无论用哪个账号都成立的设置,存放在 config.json 里:

busabase-cli auth config set output json   # 不用每次都敲 --output json
busabase-cli auth config list

On this page