CLI
beeuni 命令行工具、其身份验证模型、开发迭代流程以及所有命令。
beeuni 命令行界面(CLI)可通过终端(你的笔记本电脑或会话沙箱)控制 Beeuni。本页介绍日常开发循环,然后列出所有稳定的命令和标志。
安装
curl -fsSL https://beeuni.ai/install | bash
安装程序会为 macOS 和 Linux 下载预构建的二进制文件。不支持 Windows。
| 命令 | 作用 |
|---|---|
beeuni update |
重新运行安装脚本并获取最新的二进制文件。 |
beeuni uninstall [-y|--yes] [--keep-auth] [--keep-home] |
移除二进制文件、/usr/local/bin shim 和已存储的令牌。--keep-auth 会保留令牌。--keep-home 会保留 ~/.beeuni。 |
beeuni version |
打印 CLI 版本。 |
身份验证模型
Beeuni 按主机存储身份验证信息,而非全局存储。主机是一个 Beeuni API 端点。使用 cloud 连接到 Beeuni。
配置文件位于 ~/.config/beeuni/config.json,权限模式为 0600。使用 BEEUNI_CONFIG_FILE 覆盖其路径。
CLI 遵循以下层级:主机 → 账户 → 项目 → 会话。你登录主机,在其中选择账户,在该账户中选择项目,然后在项目中开启会话。beeuni hosts login 会依次执行前三个步骤:登录、选择账户,然后设置默认项目。
每个令牌都以 beeuni_pat_ 开头。用户令牌来自 beeuni login,可访问你所属的所有账户和项目。项目令牌会为会话沙箱自动签发,并限定于单个项目。请参阅令牌范围。
开发循环
本循环假设已安装 CLI 并运行过 beeuni login。请参阅快速入门了解设置方法。
关联代码仓库
启动新项目,或将现有代码仓库文件夹关联到项目。
创建新项目的脚手架:
beeuni init my-app
cd my-appbeeuni init 会使用通用入门模板创建项目目录。其
beeuni.yaml 声明 beeuni_version: 2 并运行 默认运行时
运行框架。
将已有的克隆代码仓库关联到已创建的项目:
beeuni projects link <project-id>此命令会在当前目录写入 .beeuni/link.json。Beeuni 每次从此文件夹运行命令时,都会读取该文件以查找你的项目。如果你打算先运行 beeuni ship,请跳过此步骤。如果尚无关联项目,它会为你关联一个新项目。
提交代码
beeuni shipbeeuni ship 会检查你的 beeuni.yaml、提交本地更改、推送分支,并提示你补齐任何缺失的密钥或连接。每次想要将本地更改同步到云端项目时,都运行此命令。如果尚未关联项目,首次运行还会创建云端项目和代码仓库。
运行并连接会话
使用提示启动会话:
beeuni sessions new --prompt "Build the login page" --wait每个会话都在自己的沙箱和分支中运行。--wait 会一直等待,直到会话就绪。
从终端连接到会话:
beeuni connect如果没有会话 ID,beeuni connect(别名:attach)会打开绑定项目的会话选择器——运行中的会话会立即连接,已停止的会话会先启动,而 + New session 会启动一个全新的沙箱——然后进入连接到该会话的完整 默认运行时 TUI。传入 ID 可跳过选择器:beeuni connect <session-id>。
CLI 会为你管理 opencode 二进制文件:首次连接时,它会下载会话服务器运行的确切版本,并将其缓存在 ~/.beeuni/opencode/<version>/ 下,确保 TUI 和服务器版本始终一致。设置 BEEUNI_OPENCODE_BIN 可强制使用你自己的二进制文件。
pi 运行框架中的会话没有 默认运行时 服务器。
beeuni connect 遇到此类会话时会以状态码 1 退出,并显示消息 This session's runtime does not support attaching a terminal client.
如需使用更轻量的逐行聊天,而非完整 TUI,请运行:
beeuni sessions chat这会打开与你最近一次会话的交互式聊天。添加 ID 可指定某个会话:beeuni sessions chat <id>。
如需在终端中使用完整产品——会话列表、对话记录和撰写框、沙箱中的 shell,以及 Files、Review、Apps、Customize 和 Account 界面——请运行实验性终端客户端:
beeuni tui # or: beeuni t, or beeunit
beeunit --project <id> --new --terminal # new session + sandbox shell, one command它会使用你当前所在主机的登录信息。请参阅TUI 页面。
如需在沙箱中打开原始 shell(不涉及代理),请运行:
beeuni sessions shell随时列出正在运行的会话:
beeuni sessions ls通过更改请求进行审查
会话中有可供合并的提交时,代理会创建更改请求(CR)。你可以通过 CLI 列出、检查和合并这些请求。
beeuni cr ls
beeuni cr diff 1
beeuni cr merge 1beeuni cr ls 会列出关联项目的更改请求。beeuni cr diff <cr> 会显示统一补丁。beeuni cr merge <cr> 会将其合并到项目的默认分支。可使用 CR 编号或完整 ID。
参考
身份验证命令
| 命令 | 作用 |
|---|---|
beeuni login [--host <name>] [--api <url>] [--token <pat>] [--account <slug>] [--no-project] |
登录当前主机或指定的主机。默认会打开浏览器;--token 可在无头模式下登录。--no-project 会跳过默认项目选择。 |
beeuni logout [--host <name>] |
移除当前主机或指定主机的令牌。 |
beeuni whoami [--host <name>] [--json] [--token-only] |
打印已登录用户和当前账户。 |
beeuni token [--host <name>] |
beeuni whoami --token-only 的快捷方式。 |
beeuni hosts login / hosts logout / hosts whoami 是规范形式。login / logout / whoami 是针对当前主机操作的快捷方式。
主机
| 命令 | 作用 |
|---|---|
beeuni hosts ls [--json] |
列出所有主机及其身份验证状态。 |
beeuni hosts login [<name>] [--token <pat>] [--api <url>] [--account <slug>] [--no-project] |
登录主机。若名称未知,则会先注册该主机。 |
beeuni hosts logout [<name>] |
移除某个主机的令牌。 |
beeuni hosts use <name> |
切换当前主机。 |
beeuni hosts add <name> --url <url> [--dashboard-url <url>] [--login] |
注册新主机。--login 会在注册后立即登录。 |
beeuni hosts rm <name> [--force] |
移除主机。 |
beeuni hosts info [<name>] [--json] |
显示某个主机的详细信息。 |
beeuni hosts current [--json] |
打印当前主机名称。 |
以 http:// 开头的远程主机 URL 会规范化为 https://。CLI 绝不会通过纯 HTTP 向远程主机发送令牌。localhost 不受此限制。
账户
| 命令 | 作用 |
|---|---|
beeuni accounts ls [--json] |
列出你在当前主机所属的账户。 |
beeuni accounts use [<slug-or-id>] |
切换当前账户。 |
beeuni accounts current [--json] |
打印当前账户。 |
beeuni accounts info [<slug-or-id>] [--json] |
显示某个账户。 |
成员
查看账户成员及其账户角色。角色包括 owner、
admin 和 member。所有者和管理员在每个
项目中都隐式拥有 Manager 权限,因此只有 member 角色需要按项目单独授权。
| 命令 | 作用 |
|---|---|
beeuni members ls [--json] |
列出成员、角色和项目数量。 |
beeuni members invite <email> --role admin|member [--project <id>:<role>] |
按电子邮件邀请。已有 Beeuni 账户的用户会立即加入;其他人会收到包含邀请链接的邮件。--project 可重复指定,并在接受邀请时生效。需要 member.invite。 |
beeuni members set-role <user|email> --role owner|admin|member |
更改账户角色。需要 member.update;owner 角色仅限所有者授予。 |
beeuni members rm <user|email> [-y|--yes] |
移除成员并撤销其令牌。需要 member.remove。 |
beeuni members super-admin <user|email> on|off |
授予或撤销超级管理员绕过权限。需要 member.super_admin.grant。 |
beeuni members invites ls [--json] |
列出你发送的待处理邀请。 |
beeuni members invites cancel <invite-id> |
取消一项待处理邀请。 |
beeuni members invites resend <invite-id> |
重新发送邮件并刷新 14 天有效期。 |
<user> 是用户 ID,或已加入账户的人员的电子邮件地址。
选项:--account <id>、--host <name>、--json、-y。
组
账户组是一组命名的人员集合,你可以一次性为其授予角色。使用 beeuni access grant --group <id> --role <key> 将组绑定到作用域;使用 beeuni access revoke <assignment-id> 撤销绑定。
| 命令 | 作用 |
|---|---|
beeuni groups ls [--json] |
列出组及其成员数和项目数。 |
beeuni groups create <name> [--description <t>] |
创建组。 |
beeuni groups set <group> [--name <n>] [--description <t>|--no-description] |
重命名组或修改组描述。 |
beeuni groups rm <group> [-y|--yes] |
删除组。其授权也会一并删除。 |
beeuni groups members <group> [--json] |
列出组成员。 |
beeuni groups add <group> <user>... |
添加一个或多个成员。 |
beeuni groups remove <group> <user> |
移除一名成员。 |
beeuni groups projects <group> [--json] |
列出该组可访问的项目及其角色。 |
<group> 可以是组 ID 或组的完整名称。读取操作需要 group.read。
create、set 和 add 需要 group.update 或 group.members.manage,以及企业 rbac 权益。rm 和 remove 用于清理,永远不受权益限制。
令牌
账户的非交互式凭据。读取操作需要 token.read。每位账户成员都可以创建和撤销自己的个人密钥(token.personal.create、token.personal.revoke);个人密钥代表你操作,且携带的角色不会超过你自己的角色。服务账户和他人的密钥需要 token.create / token.revoke(所有者和管理员)。
| 命令 | 作用 |
|---|---|
beeuni tokens ls [--mine] [--json] |
列出账户的个人 API 密钥。--mine 可缩小范围,仅显示你创建的密钥。 |
beeuni tokens new <name> [--expires <when>] [--project <id>] |
创建密钥。密钥仅显示一次。--project 将其绑定到一个项目,且永远无法离开该项目。 |
beeuni tokens rm <token-id> [-y|--yes] |
立即撤销密钥。 |
beeuni tokens apps ls [--json] |
列出你已连接的应用:你使用 Sign in with Beeuni 批准的应用和 MCP 客户端,涵盖所有账户。 |
beeuni tokens apps rm <client-id> [-y|--yes] [--json] |
撤销已连接的应用:其令牌会立即失效,并且必须再次请求授权。 |
beeuni tokens service-accounts ls [--json] |
列出服务账户。 |
beeuni tokens service-accounts new <name> [--description <t>] [--expires <when>] |
创建服务账户。持有者凭据仅显示一次。 |
beeuni tokens service-accounts disable <id> |
停用服务账户:它将无法再进行授权;删除并重新创建后才能恢复。 |
beeuni tokens service-accounts rm <id> [-y|--yes] |
永久删除服务账户。 |
个人 API 密钥代表你操作,并随你的成员资格一同失效。服务账户代表自身操作,不会继承任何访问权限:新建的服务账户没有任何权限。使用 beeuni access grant --service-account <id> --role <key> 为其授予权限。
--expires <when> 接受 ISO-8601 时间或向前的时间跨度:30d、12h、6w、1y。
计费
读取当前账户的套餐、额度和支出。仅支持读取:套餐变更、充值和付款方式需要在控制面板中操作。
| 命令 | 作用 |
|---|---|
beeuni billing status [--json] |
套餐、额度、席位和订阅。 |
beeuni billing transactions [--limit <n>] [--offset <n>] [--type <a,b>] [--json] |
额度账本,按最新时间排序。默认每页 50 条。 |
beeuni billing transactions --summary|--breakdown|--usage [--days <n>] |
额度流入/流出、余额拆分(即将过期/不过期/每日),或额度使用摘要。--days 是 --summary 和 --usage 的时间窗口;默认为 30。 |
beeuni billing costs [--since <iso>] [--until <iso>] [--json] |
统计账户在指定时间窗口内的支出,并按模型细分。默认窗口为 30 天,采用半开区间 [from, to) UTC。 |
beeuni billing costs --by project|session [--sort <k>] [--limit <n>] [--offset <n>] [--csv <file>] |
按项目或会话汇总支出。--sort 接受 total_desc(默认)、total_asc、recent 或 name_asc(仅限 --by project)。--csv 需要 --by。 |
过滤器:--project <id>、--session <id> 和 --owner <id>(会话,配合 --by session)。选项:--account <id>、--host <name>、--json。
项目
命令按以下顺序解析“该项目”:
--project标志。BEEUNI_PROJECT_ID环境变量。- 当前工作目录中准确匹配的
.beeuni/link.json。 - 由
beeuni projects use设置的全局默认项目。
| 命令 | 作用 |
|---|---|
beeuni projects ls [--all] [--query <text>] [--json] |
列出当前账户中的项目。--all 会涵盖你所属的所有账户。--query(别名 -q)按名称、ID 或仓库过滤。 |
beeuni projects info [<id>] [--json] |
显示一个项目。默认显示已关联或默认项目。 |
beeuni projects use [<id>] |
设置全局默认项目。如果项目属于其他账户,则切换当前账户。 |
beeuni projects unset |
清除全局默认项目。 |
beeuni projects link [<id>] |
将当前目录绑定到项目。写入 .beeuni/link.json。 |
beeuni projects unlink |
移除 .beeuni/link.json。 |
beeuni projects open [<id>] |
在浏览器中打开项目的控制面板页面。 |
beeuni projects clone [<id>] [dir] |
通过经过身份验证的 Beeuni git 代理克隆项目仓库。 |
beeuni projects rm [<id>] [-y|--yes] |
删除项目及其由 Beeuni 管理的 git 仓库。你自行连接的仓库永远不会被修改。 |
beeuni projects set [<id>] [--name <n>] [--branch <b>] [--manifest <path>] [--json] |
更新一个项目的设置。只写入你传入的字段。不传入任何字段则退出 2。别名:update。 |
beeuni projects set [<id>] --icon <emoji>|--no-icon|--glyph <name>:<color>|--no-glyph |
设置或移除项目图标。 |
beeuni projects rename [<id>] <name> |
beeuni projects set --name <name> 的别名。 |
beeuni projects features [ls] [--json] |
列出所有功能标志及其键、状态、来源和稳定性。 |
beeuni projects features enable|disable|reset <flag> |
将项目覆盖设置为开启、关闭,或清除覆盖,使标志遵循平台默认值。 |
beeuni projects cli-tokens ls [--json] |
列出项目的 CLI 令牌。 |
beeuni projects cli-tokens new [--name <name>] [--expires-at <iso>] |
创建项目范围的 CLI 令牌。密钥仅显示一次。 |
beeuni projects cli-tokens rm <token-id> [-y|--yes] |
撤销一个项目 CLI 令牌。 |
beeuni projects upgrade [<id>] [--json] |
启动代理会话,将 v1 beeuni.toml 迁移到 v2 beeuni.yaml,并创建变更请求。 |
一个项目只能显示一个图标,因此写入 --icon 会清除字形,写入 --glyph 会清除表情符号;同时传入两者会被拒绝。字形颜色:grey、red、orange、yellow、lime、blue、purple、magenta。set 和 features 需要 project.settings.write。如果平台将某个标志标记为不可用,无论项目覆盖设置如何,该标志都会保持关闭。
项目 CLI 令牌绑定到一个项目——API 会拒绝其在其他项目中的使用。会话沙箱使用其与会话绑定的 BEEUNI_TOKEN。cli-tokens ls 需要项目读取权限;new 和 rm 需要 project.credentials.issue。无论项目是否声明代理,会话绑定的令牌都不能创建或撤销项目令牌(403)。项目 CLI 令牌遵循账户的 PAT 政策:当账户要求过期时间时,传入 --expires-at;超过最大生命周期的过期时间会返回 400。
beeuni projects upgrade 需要项目写入权限。默认代理会刷新 marketplace 基线、重写清单、运行 beeuni validate,并创建变更请求。它绝不会合并:由人工审查差异。
项目脚手架
beeuni init [project-name] [options] 创建新的项目目录。启动模板会写入 v2 beeuni.yaml、agents/、skills/、memory/ 和 harnesses/opencode/。该命令可以配置本地编码工具发现,而不会更改云端 默认运行时 运行时。该命令不会写入 .beeuni/link.json。beeuni ship 或 beeuni projects link 会创建该文件。
| 标志 | 含义 |
|---|---|
--name <project> |
项目名称。 |
--primary <agent> |
主要代理。 |
--agents <csv> |
要配置的本地编码代理集成。 |
--force |
就地配置当前目录,而不是创建新的脚手架目录。 |
--overwrite |
覆盖现有文件。 |
--no-git |
跳过 git init。 |
-y, --yes |
不提示。 |
本地编码工具选择不会更改云端 默认运行时 运行时。
beeuni init 不包含 marketplace 选择器。添加 marketplace 技能属于代理导入操作:启动会话并要求代理导入技能。
发布
beeuni ship 会将当前分支暂存、提交并推送到项目的 git 仓库。首次运行时创建项目;之后可随时再次运行以同步。别名:beeuni deploy。
每次运行:
- 运行
beeuni validate检查:beeuni.yaml会检查与imports:中列出的每个文件合并后的内容、沙盒 Dockerfile、代理接线和仓库大小(使用--no-verify跳过)。出错会阻止发布,警告则不会。 - 提交工作树中的所有未提交更改(使用
--no-commit跳过)。 - 提示输入缺失的
env密钥(使用--no-env跳过)。 - 将当前分支推送到同名远程分支。
- 连接仍需授权的已声明连接器(使用
--no-connect跳过)。
现有的 GitHub origin 会通过 Beeuni GitHub App 关联。其他任何现有的 origin 都会按原样注册。不提供 origin 时,会创建由 Beeuni 管理的 Git 仓库。
| 选项 | 作用 |
|---|---|
--name <project> |
新项目的显示名称。 |
--account <id|slug> |
创建项目的账号(仅首次发布时)。 |
--origin <managed|git-url> |
覆盖推断出的来源选择。 |
--github-token <pat> |
使用此令牌而非 GitHub App 关联 GitHub 来源。 |
-m, --message <text> |
提交消息。 |
--no-commit / --no-verify / --no-env / --no-connect |
跳过对应步骤。 |
-y, --yes |
不提示。 |
-n, --dry-run |
显示将执行的操作;不做任何更改。 |
--project <id> / --host <name> |
指定非默认项目或主机。 |
应用
Apps 可托管静态网站、服务器、后台任务和数据库。每个 App 有稳定的 URL。发布包含代码与配置;部署失败不会替换当前发布。
beeuni apps list
beeuni apps show main
beeuni apps connect main
beeuni apps launch --template convex --slug main
beeuni apps deploy dist --type static --spa
beeuni apps machines main
beeuni apps volumes main
通过 uses 连接应用,使用 beeuni apps connect 提供的连接示例。不要在客户端代码中放入管理凭据。
运行中的资源消耗账户额度,在 Billing 和 Usage 中查看余额与用量。Apps 不再单独设置月度预算。
会话
每个会话都在自己的分支上的一个沙盒中运行。
| 命令 | 效果 |
|---|---|
beeuni sessions ls [--mine|--shared|--automated] [--search <q>] [--label <label>]... [--json] |
列出会话。--label 可重复使用;会话必须带有每个指定标签。只要列出的会话中有任何一个带标签,就会显示 LABELS 列。 |
beeuni sessions status [--all] [--json] |
显示所有会话及其代理当前正在执行的操作。别名:overview、ps。 |
beeuni sessions info <id> [--json] |
详细视图:状态、分支、代理、沙箱 URL。 |
beeuni sessions new [--prompt "<text>"] [--agent <name>] [--model <id>] [--wait] [--connect] [--json] |
启动会话。--connect 会在 默认运行时 TUI 就绪后将其连接上(隐含 --wait);在没有该选项的交互式终端中,CLI 会在创建后询问是否连接。--model <id> 会覆盖项目的默认模型;通过 API 密钥或 ChatGPT 订阅运行的模型会使用你可用于该模型的所有密钥,并在这些密钥之间轮换。--wait 会阻塞,直到会话运行(最长约 5 分钟)。使用 --secret <id> 或 --no-secrets 缩小 Secret 的访问范围。这些 Secret 选项需要后端令牌。使用 --connector <alias>=<authorization-id> 或 --no-connectors 设置 Connector 访问权限。使用 --require-connector <alias> 要求在配置前进行授权。范围选项可重复使用。使用 --context <key>=<value> 传入非机密的运行时上下文。--label <label>(可重复使用)用于分类会话;--meta <key>=<value>(可重复使用)用于在会话元数据中存储字符串。 |
beeuni sessions chat [<id>] [--prompt "<text>"] [--queue | --steer] [--new] [--agent <name>] [--json] |
与会话的代理交谈。默认以交互方式运行。别名:talk。也可使用顶层命令 beeuni chat。--queue 仅限单次使用:将提示存入会话的持久收件箱后立即返回,而不是交给运行时处理。--steer 以同样方式存储提示,正在运行的轮次会在下一步读取它而不会停止。如果没有正在运行的轮次,则会启动一个轮次。无法接收指令的会话会将其作为 --queue 运行。 |
beeuni sessions connect [<id>] [-- <opencode args>] |
将 默认运行时 TUI 连接到会话的 默认运行时 服务器。也可使用顶层命令:beeuni connect / beeuni attach。不指定 id 时,会打开会话选择器(运行中、已停止但可重启,或新建)。CLI 会自动下载版本匹配的 opencode 二进制文件(缓存位置:~/.beeuni/opencode/<version>/;覆盖项:BEEUNI_OPENCODE_BIN)。pi 会话没有 opencode 服务器:该命令会以 1 退出,并改为列出 beeuni sessions shell 和 beeuni sessions chat。 |
beeuni tui [--host <name>] [--project <id>] [--session <id>] [--new] [--agent <name>] [--terminal] [--no-sidebar] [--mouse] [--install] [--uninstall] |
实验性功能。 打开 Beeuni 终端客户端:会话、对话记录、编辑框、沙箱 Shell、Files、Review、Apps、Customize 和 Account。别名:beeuni t 和 beeunit。--new 会在启动时于项目中创建会话(--agent 选择代理),--terminal 会打开并聚焦沙箱 Shell,--no-sidebar 会在不显示侧边栏的情况下启动(Alt+B 可切换侧边栏),--mouse 会将鼠标交给应用(默认关闭,以便终端中的选择、复制和链接点击继续正常工作)。TUI 是独立的约 80 MB 二进制文件;首次运行时会询问,然后将版本匹配的 beeuni-tui 安装到 ~/.beeuni/tui/<version>/;后续 CLI 更新会在不询问的情况下更新它,并复用未更改的二进制文件。--install 会在不提示的情况下执行此操作,--uninstall 会将其移除。默认使用当前主机,除非 --host 指定其他主机;如果没有主机登录,则会打开自己的登录屏幕。? 会打印所有按键绑定。参见 /docs/cli#sessions。 |
beeuni sessions shell [<id>] [--new] |
在沙箱中打开原始交互式终端,不带代理。重新连接到会话已有的终端;--new 始终启动一个新终端。别名:terminal、ssh。 |
beeuni sessions shell <id> ls [--json] |
列出会话的终端:id、状态、命令。无需 TTY。 |
beeuni sessions shell <id> kill <pty-id> |
结束一个终端。下次连接时,环境 Shell 会重新启动;其中运行的任何程序都不会重新启动。 |
beeuni sessions forward <id> --port <sandbox>[:<local>] |
将沙箱端口转发到你的机器,方式类似 VS Code,使代理打印的 http://localhost:3000 可在你自己的浏览器中使用。--port 可重复使用;未指定本地端口时,若同号端口空闲则使用该端口,否则使用下一个空闲端口;:0 会请求操作系统分配临时端口。HTTP 和 WebSocket 都会转发(开发服务器热重载可正常工作)。每条转发都会打印一行 ⇄ localhost:N → sandbox:M,并在前台持续运行,直到按下 Ctrl+C。不会启动已停止的会话——而是打印解决方法 beeuni sessions restart。别名:ports。 |
beeuni sessions log [<id>] [--limit <n>] [--json] |
只读地打印最近的消息。运行中的会话会实时读取;已停止的会话会从每轮结束时保存的对话记录中读取,因此不会仅为读取而唤醒会话。消息来源会写到 stderr,因此 --json 输出保持不变。别名:messages、history。 |
beeuni sessions attachments <id> [--download <attachment-id>|--all] [--out <dir>] [--json] |
列出并下载会话存储的文件——用户附加的文件,以及代理展示过的文件副本。会话停止时也可使用:列表和文件内容都不依赖其沙箱。下载不会覆盖文件;如果文件名已被占用,新文件名会变为 name (1).ext。 |
beeuni sessions pending <id> [--json] |
列出待处理的工具权限或问题提示。别名:prompts。 |
beeuni sessions approve <id> [<req-id>] [--always] [--reject] [--message "<text>"] |
回答权限提示。 |
beeuni sessions answer <id> [<req-id>] [--option <v>]... [--text "<text>"] [--reject] |
回答问题提示。 |
beeuni sessions digest [--since <7d>] [--json] |
多会话精简审阅。已停止会话的对话记录来自其保存的副本,并标记为 saved(如果该副本未包含第一条消息,还会标记为 partial)。别名:review、summary。 |
beeuni sessions scope <id> [scope options] [--json] |
读取或替换 Secret 和 Connector 的访问权限。别名:access。管理 Secret 时使用 --secret <id>、--no-secrets 或 --inherit-secrets。管理 Connector 绑定时使用 --connector <alias>=<authorization-id> 或 --no-connectors。管理必需的 Connector 时使用 --require-connector <alias> 或 --no-required-connectors。指定的类别会替换当前值;未指定的类别保持不变。更改会在下一条提示中生效。如果会话已读取 Secret,则移除的 Secret 值仍会保留在现有上下文中。 |
beeuni sessions preview <id> [port] [--port <n>] [--list] [--json] |
打印沙箱端口的可点击预览 URL。默认端口:3000。--list 会改为打印命名的候选项。 |
beeuni sessions restart <id> |
重启会话的沙箱。 |
beeuni sessions rename <id> <name> |
设置会话名称。传入 "" 可清除名称。 |
beeuni sessions update [<id>] [--label <l>]... [--unlabel <l>]... [--clear-labels] [--meta <key>=<value>]... [--unmeta <key>]... [--json] |
更改会话标签和元数据。--label 用于添加,--unlabel 用于移除,--clear-labels 会先清空列表;--meta 用于设置字符串键,--unmeta 用于移除键。不指定 id 时,会更新 $BEEUNI_SESSION_ID,以便代理为其运行所在的会话添加标签。别名:label。 |
beeuni sessions rm <id>... |
停止并删除一个或多个会话。 |
beeuni sessions open <id> |
在浏览器中打开会话的仪表板页面。 |
beeuni sessions stop <id> [--json] |
暂停会话。沙箱会原地停止,磁盘内容会保留。别名:pause。需要 project.session.stop。 |
beeuni sessions start <id> [--wait] [--json] |
唤醒会话:配置缺失的沙箱、恢复已停止的沙箱,并解析其运行时。可重复安全执行。别名:wake。--wait 会阻塞直到就绪(最长约 5 分钟);如果会话最终处于失败或停止状态,则以 1 退出。 |
beeuni sessions warm [--exclude <id>] [--json] |
预先创建即将使用的会话,让沙箱提前启动。会复用已有的未使用预热会话。预热会话在收到第一条提示前不会显示在 sessions ls 中。 |
beeuni sessions model <id> <model-id> [--json] |
在会话运行期间更改其模型。活动沙箱会切换到新模型并重启运行时,从而结束当前正在运行的轮次;已停止的会话会保存该值,供下次启动时使用。如果会话未选择新模型提供商的密钥,则会使用你可用于该提供商的所有密钥。 |
beeuni sessions compact <id> [--json] |
总结目前为止的对话,并根据总结继续。运行时未列出 session.compact 的会话会以原因 1 退出。 |
beeuni sessions queue <id> [ls] [--json] |
列出会话持久收件箱中仍在等待的提示。 |
beeuni sessions queue <id> rm <prompt-id> |
丢弃一个排队的提示。模型步骤开始回答后会拒绝(409)。 |
beeuni sessions queue <id> now <prompt-id> |
接下来运行一个排队的提示:将它重新排到顺序规则之前,并解除会话的暂停状态。 |
beeuni sessions queue <id> hold|release |
暂停所有排队的提示(Stop 按钮执行的操作),或解除暂停。 |
beeuni sessions approvals <id> [ls] [--json] |
列出此会话正在等待人工处理的所有受管控连接器调用。 |
beeuni sessions approvals <id> approve|deny <execution-id> |
允许一个受管控的连接器调用运行,或拒绝它。智能体会收到通知,并在没有该调用的情况下继续。 |
beeuni sessions files <id> <subcommand> [--json] |
读取和编辑沙盒中的实时工作区:ls [<path>]、status、find <query>、write <path>、touch <path>、mkdir <path>、mv <from> <to>、rm <path>。 |
beeuni sessions share <id> [--mode private|project|members] [--member <id|email>] [--group <id>] [--show] [--json] |
设置 Beeuni 内哪些人可以打开此会话。不带 --mode 时,会显示当前设置且不做任何更改。--member 和 --group 可重复使用。 |
beeuni sessions links <id> ls [--json] |
按时间倒序列出此会话上创建过的所有公开链接。 |
beeuni sessions links <id> create [options] |
为预览端口或一个工作区文件创建一个公开、无需身份验证的链接。 |
beeuni sessions links <id> revoke <share-id> |
撤销一个公开链接。 |
sessions queue需要project.session.start,与发送消息所需的权限相同。排队的提示会在终端关闭后继续保留,并在会话可以接收时送达。使用beeuni sessions chat <id> -p "…" --queue将提示放入队列,或使用--steer引导正在运行的轮次。sessions queue ls会显示每个提示的DELIVERY(steer、queue或interrupt);对于作为queue运行的引导提示,还会显示原因:unsupported(会话无法在轮次进行期间接收消息)、not_prompter(另一位成员的轮次正在运行)或turn_ended。
sessions approvals会持久保留:与sessions pending不同,即使沙盒重启也不会丢失。操作需要project.members.manage权限,或由启动会话的用户本人执行。智能体绝不能处理自己的审批。
sessions attachments读取会话的私有文件存储,而不是工作区。文件会在发送时存入其中,智能体展示的每个文件也会在轮次结束时存入其中。
sessions files读取智能体当前正在编辑的工作树,即尚未提交的内容;beeuni files则读取已提交的仓库。除非路径以/workspace、/tmp、/home或/opt开头,否则会在/workspace下解析。若沙盒处于休眠状态,此命令会将其唤醒。选项:--from <local path>(write会改为读取此文件,而不是标准输入)、--content(find会使用 ripgrep 搜索内容,而不是文件名)、--limit <N>(find文件名数量上限),以及-y,用于跳过rm确认。
sessions share由所有者管控:如果项目管理员原本无权读取该会话,API 就会拒绝操作。共享会话只能使用与整个项目共享的提供商密钥运行:使用你自己的密钥运行的模型,会改用该提供商的项目密钥;如果项目没有可用于运行该模型的密钥,共享请求会被拒绝(409 SHARED_SESSION_NEEDS_PROJECT_KEY)。
sessions links create选项:--port <n>(默认3000;拒绝22、8000和 opencode 端口)、--path <p>(默认/)、--preview <id>(指定候选项——web、vite、dev-server、api-docs——而非--port/--path)、--file <path>(共享一个工作区文件,而不是预览;始终为只读)、--mode view\|interactive(默认view;interactive允许写入和使用 WebSocket,对--file无效)、--label <text>和--expires <iso>。创建链接需要会话所有者权限,因为链接本身无需登录;列出和撤销链接也允许项目管理员操作。
在沙盒内,BEEUNI_SESSION_ID是你自己的会话 ID。
更改请求
更改请求(CR)会在任意 Git 托管平台上将一个分支合并到另一个分支。这是智能体将会话工作合并到默认分支的唯一方式。请参阅更改请求。
| 命令 | 作用 |
|---|---|
beeuni cr ls [--status open|merged|closed|all] [--project <id>] |
列出 CR。默认值:--status open。 |
beeuni cr show <cr> [--project <id>] |
显示一个 CR,包括其合并预览。别名:info。 |
beeuni cr diff <cr> [--no-color] [--json] |
输出 CR 的统一差异。 |
beeuni cr open --title "<text>" [--description "<text>"] [--head <ref>] [--session <id>] [--base <ref>] |
创建 CR。别名:new、create。在沙盒内,--head和--session会自动设为默认值。--base默认为项目的默认分支。 |
beeuni cr merge <cr> [--message "<text>"] |
合并一个处于打开状态的 CR。可快进时执行快进合并,否则执行三方合并。 |
beeuni cr close <cr> |
关闭一个处于打开状态的 CR,不进行合并。 |
beeuni cr reopen <cr> |
重新打开一个已关闭的 CR。已合并的 CR 不能再更改状态。 |
beeuni cr merge-preview <cr> [--json] |
报告 CR 是否可以合并,并列出所有冲突路径。别名:preview。 |
beeuni cr request-changes <cr> --message "<text>" |
请求创建该 CR 的智能体对其进行修改。别名:changes。 |
beeuni cr version-diff --from <ver> --into <ver> [--json] |
在创建 CR 前,对比两个版本并进行总结。 |
request-changes会将备注记录在 CR 上,并发送到发起该 CR 的会话;如果其沙盒处于休眠状态,则会启动沙盒。此操作需要project.review.act,即 Review Center 使用的相同权限叶节点,而不是gitops.push。
<cr>接受项目内编号(3)或完整 ID。在沙盒内,CLI 会自动读取会话令牌,无需登录或链接。
审核
项目的审核收件箱汇集所有等待人工决策的内容:更改请求、策略要求审批的连接器工具调用,以及智能体提交以供签核的输出、决策和批次。与仪表板中的 Review Center 保持同步。所有项目默认启用;project.review.read和project.review.act分别控制读取和操作权限。
| 命令 | 作用 |
|---|---|
beeuni review ls [--segment <s>] [--kind <k>] [--json] |
列出收件箱项目。默认值:所有类别。 |
beeuni review show <item-id> [--json] |
完整显示一个项目。 |
beeuni review act <item-id> <verdict> [--message <text>] |
处理一个项目。--message用于附带备注。 |
beeuni review bulk <verdict> <id> [<id> …] |
在一次调用中处理多个原生项目。 |
beeuni review submit --kind <k> --title <t> [options] |
提交输出、决策或批次以供审核。 |
判定结果:approve、reject、changes、answer、dismiss。类别:needs_you、waiting、done。类型:change、approval、output、decision、batch。
判定结果的处理方式取决于项目 ID。对于cr:<id>,approve会合并更改,reject会关闭它,changes会将备注发回创建该请求的智能体(需要--message)。对于call:<id>,approve会允许工具调用运行,reject会拒绝它;连接器审批不接受其他判定结果——请先使用beeuni review show查看其参数。其他所有 ID 都会交由原生操作端点处理,该端点接受所有判定结果。
bulk仅处理原生 ID。连接器审批需要单独审核参数,更改请求则需要查看其差异,因此这两类项目会被报告并跳过——这与仪表板的多选规则相同。
submit选项:--kind output\|decision\|batch(必填)、--title <text>(必填)、--summary <text>、--risk none\|low\|medium\|high(默认none)、--detail <json>(JSON 对象)、--agent <name>和--session <id>(当它不属于此项目的会话时会被忽略)。
读取需要project.review.read,处理判定需要project.review.act,而submit需要project.review.submit。
密钥
存储在项目中的加密值。默认情况下,启动时会将密钥作为普通环境变量注入每个会话沙箱(环境暴露)。强制交付——沙箱持有句柄,由 Beeuni 在沙箱外替换为真实值(出口强制暴露,以及 beeuni secrets call)——目前处于实验阶段。启用 secrets_egress 功能标志(Settings → Feature flags)即可使用;关闭该标志时,beeuni secrets delivery … egress 会返回 403 feature_disabled。参阅 Secrets。
| 命令 | 作用 |
|---|---|
beeuni secrets ls |
按标识符和清单 env 规范列出密钥,并显示谁可以使用各个值。标记必需但缺失的值。 |
beeuni secrets set NAME=VALUE ... [--identifier <id>] [--scope runtime|connector] [--only-me] |
新建或更新一个或多个密钥。NAME=- 从标准输入读取值。--scope connector 在服务端为连接器网关保留该值。--only-me 使新值仅对你可用。 |
beeuni secrets share IDENTIFIER --user <email|id|me> --group <id> --agent <name> | --everyone |
设置谁可以使用该值。用户可以直接使用,或在自己的私有会话中使用;智能体则可在其所有会话中使用,包括触发器。参阅 Who can use a secret。 |
beeuni secrets request NAME ... [--scope runtime|connector] [--expires <min>] |
创建链接,让其他人输入你没有的值。 |
beeuni secrets unset NAME ... |
删除密钥。 |
beeuni secrets grant IDENTIFIER --agent <name> |
允许一个智能体接收此密钥:将标识符合并到该智能体在 beeuni.yaml 中的 secrets 列表;如果清单中没有该智能体条目,则添加它。 |
如果某一行被 ls 报告为无法交付,使用 grant 修复。它只会扩大一个智能体的列表;要缩小或替换列表,请使用 beeuni agents scope. There is no secrets revoke 重写整个集合——API 没有只从授权中删除单个标识符的路由。项目尚无智能体时的首次授权会启动治理:此后,清单中未列出的智能体将无法收到项目密钥,发生这种情况时,命令会予以提示。
Env
| 命令 | 作用 |
|---|---|
beeuni env pull [--out <path>] [--force] |
写入 .env 框架,仅包含名称。值绝不会离开云端。 |
beeuni env push --from <path> |
将 dotenv 文件中的所有 NAME=VALUE 上传为密钥。 |
Agents
链接项目中每个智能体的模型设置。
| 命令 | 作用 |
|---|---|
beeuni agents ls [--json] |
显示每个智能体固定使用的模型和备用默认模型。别名:models。 |
beeuni agents model <agent> <provider/model> |
将智能体固定到某个模型。 |
beeuni agents model <agent> --clear |
清除固定设置——智能体将再次跟随默认模型。 |
beeuni agents default <agent> |
将其设为项目默认智能体。 |
beeuni agents default --show [--json] |
打印当前默认智能体。 |
beeuni agents scope <agent> [--secrets all|none|A,B] [--connectors all|none|a,b] [--apps all|none|a,b] [--require-connector <slug>] |
替换智能体可使用的密钥、连接器和 Beeuni Apps。--apps 接受 App slug,且需要 v2 beeuni.yaml;智能体还需要 project.app.read。--require-connector 可重复指定,并且必须在会话开始前解析完成。 |
beeuni agents scope <agent> --show [--json] |
打印智能体当前的作用范围。 |
beeuni agents config <agent> [--json] |
打印完整的智能体配置块。 |
beeuni agents config <agent> --file <path> |
用 JSON 文件的内容替换配置块。- 从标准输入读取。 |
beeuni agents config <agent> --set <key>=<value> ... |
更改单个点分隔键,并合并更改。可重复指定,例如 behavior.model=glm-5.3-flash、enabled=false、connectors=["slack"]。 |
每个作用范围选项都会替换现有内容,不会合并。--set 值若能解析为 JSON,就按 JSON 解析;否则保留为字符串。模型固定设置和 scope 会立即生效,无需 beeuni.yaml 提交;default 和 config 会提交到项目默认分支上的 beeuni.yaml。scope 需要 project.agent.write,default 和 config 也需要。
Tools
项目会话可用的工具,从本地 beeuni.yaml 及其导入项读取。在项目根目录运行。参阅
Tools。
| 命令 | 作用 |
|---|---|
beeuni tools ls [--json] |
列出会话可用的每个工具:名称、类型(beeuni、beeuni (overridden)、project)和来源(beeuni:<name> 或模块路径)。也会列出项目移除的 Beeuni 工具。--json 会打印 { manifest, tools_key, tools, removed }。 |
beeuni tools eject <name> [--force] |
将 Beeuni 工具 <name> 复制到 tools/<name>.ts,并在声明该工具的 beeuni.yaml 中设置 tools.<name>: tools/<name>.ts。更改行以 # ejected from beeuni:<name> 结尾;其他注释均保留。若没有 tools: 键,也会列出其他四个 Beeuni 工具,因此不会移除任何工具。如果 tools/<name>.ts 已存在,或该工具已指向其他模块,则拒绝操作,除非指定 --force。如果名称不是 Beeuni 工具,也会拒绝操作。 |
没有 tools: 键时,每个会话都会获得全部五个 Beeuni 工具(web_search、
image_search、scrape_webpage、memory、show)。有 tools: 键时,
会话只能获得其中列出的 Beeuni 工具。要移除 Beeuni 工具,请删除它在 tools: 下的行,然后运行 beeuni validate。若要限制单个智能体可用的工具,请使用 agents.<name>.tools。退出码:0 成功;1 操作被拒绝(文件已存在,或清单、导入项无法解析);2 清单不存在、选项未知,或名称不是 Beeuni 工具。
Models
项目提供哪些模型,以及默认使用哪个模型。与控制面板中的 Customize → Models 页面相同。项目只存储对目录默认值(每个系列的最新模型)的例外设置。启用状态仅影响显示:它决定选择器提供哪些选项,而不会限制网关提供哪些模型。
| 命令 | 作用 |
|---|---|
beeuni models ls [--json] |
列出所有可运行的模型:状态、来源、付费方式(VIA:Beeuni、API 密钥或 ChatGPT——属于你本人、与你共享或与项目共享)、提供方。 |
beeuni models enable <model-id>... |
提供这些模型。 |
beeuni models disable <model-id>... |
停止提供这些模型。若其中包含项目默认模型,则会以 409 拒绝操作——请先更改默认模型。 |
beeuni models reset |
清除所有例外设置,恢复为目录默认值。 |
beeuni models default [--json] |
打印默认链(项目 → 账户 → 平台)及其解析结果。 |
beeuni models default <model-id> [--account] |
设置项目默认值;指定 --account 时,设置账户级默认值。 |
beeuni models default --clear [--account] |
清除项目或账户默认值。 |
模型 ID 是网关线路 ID——可以是未加前缀的托管模型 ID(glm-5.3-flash),也可以是 BYOK provider/model。从 beeuni models ls --json 复制。每个智能体的固定设置位于 beeuni agents model <agent> <model-id>。写入需要 project.model.write。
Channels
管理项目与聊天平台的连接。令牌会加密存储在项目密钥中,并在服务端解析——绝不会注入沙箱。
| 命令 | 作用 |
|---|---|
beeuni channels status [--json] |
显示当前连接。 |
beeuni channels connect [--wait] [--timeout <sec>] |
一步完成连接:打印安装链接。--wait 会轮询,直到安装完成。 |
beeuni channels connect --manual [--bot-token <token>] [--signing-secret <secret>] |
使用自带应用模式:直接保存机器人令牌和签名密钥。 |
beeuni channels disconnect [--platform slack|teams] |
断开项目连接——默认断开 Slack 连接;指定 --platform teams 则断开 Teams 连接。 |
beeuni channels manifest |
打印自带应用流程所需的应用清单 JSON。 |
beeuni channels email status [--json] |
设置单个电子邮件连接器的收件箱和投递模式。 |
beeuni channels email connect [options] |
创建托管收件箱,或关联现有的 AgentMail 收件箱。 |
beeuni channels email disconnect |
断开收件箱连接。 |
beeuni channels email policy [--allow <email|@domain>] [--allow-regex <re>] [--allow-all] |
替换允许给智能体发送电子邮件的人。 |
beeuni channels bindings [ls] [--json] |
列出所有已绑定的渠道,以及其对应的智能体、模型和加入策略。 |
beeuni channels bind <bindingId> [--agent <name>|--no-agent] [--model <id>|--no-model] [--policy <p>] |
更改单个绑定。--policy 接受 owner_approval、owner_only 或 project_open。 |
--platform slack|teams 选择平台;默认值为 slack。Teams
connect 输出 Microsoft 管理员同意 URL;授予整个租户的同意后,
应用会自动发布到 Teams 目录。请参阅 Connectors。
电子邮件渠道由 AgentMail 提供支持,需要启用 agentmail_email 功能
标志。email connect 选项:--connector <slug>(默认值 beeuni_email)、
--api-key <k>(使用你自己的 AgentMail 密钥;- 从 stdin 读取)、
--display-name <n>(外发邮件的发件人名称;默认为项目名称)、
--username <u> 和 --domain <d>(新建托管收件箱),以及
--inbox-id <id> 和 --email <addr>(关联现有收件箱——两者必须同时提供)。
--allow 可重复使用,并会启用受限模式;不带 @ 的裸值,或以 @ 开头的值,均会被视为域名。
--allow-all 会清空列表,重新接受所有发件人的邮件。
电子邮件和 bind 写入操作需要 project.connector.write。
Connectors
供智能体作为工具调用的连接器。add、rm 和 policy set 会编辑本地 beeuni.yaml;运行 beeuni ship 以应用更改,除非传入 --apply,立即更改云项目。
| 命令 | 作用 |
|---|---|
beeuni connectors ls [--json] |
列出连接器及其状态。 |
beeuni connectors show <slug> [--json] |
显示某个连接器的工具。 |
beeuni connectors add <slug> --provider <p> [options] [--apply] |
添加连接器。 |
beeuni connectors rm <slug> [--apply] |
移除连接器。 |
beeuni connectors rename <slug> <name> |
设置连接器的显示名称。 |
beeuni connectors sync |
根据随附的 beeuni.yaml 同步目录。 |
beeuni connectors credential <slug> [value] |
设置连接器的凭据。 |
beeuni connectors connect <slug> |
启动一键连接流程。 |
beeuni connectors link <slug> [--expires <min>] |
为用户创建可分享的连接链接。 |
beeuni connectors types [--connector <a,b>] [--out <file>] |
为每个可调用操作编写 TypeScript 类型:一个 declare module '@beeuni/sdk' 文件,为 connectors.callAction(slug, action, args) 参数和 output 提供类型。托管连接器不会发布输出架构,因此其结果类型为 unknown。若不指定 --out,则输出到 stdout。 |
beeuni connectors accounts <slug> [--default <label|id>] [--json] |
列出调用可使用的账户,以及各账户所连接的身份。--default 可固定一个账户。 |
beeuni connectors connections ls [--all] [--json] |
列出连接及其标签、CONNECTED AS、所有者、WHO CAN USE(owner only、everyone 或授权标签;若仅为管理而列出,则包含 (not you))、状态和默认设置。 |
beeuni connectors connections rename <id> <label…> |
重命名连接。仅更改标签,不会重新授权。 |
beeuni connectors connections share <id> [--group <id>]… [--user <email|id>]… [--everyone] |
分享你自己的私人账户:该账户会变为仅对指定用户可用的共享账户(--everyone:整个项目)。需要拥有管理项目连接的权限。 |
beeuni connectors apps [<query>] [--category <c>] [--cursor <c>] [--limit <n>] [--json] |
搜索 托管工具包目录——add --provider composio --app <slug> 接受的 slug。别名:beeuni connectors toolkits。添加 --pipedream 可搜索旧版目录。 |
beeuni connectors catalog [<query>] [--cursor <c>] [--json] |
浏览直接连接器目录。需要启用 connectors_api_discover 标志。 |
beeuni connectors catalog show <id> [--json] |
显示某条目录记录的接口。 |
beeuni connectors sensitive <slug> on|off |
同时限制此连接器的读取操作——此后每次调用都需要审批。立即生效。 |
beeuni connectors owner <slug> project|user |
授权方式:使用一个项目连接,或由每位成员使用自己的连接。立即生效。 |
beeuni connectors authorize <slug> [--status] [--scope "<a b>"] [--client-id <id>] [--client-secret <s>] [--success-redirect <url>] [--error-redirect <url>] [--json] |
对连接器执行完整的 OAuth 2.1 授权流程:发现服务器的授权元数据,在服务器支持时将 Beeuni 注册为客户端(RFC 7591),并输出审批 URL。使用 --status 可改为报告结果。 |
beeuni connectors authorize <slug> --device |
同上,但使用 OAuth 2.0 设备流程(RFC 8628):输出代码和 URL,然后轮询,直到获批、被拒或过期。 |
beeuni connectors policy ls [--json] |
显示项目范围的执行策略。别名:show。 |
beeuni connectors policy set --default <risk|allow_all> [--apply] |
在 beeuni.yaml 中设置默认执行模式。--apply 可直接设置并立即生效。 |
beeuni connectors policy add <match> <allow|ask|block> [--condition <k=v>] |
添加项目范围的规则。立即生效。--condition 可将规则限定为匹配的参数,且可重复使用;k!=v 表示取反,k 是指向调用参数的点分路径。 |
beeuni connectors policy rm <match> |
移除项目范围的规则。立即生效。 |
beeuni connectors policy <slug> ls|set <match> <allow|ask|block>|rm <match>|clear |
管理某个连接器的工具调用规则。 |
policy ls、show、set、add 和 rm 属于项目范围的命令,因此,若连接器名称与其中一个动词相同,必须使用 policy <slug> ls 指定该连接器。<match> 可以是工具名称、通配模式(send_*)或 /regex/。
add 选项:--name <label>、--provider <pipedream\|mcp\|openapi\|postman\|graphql\|http>、--app <slug>、--url <url>、--transport <http\|sse>、--endpoint <url>、--base-url <url>、--spec <url\|path>、--auth-type <none\|bearer\|basic\|custom>、--credential shared。
Sandboxes
管理项目的沙盒镜像。模板定义镜像或 Dockerfile 及资源;构建会生成会话启动时使用的快照。
| 命令 | 作用 |
|---|---|
beeuni sandboxes ls [--json] |
列出模板和实时提供商状态。 |
beeuni sandboxes builds [--json] |
查看最近的构建日志。 |
beeuni sandboxes health [--json] |
查看主模板的就绪状态。 |
beeuni sandboxes add <slug> (--image <i>|--dockerfile <p>) [options] |
创建自定义模板并开始构建。 |
beeuni sandboxes update <slug> [options] |
更新模板。 |
beeuni sandboxes build <slug> |
触发重新构建。 |
beeuni sandboxes rebuild <slug> |
强制重新构建:先删除现有快照。 |
beeuni sandboxes rm <slug> |
删除模板。 |
beeuni sandboxes fix |
启动一个以最近一次失败构建日志为种子的会话,用于修复问题。 |
beeuni sandboxes provider [--json] |
显示项目固定的沙盒提供商,以及此主机支持的提供商。 |
beeuni sandboxes provider <name> [--timeout <sec>] |
将所有新会话固定到一个提供商。如果目标需要先构建快照,API 会返回准备任务,命令会跟进执行直至完成。默认 --timeout:600s。 |
beeuni sandboxes provider --clear |
取消固定并使用平台默认设置。别名:--unpin。 |
beeuni sandboxes provider status [--json] |
显示最新的提供商切换及其历史记录。别名:transition。 |
固定提供商需要 project.settings.write。
add/update 选项:--name <label>、--cpu <n>、--memory <n>(GiB)、--disk <n>(GiB)。
Backends
数据库是带有持久卷的 App。通过 Apps 管理和连接。
Marketplace
浏览 Beeuni Marketplace,并将项目安装到项目中。
| 命令 | 作用 |
|---|---|
beeuni marketplace search [query] |
搜索 Marketplace 项目。 |
beeuni marketplace list |
列出 Marketplace 项目。 |
beeuni marketplace show <id-or-name> |
显示单个 Marketplace 项目。 |
beeuni marketplace install <id-or-name> |
启动 agent 会话以导入项目。 |
选项:--query <text>、--type <type>、--source <source>、--host <name>、--project <id>、--json。
安装由 agent 驱动:它会启动项目会话,克隆项目、读取内容、合并适用的部分,并发起更改请求。没有确定性的安装、更新或移除机制。
系统技能
Beeuni 系统技能是供用户和 agent 参考的平台运维指南,涵盖会话、沙盒、默认运行时、连接器、记忆和频道。此公开页面是入口;经过身份验证的 CLI 会从运行中的主机读取技能。使用 beeuni system-skills list 查找可用技能,然后使用 get 查阅所需技能。API 会实时提供技能,因此内容与已部署的主机版本一致。不要将本地副本视为最新版本。
| 命令 | 作用 |
|---|---|
beeuni system-skills list |
列出 Beeuni 系统技能。默认子命令。 |
beeuni system-skills get <name> [--full] |
打印某项技能当前的 SKILL.md。--full 会添加该技能引用的文件。 |
beeuni system-skills path [name] |
打印此项目中某项技能的磁盘目录。 |
选项:--host <name>、--json。
beeuni skills 是同一命令的永久别名。先使用 beeuni login 登录主机;技能 API 需要身份验证。使用 --host <name> 可操作其他主机。公开文档页面无法替代这些实时且针对特定主机的说明。
此列表始终只包含系统技能,不会混入其他技能。可选技能位于 Marketplace:beeuni marketplace list --type skill。命令语法请参阅 beeuni <command> --help;完整的平台参考请阅读 beeuni system-skills get beeuni-system --full。
Connector
沙盒内 agent 连接所有连接器的接口。每次调用都会在服务器端经过检查、解析和审计;CLI 不会保存任何第三方凭据。身份验证:BEEUNI_TOKEN。输出为 JSON。
| 命令 | 作用 |
|---|---|
beeuni connectors discover "<intent>" |
根据自然语言意图搜索工具。 |
beeuni connectors show <connector>.<action> |
显示某个操作的输入架构。 |
beeuni connectors call <connector>.<action> '<json-args>' |
运行工具。受管控的调用会立即返回经过身份验证的 approval_url。服务器会在用户作出批准或拒绝决定后恢复会话。大型参数请通过 @file.json 或 -(标准输入)传递。 |
beeuni connectors call <connector>.<action> '<json-args>' --reason "<text>" |
当策略暂停调用时,说明该调用的作用,供人工审批者查看。审批卡片会将其作为 agent 对该调用的说明,显示在参数旁边。 |
beeuni connectors call <connector>.<action> @args.json --attach <file> |
暂存文件,并将其引用追加到操作的附件数组中。网关会将文件内容写入提供方的附件项。可重复使用 --attach;使用 --attach-path <a.b.c> 指定数组名称。请参阅附加文件。 |
beeuni connectors call <connector>.<action> '<json-args>' --out <file> |
将完整 JSON 结果写入 <file>,并仅打印摘要:saved_to、bytes 和 shape(键、数组长度、pageInfo)。请参阅大型结果。 |
beeuni connectors upload <file> --connector <slug> |
暂存单个文件。打印 ref、{"$beeuni_attachment":"<id>"},供你填入调用参数。 |
beeuni connectors add <slug> --provider pipedream --app <app> |
立即添加连接器,然后连接它。 |
beeuni connectors rm <slug> |
从项目中移除连接器。 |
beeuni connectors connect <slug> [--owner me|project] [--label <name>] |
为用户生成连接链接。--label 会为新账户建议名称,例如第二个 Gmail 账户。 |
文件
只读查看项目的 git 仓库。除非 --ref 指定其他分支、标签或提交,否则使用默认分支。
| 命令 | 作用 |
|---|---|
beeuni files ls [<path>] |
递归列出路径下的文件。列表最多显示 1,000 个文件,并会说明这一点;请使用路径缩小范围,或使用 files search。 |
beeuni files cat <path> |
输出文件内容。 |
beeuni files search <query> [--content] |
搜索文件名,或使用 --content 搜索文件内容。 |
beeuni files history <path> |
查看一个文件的提交历史。 |
beeuni files branches |
列出分支。 |
beeuni files commits [--path <p>] |
列出 --ref 上的提交。 |
beeuni files show <sha> |
显示一次提交及其更改的文件。 |
beeuni files diff <sha> [--path <p>] |
输出一次提交的统一补丁。 |
beeuni files compare <from> <into> |
汇总两个引用之间的差异。 |
beeuni files download -o <out.zip> |
将 --ref 时的仓库或 --path 子树下载为 zip 文件。别名:archive。 |
每个子命令都支持这些选项:--ref <ref>、--path <p>、--limit <n>、--json。
download 还接受 -o, --out <file>,此选项为必填项。
每个子命令都需要 project.file.read。此外,download 会拒绝任何包含你无权访问的代理或技能的子树——zip 文件无法在流式传输过程中进行筛选——因此在这种情况下,请归档范围更窄的 --path。
触发器
触发器可根据计划、webhook、应用事件或监视器(实验性)启动会话。add、rm、enable、disable 会编辑本地清单——运行 beeuni ship 以应用更改。pause/resume 会切换单独的服务器端开关。请参阅 Triggers。
| 命令 | 作用 |
|---|---|
beeuni triggers ls [--json] |
列出触发器及其运行时状态。 |
beeuni triggers add <slug> [options] [--apply] |
将触发器追加到清单中。--apply 会改为立即在云项目中创建触发器:它会在 main 上提交到 beeuni.yaml,然后进行协调。 |
beeuni triggers set <slug> [options] |
修改正在运行的触发器。只会写入你传入的标志。始终立即应用——没有本地形式。别名:update。 |
beeuni triggers rm <slug> [--apply] |
从 beeuni.yaml 中移除触发器,或使用 --apply 立即从云项目中移除。 |
beeuni triggers info <slug> [--json] |
显示一个触发器。 |
beeuni triggers events --connector <slug> [--json] |
列出连接器提供的事件及每个事件的设置。 |
beeuni triggers fire <slug> |
手动触发触发器并等待运行结果:失败的运行会以非零退出码及错误信息退出;触发运行所创建的新会话会被清理(排入现有会话的运行会保留)。--wait <dur> 会限制等待时间(默认为 90s;0 会在触发请求被接受后立即返回)。 |
beeuni triggers enable <slug> [--apply] / disable <slug> [--apply] |
启用或停用一个触发器。 |
beeuni triggers pause / resume |
在服务器端停用或重新启用项目中的所有触发器。 |
add 选项:--type <cron\|webhook\|event\|monitor>(默认为 cron)、--prompt <text>(必填)、--agent <name>、--cron <expr>(6 个字段,例如 "0 0 9 * * 1-5")、--run-at <iso>(在此时刻运行一次,而不是按 cron 运行)、--timezone <tz>(默认为 UTC)、--secret-env <NAME>、--name <label>、--disabled。
仅实时选项——适用于 add --apply,以及每个 set:--model <provider/model>、--session-mode <fresh\|keyed\|pinned\|reuse>、--session-key <tmpl>(按键为每个会话分桶,例如 "{{ body.data.chat_jid }}";隐含 keyed)、--session-id <id>(pinned 触发器循环使用的会话;必须是此项目的会话)、--session-access <private\|project\|members>(默认为 private)、--member <uuid> 和 --group <uuid>(可重复;每个都隐含 members),以及 --filter <path=value>(可重复;每一个都必须匹配,例如 --filter body.type=push)。
set 接受所有仅实时选项,以及 --name、--prompt、--cron、--run-at、--timezone、--secret-env、--agent 和 --enabled true|false。--cron 和 --run-at 互斥:设置其中一个会清除另一个。监视器字段仅支持添加。
提醒
提醒会在之后的一个会话中再次提示一次或按重复计划提示。它存储在数据库中,而不是 beeuni.yaml 中。在会话内,--session 默认为 $BEEUNI_SESSION_ID。请参阅 Reminders。
| 命令 | 作用 |
|---|---|
beeuni remind "<text>" [schedule] |
创建提醒。与 beeuni reminders add 相同。 |
beeuni reminders add "<text>" [schedule] |
创建提醒。输出其 ID 和下一次触发时间。 |
beeuni reminders ls [--json] |
列出会话的提醒。 |
beeuni reminders pause <id> / resume <id> |
停用或启用一个提醒。resume 会从现在起重新启用。 |
beeuni reminders rm <id> |
删除提醒。别名:stop、delete。 |
计划选项:--in <duration> 或 --at <iso>(首次触发;单独使用时仅触发一次)、--every <duration>(重复,最短间隔为 5m)、--cron "<expr>" 与 --timezone <tz>。其他选项:--name <label>、--session <id>(可使用唯一前缀)、--project <id>、--host <name>、--json。
事件选项(--type event):--connector <slug> 和 --event <TYPE>(均为必填)、--config key=value(可重复,字符串值),以及 --config-json '{...}'(类型化值)。set 接受相同的标志。事件触发器拒绝 --cron、--run-at、--timezone、--secret-env 以及监视器选项。提示内容读取 {{ event.data.<field> }};请参阅 App event triggers。
监视器选项(--type monitor):--run <cmd>(要监视的相对于仓库的命令;必填)、--mode <poll\|stream>(必填;poll 会在 --interval 上重新运行,stream 会使命令保持运行)、--interval <dur>(仅限 mode=poll,最短 30 秒,例如 60s、5m),以及 --expect-event-within <dur>(静默看门狗;在时间窗口内没有事件时改为触发生命周期事件,最短 5 分钟,例如 24h)。监视器是平台全天候运行的仓库命令,每一行 stdout 都会触发该触发器。它是实验性功能:平台仅在启用 monitors 功能标志的位置运行监视器。
访问权限
唯一授权表的 CLI 界面。每一行都是一项分配:一个主体、一个角色、一个范围,可选择进一步限定到一个对象。有关模型,请参阅 Accounts & access。账户角色:owner、admin、member。项目角色:manager、member。
| 命令 | 作用 |
|---|---|
beeuni access assignments [--project <id>|--account|--all] [--json] |
列出一个项目、账户或所有位置的分配。 |
beeuni access grant --user <id|email>|--group <id>|--service-account <id> --role <key|id> [opts] |
创建一项分配。输出分配 ID。 |
beeuni access revoke <assignment-id> |
撤销一项分配。 |
授权选项:--project <id>(默认为关联项目)、--account(整个账户)、--agent <name>(将授权限定到一个代理——对象分配)、--connection <id>(限定一个共享连接器账户的使用范围;第一项授权会将该账户限制为其被授权者,撤销最后一项授权后则再次对整个项目开放)、--everyone(授予所有有权访问项目的人员;它包含一个 --agent 或 --connection,而不是角色),以及 --expires <iso>(自动撤销时间戳)。--principal 会筛选列表,并接受 user:<id>、group:<id>、service_account:<id>、project:<id> 或 pending:<email>;单独的 ID 会被视为用户。授予所有人的授权会列为 everyone。代理的身份是一个 service_account,因此 --service-account <id> 是向代理分配角色的方式。--user 接受电子邮件地址,并在账户成员目录中解析该地址。
beeuni access grant --user alice@corp.com --role manager
beeuni access grant --user alice@corp.com --role admin --account
beeuni access grant --group 8f3c… --role member --project 1a2b…
beeuni access grant --user alice@corp.com --agent support-bot
beeuni access grant --everyone --agent support-bot
beeuni access grant --group 8f3c… --connection 2b7e…
beeuni access revoke 4d5e…
项目成员动词是对相同分配的读取模型:
| 命令 | 作用 |
|---|---|
beeuni access ls [--json] |
列出可访问项目的人员、其账户角色和有效项目角色。 |
beeuni access invite <email> --role <r> |
邀请某人加入项目。创建一个 pending 分配。 |
beeuni access grant <user-id> --role <r> |
设置用户的项目角色。 |
beeuni access revoke <user-id> |
移除用户对项目的访问权限。 |
beeuni access pending [--json] |
列出待处理的邀请。 |
beeuni access resend <invite-id> |
重新发送邀请邮件并重置其 14 天有效期。也会打印链接。 |
beeuni access cancel <invite-id> |
取消待处理的邀请。 |
beeuni access requests ls [--json] |
列出请求加入此项目的待处理申请。 |
beeuni access requests approve <req-id> [--role <r>] |
批准一项申请并授予项目角色。默认角色:member。 |
beeuni access requests reject <req-id> |
拒绝一项申请。别名:deny。 |
以上两个表格中的每个动词都需要 project.members.manage。
人员、群组或代理会从 Beeuni 获得角色;代理还会在 beeuni.yaml 中携带 Beeuni 权限,而会话只能执行两者都允许的操作。参见一种词汇,两种绑定。
审计
审计命令读取集中式重建日志。账户和项目列表按时间倒序排列。会话时间线按创建时间排序(session_sequence 仅在 2026-10 之前写入的行上设置,这些行排在最前)。--all 会跟随每个续传游标。ls 列出最近 90 天的记录;export 可追溯 365 天,超过 90 天的事件来自归档(参见审计保留期)。表格在每行标题(例如 EVENT「已撤销 LLM 网关密钥」)旁显示其 ACTION(gateway.key.revoke);--action 按操作前缀筛选。所有操作和标题见:审计日志操作。
| 命令 | 作用 |
|---|---|
beeuni audit ls [filters] [--all] [--json] |
列出账户事件。 |
beeuni audit project <project-id> [filters] [--all] [--json] |
列出一个项目的事件。 |
beeuni audit session <session-id> --project <project-id> [--all] [--json] |
按顺序重建一个会话。 |
beeuni audit export [filters] --format csv|jsonl --out <file> |
将导出的所有分页续传到一个文件。 |
beeuni audit webhooks ls [--json] |
列出账户的审计 Webhook。 |
beeuni audit webhooks add --name <n> --url <u> [--action-prefix <p>] |
创建一个 Webhook。签名密钥仅显示一次,并立即触发一次测试投递。--action-prefix 仅投递具有该前缀的操作。 |
beeuni audit webhooks enable <webhook-id> |
恢复投递。 |
beeuni audit webhooks disable <webhook-id> |
暂停投递,但保留端点。 |
beeuni audit webhooks rm <webhook-id> |
永久删除 Webhook。 |
审计 Webhook 会将记录流式传输到 SIEM。每个动词都需要 account.write;add 和 enable 还需要企业版权益。disable 和 rm 则始终不需要。
筛选条件:--actor、--actor-type、--project、--session、--source、--phase、--outcome、--action、--resource-type、--request-id、--correlation-id、--query、--since、--until、--cursor 和 --limit。
账户列表和导出需要 audit.read 以及账户的 auditAccess 权益。项目范围的列表需要 project.members.manage,因为其中可能包含私有会话元数据。重建会话需要 project.session.read,且必须能查看该会话。
角色
角色是具名的权限集合。系统角色(账户范围的 owner、admin、member;项目范围的 manager、member;以及对象分配携带的标记 agent-user)均为只读引用。自定义角色可由你创建和编辑,并且需要企业版 rbac 权益。
| 命令 | 作用 |
|---|---|
beeuni roles ls [--json] |
列出系统角色和自定义角色。 |
beeuni roles show <role> [--json] |
显示一个角色的权限和使用情况。 |
beeuni roles permissions <role> [--json] |
列出一个角色的权限。 |
beeuni roles create <key> --name <n> [options] |
创建自定义角色。 |
beeuni roles edit <role> [--name <n>] [--desc <t>|--no-desc] |
重命名或重新描述自定义角色。其键不会改变。需要 role.update,且不能用于系统角色。 |
beeuni roles set-actions <role> --actions a,b |
替换自定义角色的权限。 |
beeuni roles rm <role> |
删除自定义角色。 |
beeuni roles export [--project <id>] [--out <file>] [--format toml|json] |
将角色和分配导出到文件。 |
beeuni roles import <file> |
应用角色和分配文件。 |
使用 beeuni access grant 将角色绑定到主体。旧版的 beeuni roles assign / unassign / assignments 动词仍可使用,并写入同一张表,但 beeuni access 是文档所述的操作方式。beeuni roles actions 已由 beeuni permissions ls 取代。
自定义角色只能添加权限。Beeuni 没有拒绝规则,因此角色无法阻止管理员拥有某项权限。
权限
权限目录以数据形式呈现。每个叶级操作占一行,列出其判定范围、是否可委派以及会隐含哪些权限。角色由这些键构成——beeuni roles create --actions 和 beeuni roles set-actions 使用的正是这些键。别名:beeuni perms。
| 命令 | 作用 |
|---|---|
beeuni permissions ls [--scope account|project] [--area <a>] [--json] |
列出权限目录。 |
beeuni permissions show <action> [--json] |
完整显示一项操作。 |
授权
将一个项目对象分配给主体,即创建一个对象分配。密钥和连接器属于代理,因此将代理分配给某人会授予该代理声明的所有内容。代理默认是封闭的:只有在分配中指定某个成员或其所属群组时,该成员才能访问代理。beeuni access grant --agent <name> 会写入同一行记录。
| 命令 | 作用 |
|---|---|
beeuni grants ls [--json] |
列出对象分配,以及可分配的代理。 |
beeuni grants assign <agent-name> --to <who> [--group] |
将代理分配给用户,或使用 --group 分配给群组。 |
beeuni grants revoke <grant-id> |
撤销一个对象分配。 |
清单验证
| 命令 | 作用 |
|---|---|
beeuni validate [--file <path>] [--json] [--scopes] [--no-dockerfile-lint] |
根据规范架构验证清单,检查每个沙盒 Dockerfile 和代理配置,并检查仓库大小。先解析 beeuni.yaml,再解析 beeuni.toml。退出代码:0 表示有效(可能存在警告),1 表示有错误,2 表示文件缺失。beeuni ship 执行相同的检查。 |
beeuni schema [--version 1|2] [--url] |
打印清单的 JSON Schema。--url 则打印架构 URL。 |
参见清单参考。
仓库大小
会话会根据基础提交中 Git 跟踪的所有文件构建其代理配置。新会话会从自己的检出中获取这些文件,不受大小限制。运行中的会话通过项目快照获取基础分支的更改;Beeuni 云构建的快照压缩后最多为 512 MiB。超过此限制时,会话会继续使用当前运行的配置,直到启动新会话。每个会话也会下载所有文件。beeuni validate 会统计 Git 存储的文件以及下次由 beeuni ship 提交的未跟踪文件;当单个文件达到或超过 10 MiB,或总大小超过 512 MiB 时,会打印警告。Git LFS 文件按其指针计数,因为发布内容仅包含指针。警告会列出最大的文件。此项检查绝不会导致命令失败。
要消除警告:
- 将大型静态资源(视频、图像、数据集、模型权重)移至 S3、R2 或 GCS 等对象存储,或移至 CDN,并在运行时下载。
- 将构建输出(
dist/、out/)添加到.gitignore。 - 对于必须保留在 Git 中但没有代理会读取的路径,将
<path> export-ignore添加到.gitattributes。发布内容和检查都会忽略该路径;目录规则会涵盖其下的所有内容。代理配置目录和beeuni.yaml始终会完整发布。
令牌范围
每个令牌都以 beeuni_pat_ 开头。用户令牌的作用域涵盖你账户中的所有项目。项目令牌的作用域仅限于一个项目,并会自动注入该项目的沙箱中。请参阅完整的令牌系列参考:Session runtime。
退出代码
| 代码 | 含义 |
|---|---|
0 |
成功。 |
1 |
操作失败。诊断信息会输出到 stderr。 |
2 |
标志无效、子命令未知或缺少必需参数。 |