@botiverse/oar-cli

中文文档
0.81.0发布于 2026/11/01Apache-2.0ES Module构建来源已验证

用于使用ar控制和观察代理运行时的命令行接口

中文使用文档
文档目录4 节
  1. 命令
  2. oar run :运行和验证入口点
  3. 这个 oar-voyage/3 格式
  4. 本地库存

@botiverse / oar-cli

命令行接口 @botiverse/oar. 它安装了 oar 无需向仅使用该库的应用程序添加CLI依赖项即可执行。

npx @botiverse/oar-cli list
oar installation codex
oar orient claude codex --depth account --json
oar usage claude
oar models claude
oar upgrade --check
oar login claude
oar logout claude
oar run claude "What does this repo do?"

命令

注册的运行时是ar的 defaultRuntimes光标,表示进入CLI界面 将自身添加到 @cursor/sdk 它依赖于1.1.0和社区 运行时间(Morph先生)来自 @botiverse/oar/community (src/runtimes.ts)。 带有可选参数的命令 [runtime] 覆盖每个注册的运行时 当省略时(或 all). 一个运行时,其探测或 读取失败(超时,网络错误)报告其 error 代替 结果,其余的仍然报告,退出码为1。

  • oar orient [runtime...]:一个有界快照,带 --depth local (默认), account,或者 models. 本地跳过未经证实的本地认证读者;更深层次的读 可以刷新凭据,运行关键命令和加载可信配置。 --json 保存完整的证据; --customization 选择本地 空目录中的库存,以及 --timeout <ms> 整个的边界 阅读。与每运行时查询命令不同,部分快照退出0;无效的 参数或被拒绝的调用失败。看到 取向.
  • oar list:已注册的运行时及其功能。
  • oar installation [runtime] (别名 detect):探针本地安装 和版本,没有帐户或使用I/O。 shadowed 的其他副本 在找到的命令之后的PATH上的命令,它永远不会运行。
  • oar usage [runtime]:每个可用安装的帐户使用情况。
  • oar models [runtime]:型号,每个可用的安装都可以正常运行 现在(包括登录状态、计划和配置的提供程序)。第一个 运行时后的列是 id 传递给 oar run --model, (default) 标记会话在未设置时运行的模型, * 这个 默认工作级别和服务层,以及 (disabled: reason) 一个模型 运行时列表,但不会按原样运行。 --cwd <dir> 会话将在项目配置中运行的目录列表 可以改变列表;它从这里开始运行,所以只用a 您信任的目录); --json 打印 ListModelsResult 每运行时, --timeout <ms> 限制每个查询。
  • oar run <runtime> <prompt>:在一个新鲜的(或) --resumed) 会议并显示其进展; 下面.
  • oar upgrade [runtime]升级每个可用的安装 运行时自己的更新程序,一次一个; --check 只报告版本 更新程序会安装, --json 打印报告; --timeout <ms> 限制每个运行时的检查及其更新程序的运行。退出码为1 升级失败或版本未更改,或者运行时可以 不被探查。看到 运行时更新.
  • oar login <runtime>:通过运行时自己的登录登录。它打印 登录URL或设备代码,并从stdin中读取粘贴的代码 当运行时请求时,返回它;ctrl - c取消。 --status 只有 报告每个运行时(或命名的运行时)是否已登录; --json 将事件、提示和结果(或状态报告)打印为JSON; --timeout <ms> 限制登录(或每个状态查询)。退出密码是 登录时为0,取消时为130,否则为1。看到 运行时登录.
  • oar logout <runtime>:通过运行时自身的注销记录运行时退出。它 打印 logged out 当运行时的状态读取登出(或者, 当状态无法判断时,运行时报告成功);状态仍然读取的环境中的API密钥 still_logged_in. --json 将结果打印为JSON, --timeout <ms> 限制登出。注销时退出码为0,否则为1。
  • oar mcp通过工作室的MCP服务子特工,所以特工(claude, codex, 任何MCP客户端)都可以将任务委托给其他运行时: run 等待。 代理的, spawn / send / wait 并行工作,和 runtimes, list, interrupt 和 close 完成工具集。国旗: --runtimes <ids> (逗号分隔;默认为全部), --max-running <n> (默认4), --max-depth <n> (默认1:子代理不生成), --cwd <dir> (对于没有命名的子代理), --log-dir <dir> (每 子代理人的记录(如划桨航行日志)。 run, wait 和 list 返回 具有输出模式的结构化对象,以及与文本相同的JSON (形状)。 子代理以完全权限运行。codex代理启动MCP服务器 一个减少的环境,所以给它 oar 条目 env_vars = ["OAR_SUBAGENT_DEPTH"] 使嵌套限制保持不变。看到 子代理.
  • oar skills|commands|mcps|tools [runtime]本地清单,见 下面.

oar run:运行和验证入口点

默认情况下 run 打印命名会话(id)的起始行 --resume 需要; [resumed <id> …] 在恢复运行时)和模型中,服务 运行时在打开时报告的层和工作量,当它执行时 model() / serviceTier() / effort() 折叠,从来没有旗帜回响)。 然后打印会话的可读进程 events()辅助文本逐字拼接成块 通过 coalesceText),其他事实用括号括起来 ([compacting: threshold], [compacted] 或者 [compaction failed] reason, [retry 2/3] reason, [waiting for app: type], [task shell started])。 回合开始、使用情况、型号、服务层和工作报告、本地用户 消息回显,排队,撤回和丢弃输入,任务更新,工具 输入和进度delta以及桨对应用程序请求的自己的回答打印 没有(完整的映射) src/progress.ts):

