@arbol-ai/cli

中文文档
3.43.0发布于 2026/11/07Apache-2.0ES Module近 30 天下载 1.1万

Arbol CLI:来自您终端的Arbol API,其命令由 Cloudflare Forge 从公共OpenAPI 生成.

中文使用文档
文档目录10 节
  1. 简介
  2. 登录
  3. 保存会话和密钥的地方
  4. 机器和操作输入
  5. 发展
  6. 释放
  7. 迁移到CLI 3
  8. 许可证
  9. 验证
  10. 工作人员联系管理

@arbol-ai/ cli (英语)

arbol你终端的Arbol API。 它的命令是由 云浮堡垒 从平台的公开OpenAPI, https://api.getarbol.com/openapi.json,每个请求 穿过 @arbol-ai/sdk。它的版本是铸造, 从2.1.0起(见 释放(三); arbol --version 也命名 API 发布命令 产生者,如 arbol 2.1.0 (Arbol API 1.20261019.4056)。 。 。 .

npm install --global @arbol-ai/cli
arbol --version

它需要26号节点或更新 fetch 财务报告和审定财务报表 Temporal sDK的用途。 同样的命令更新了它. 一个 arbol 安装在 Npm 上的 CLI 之前, 或是先关闭安装 : npm uninstall --global @getarbol/cli,或删除 ~/.local/bin/arbol 财务报告和审定财务报表 ~/.local/share/arbol。 。 。 .

简介

一个剖面图是给Arbol打电话的一种命名方式:登录,或API密钥. 命令使用配置文件 --profile 名字,另一个 ARBOL_PROFILE 名称, 否则默认配置文件; arbol auth use <profile> 变动 默认.

arbol auth login                                  # a login, saved as the default profile
arbol auth login --profile clinic                 # another login, for another account or organization
arbol auth api-key --profile ci < /secure/path/arbol-key
arbol auth profiles                               # * marks the default
arbol auth use ci
arbol visoft connections list --profile clinic
ARBOL_PROFILE=ci arbol sura appointments lookup

给一个命令的 API 密钥, 通过 --api-key-stdin 或者说 ARBOL_API_KEY,胜过每个 配置文件, 如 GH_TOKEN 对 gh:脚本,服务器和CI可以运行而不保存任何东西. 何时 arbol auth login 无 --profile 以他人身份,或以他人身份,或以他人身份, 而不是默认配置文件,它询问登录到哪里:一个新的配置文件(它建议从 (b) 以“组织”代替“概况”,或以“概况”代替“概况”或“概况”(“概况”)arbol auth switch 移动 他们之间。 在剧本中,它一无所获,就要求 --profile 换句话说. --profile <name> 总是保存该配置文件中的登录 .

arbol auth status 使用证书的指纹,以及登录时其组织; arbol auth logout 签名登录, 或忘记配置文件的 API 密钥( 密钥本身有效, 直到它生效) 在Arbol账户中被撤销.

登录

arbol auth login
arbol sura appointments lookup --help
arbol agenda appointments list --limit 25
arbol auth switch [<name|org_…>]
arbol auth status
arbol auth logout

CLI只知道API的起源(https://api.getarbol.com,或者一个 ARBOL_API_URL 名称, 就像MCP客户端所做的:

  1. /.well-known/oauth-protected-resource (RFC 9728) 名称 授权服务器,它自己的元数据名称是它的端点和密钥.
  2. /.well-known/oauth-client/arbol-cli (RFC 7591客户端元数据) 命名 CLI 的公共客户端( 否) ),循环地址返回登录地址,以及需要请求的范围.

登录后打开系统浏览器(Authorization Code with S256 PKCE和回回调, http://127.0.0.1:43817/callback) (中文(简体) ). 当您属于多个组织时,登录页会问 在你签了字后,哪一个. arbol auth switch 列出您所属的组织 : 在切换前,其他任何标志通过单个签注再次输入,它要求没有密码. arbol auth switch <name|org_…> 在不要求脚本的情况下做同样的事情。 本届会议是为 组织已核实的ID标志名称.

要求的瞄准镜是API发布的每一个许可, 因为一个符号的权威是它的 范围与角色权限相交; ARBOL_SCOPES 替换它们。 请求一个 范围并不赋予它.

CLI验证状态,nice和S256PKCE以及ID标志的签名和组织. --no-browser 打印用于手动打开的 URL,但仍使用此机的回回调.

保存会话和密钥的地方

~/.arbol/config.json (mode 0600) 持有简介和默认, 没有秘密。 每个登录 会话和每个保存的 API 密钥都是一个密封文件 ~/.arbol/ (模式0700目录,0600) 档案:AES-256-GCM 在操作系统保存的每人和机器一个随机键下。 简介、发行商、, 客户端,受众,API,用户和组织分区会话,每个文件都与其名称相接. 没有简单的背书.

监督办钥匙
马科斯关键链项 “Arbol CLI”(com.getarbol.cli, (中文(简体) ), session-key),保存于 /usr/bin/security
链接特勤局,通过 secret-tool (包装) libsecret-tools(中文(简体) )
窗口~/.arbol/session-key.dpapi,由 DPAPI 为 Windows 用户保护

操作系统每个命令都要求一个密钥, 当密钥创建时只写一次; a 刷新只重写被封存的文件 。 在 macOS 上, Keychain 信任创建项目的程序 . 来自Homebrew, nvm 或 fnm 的节点是临时签名的,所以使用从节点发出的键链的 CLI 要求 每次更新节点后再次登录密码 . /usr/bin/security 由苹果公司签名并保持信任, 就像它为 gh因此,CLI从来没有问。 喜欢 gh,任何您可以读取密钥的程序 通过它;另一个用户、备份或被窃磁盘不能。 密钥从未出现在命令行中 .

每个新鮮點被锁定到各个过程. 在旋转交换前,密钥环记录 正在进行中标记。 丢失的响应或崩溃需要新的登录, 绝不是盲目重试 前一个刷新符号 。 烂透了 .lock 在确认程序已崩溃后才删除 进程已停止;然后再次登录。 即使远程吊销失败, 也会删除本地证书 并报告这种不确定性。 它不会假装已经发行的代币 立即消失.

机器和操作输入

在Arbol账户中为一个组织创建并显示一次 API 密钥 。 密钥永远不会被接受 作为命令行参数 : arbol auth api-key 从stdin上读取(或要求它而不显示) 检查它与API并封存它; --api-key-stdin 财务报告和审定财务报表 ARBOL_API_KEY 将一个用于一个 单命令而不保存它。 一个被拒绝的密钥永远不会回到登录状态 .

ARBOL_API_KEY="$(cat /secure/path/arbol-key)" arbol visoft connections list
arbol sura appointments lookup --api-key-stdin < /secure/path/arbol-key

命令为 arbol <service> <resource> <verb> [id],行动的公共名称。 服务就是服务 单词:其出版的id没有连字符,所以 salud-total.affiliations.lookup 实值 arbol saludtotal affiliations lookup (和 policia-colombia 实值 policiacolombia) (中文(简体) ). 已公布的编号 仍然工作在您以前打过字的地方 (arbol salud-total …) (中文(简体) ). arbol <service> 列出服务的命令; --help 打印其字段后,每个字段接受的值 默认和示例. --dry-run 打印命令发送的请求(方法、 URL 和正文) 不读证书 或发送任何东西。 删除请求在终端上确认; a 脚本通过 --yes。 。 。 .

每个输入字段都是一面旗 (--integration-id sura),或整个输入来自 --input file.json (单位:千美元)--input - 读取 stdin; 旗帜覆盖其字段; 与 --api-key-stdin,使用一个 存档). CLI在发送前根据操作的精确计划验证输入. 这个 响应的数据被打印为 JSON ; 失败会打印它的代码和请求 ID, 并且, 对于写 没有答案,结果未知, 并退出非零。 即使401年之后 也没有再审过 或 403; 在重复之前核对不确定的文字.

ARBOL_API_URL 选择新配置和 API 密钥的可信非生产部署 ; 必须是 HTTPS 源代码。 签了字的一切都从里面发现了 配置保存它创建时的 API .

发展

bun install
bun run forge       # build the pinned Cloudflare Forge with cargo into .forge/ (once; needs Rust)
bun run openapi     # download https://api.getarbol.com/openapi.json
bun run generate    # src/generated/ from openapi.json with the plugin in generation/plugins/cli.ts
bun run verify      # typecheck and dist/; tests require an explicit human request

src/generated/ 是插件的输出, 未经编辑; 其它所有在 src/ 这是CLI本身. openapi.json 在一代人的时间下下载,但未执行 src/generated/generation.json 用于释放、Forge 承诺和插件的记录.

释放

API的发布通过三个寄存器,每个寄存器由它之前的寄存器开始:

  1. 项目-arbol-出入口 在 https://api.getarbol.com/openapi.json 发送 openapi-release 到项目 -arbol -sdk -js.
  2. 项目- arbol- sdk- js 重新生成 @arbol-ai/sdk 从它,出版它到npm和发送 sdk-release 这里: { "version": "<SDK version>", "openapi": { "release": "...", "sha256": "..." } }。 。 。 .
  3. 给, (中文(简体) ), 生成 openAPI 内容改变时发布 : sHA -256 其犬科JSON没有 info.version (按键排序,无空白;见 generation/openapi-hash.ts,相同的散列 sdk -js计算),比较 与 openapiContentSha256 主语 src/generated/generation.json。当 @arbol-ai/sdk 针头不是主针 否则,运行停止 没有承诺或 发表。 解开指针 @arbol-ai/sdk 准确的说,再生 src/generated/,何时 bun run verify 通行证承诺 Release Arbol API <release> with @arbol-ai/sdk <version> 主要项目和 运行 发布 承诺 bump: minor。 。 。 .

SDK 生成针是版本 sdk-release 名称。 每6小时,用手,生成运行 同样的检查和针头最高 @arbol-ai/sdk 其发表 package.json 说它是产生的 从相同的OpenAPI内容(arbol.openapi.sha256虽无,但以警告而止, 因为SDK是先发布的 它的推力使用组织GitHub App的安装符 (Arbol瓶:变量) ARBOL_BOT_APP_ID 和秘密 ARBOL_BOT_PRIVATE_KEY),故犯罪不断 检查像任何其他.

版本是 semver, 由 Publish 从 npm 上的最高版本计算 (单位:千美元)generation/release.ts:

  • Generate的释放使未成年人长大:2.1.0,然后是2.2.0. 第一个2.x释放是2.1.0;在此之前 版本为构建日期和时间(1.YYYYMMDD.HHMMSS) (中文(简体) ).
  • OpenAPI 不携带的对 CLI 自身代码的更改,通过运行 Publish 发布 手放在主线上。 内容 bump 输入 patch (默认), minor 或者说 major。 。 。 .

发表 package.json 记录 OpenAPI 命令来自: "arbol": { "openapi": { "release": "<info.version>", "sha256": "<content hash>" } }npm 接收 与组织的软件包 NPM_TOKEN。软件包访问在源寄存器时保持公开 这是私人的。 Npm不支持私有源寄存器, 从而禁用证明.

迁移到CLI 3

CLI 3使用SDK 5和目前的公有所有者合同. SURA 指定为使用 arbol sura appointments lookup;议程预订发现有单独的 booking-locations, (中文(简体) ), booking-offerings, (中文(简体) ), booking-requirements, (中文(简体) ), booking-slots 财务报告和审定财务报表 nearest-booking-slots 资源。 账户用途 account organization get 财务报告和审定财务报表 account organization update。命名的资源标识符和 JSON 请求 字段遵循每个命令的帮助.

这是针对不兼容命令和要求更改的故意大放出. 自动生成不检测相容性或选择主版本; 在发布前审查所有者合同的变更.

许可证

Apache 许可证 2.0

验证

bun run verify 检查类型并构建 CLI 不执行测试。 测试是 手动: 运行 bun run test 或者说 bun run verify:with-tests 只有在人类要求的时候 运行。 自动校验,生成和发布使用静态路径.

工作人员联系管理

经授权的工作人员用户可以管理与 arbol account connections create, (中文(简体) ), update <connectionId>, (中文(简体) ), delete <connectionId>, (中文(简体) ), discover 财务报告和审定财务报表 refresh-tools <connectionId>,使用 --input 为主人的严格JSON身体。 这些隐藏的REST命令使用捕获的账户合同,而不是公共的SDK或MCP认证录入. API需要真正的用户和 account:connections:operate; 本地拒绝一个 API- key 配置文件 。 请求发送一次,在重复之前必须检查一份不确定的书面. --dry-run 是本地的,不认证或保存证书.

证书捆绑由Account Vault封存. e-Oficlinic在解剖学上既采用登录阶段,又采用源公司/站点/IPS选择;Sanitas采用其门户登录和文件类型。 永远不要在仓库或 shell 历史中放置真实的证书 。 刷新这些合同 从干净的业主退房 bun scripts/update-account-operator-contracts.ts <account-repository>。抓取的文件记录所有者的承诺和来源散列.

版本与发布记录

@arbol-ai/cli 共发布 69 个版本,首次发布于 2026/10/19;过去 12 个月发布了 69 个版本。

版本发布日期距今
3.43.0latest2026/11/07今天
3.42.02026/11/071 天前
3.41.02026/11/071 天前
3.40.02026/11/061 天前
3.39.02026/11/061 天前
3.38.12026/11/052 天前

关于 @arbol-ai/cli 的常见问题

@arbol-ai/cli 是什么?

Arbol CLI:来自您终端的Arbol API,其命令由 Cloudflare Forge 从公共OpenAPI 生成.

如何安装 @arbol-ai/cli?

在项目目录运行 npm install @arbol-ai/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 arbol,可以用 npx arbol 直接运行。

@arbol-ai/cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/arbol-ai__cli 是否存在。

@arbol-ai/cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@arbol-ai/cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=26。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@arbol-ai/cli 可以商用吗?

@arbol-ai/cli 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@arbol-ai/cli 的下载量有多少?

根据 npm 官方下载统计,@arbol-ai/cli 在 2026/10/07 – 2026/11/05 这 30 天内被下载 10,951 次,日均约 365 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@arbol-ai/cli 还在维护吗?

最新版本 3.43.0 发布于 2026/11/07(今天);至今共发布 69 个版本,其中过去 12 个月发布了 69 个;首次发布于 2026/10/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。