[session 01a0e982-… · model gpt-6-luna · effort low]
[thinking] The user wants...
[Running command] cat package.json
[Ran command] (0.4s)
The repo is a pnpm workspace...
[turn completed]

只有在转弯完成时退出代码才为0。第一个Ctrl-C中断 该转弯和出口130;第二个程序立即处理会话。这个 进程在会话被处置后最多一秒钟结束,即使在 运行时留下句柄(@cursor/sdk 1.0.35 ~ 1.0.37保持24小时 计时器为每次shell调用移动到后台; src/exit.ts)。

国旗:

  • --model <model>:运行时本地模型标识符。
  • --effort <level>:运行时本地推理工作级别,是 模型的水平 oar models (SessionOptions.effort). 运行时 将运行另一个级别,或没有,拒绝打开,和 run 出口1 与运行时的单词(claude applies effort medium … although bogus was requested)。
  • --service-tier <tier>:本地服务层ID from oar models,或者 default 显式清除一个层。申请和检查在开放,包括 重新开始。食典委使用 priority (不是 fast 别名)或 flex;克劳德列表 fast 仅用于支持模型。其他运行时拒绝该选项。
  • --resume <sessionId>:恢复上一次运行的runtime-native会话 印刷,与新鲜的溪流(SessionOptions.resume); 搭配一个 不同的 --model / --effort 在转弯之间切换。
  • --image <file...>:发送图片文件时提示(png, jpeg, gif, Webp)作为运行时自己的图像输入(InputOptions.images); 一个运行时 没有图像输入拒绝提示。
  • --json:打印会话记录(RawEvents)作为JSON行 进度(一字不差的框架) native 有效载荷和桨 events(加上运行的请求/响应记录),以及最终的 {"outcome": ...} 线。
  • --record <file>也可以把run写成an oar-voyage/3 JSONL登录 两种输出方式;日志总是记录每条记录)。

没有记录的竞选是一件奇闻轶事。当一场赛跑被当作证据时 (验证文档声明,重现bug,检查运行时的活动 行为),通过 --record 因此,索赔指向一个任何人都可以阅读的日志:

  1. 运行现场,不要推断。 关于运行时行为的声明由 运行它,而不是通过阅读代码或记住上次。
  2. 记录证据。 保存航行日志,并在航海日志中引用 结论,所以“它有效”是以后可以检查的。
  3. 对你看到的进行分类。 如果现实与文件不符,决定哪一个 移动:运行时改变了,所以修复了文档;还是划桨退步了,所以归档了 Bug和pin与测试(docs/development.md 有测试层)。
  4. 报告真实的结果。 一个失败或流产的转弯是一个发现, 没有什么东西可以重试,直到它看起来干净:退出代码和 运行时的 turn_ended 日志中的事件说明了发生了什么。

这个 oar-voyage/3 格式

--record 每行写入一个JSON对象,由 kind。这个 定义并拥有格式 @botiverse/oar,它将导出该行 建筑商和 openVoyage 记录器;其他工具(如 oar-coxswain 驾驶舱)可能会写 或者从消费者的角度来解读。

  • 第1行总是标题: {"kind":"header","format":"oar-voyage/3","runtime","model?","effort?","serviceTier?","cwd","sessionId","startedAt","recorder"} (model, effort 和 serviceTier 当未请求时省略; recorder 写出作者的名字,例如: oar-cli/<version>)。
  • {"kind":"record","record":{...}}:一个 RawEvent 逐字,没有 过滤或重新时间戳。人工输入已经在流中作为 request 记录,所以没有单独的提交行;这个 seq 在 每条记录都是顺序。
  • {"kind":"end","at","reason"}:永远是最后一行;没有它的木头 是截断的捕获。

所有时间戳都是同一时钟上的Unix纪元毫秒 记录的 receivedAt. 行按照到达顺序同步写入,所以 崩溃运行仍然会留下一个可读的前缀。

本地库存

oar skills codex --cwd /path/to/project
oar commands pi --cwd /path/to/project
oar mcps claude --cwd /path/to/project --timeout 15000
oar tools pi

每个命令打印JSON。 --cwd 默认为当前工作目录; --timeout <ms> 每个运行时的边界。这些都是独立发现 查询:没有检查现有的代理,也没有发送模型提示 本机启动可以加载扩展并连接已配置的MCP服务器。检查 kind, view 和 partial 在显示结果之前: mcp-only 不包括 内置工具,不支持的查询不是空列表,以及挂起的或 失败的MCP连接可以产生部分目录。看到 库存合同.

版本与发布记录

@botiverse/oar-cli 共发布 144 个版本,首次发布于 2026/08/26;过去 12 个月发布了 144 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.81.0latest2026/11/012 天前
0.80.22026/10/313 天前
0.80.12026/10/313 天前
0.80.02026/10/313 天前
0.79.02026/10/303 天前
0.78.02026/10/304 天前

关于 @botiverse/oar-cli 的常见问题

@botiverse/oar-cli 是什么?

用于使用ar控制和观察代理运行时的命令行接口

如何安装 @botiverse/oar-cli?

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

@botiverse/oar-cli 支持 TypeScript 吗?

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

@botiverse/oar-cli 支持 ESM 还是 CommonJS?

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

@botiverse/oar-cli 需要什么版本的 Node.js?

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

@botiverse/oar-cli 可以商用吗?

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

@botiverse/oar-cli 还在维护吗?

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