@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 fromoar 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写成anoar-voyage/3JSONL登录 两种输出方式;日志总是记录每条记录)。
没有记录的竞选是一件奇闻轶事。当一场赛跑被当作证据时
(验证文档声明,重现bug,检查运行时的活动
行为),通过 --record 因此,索赔指向一个任何人都可以阅读的日志:
- 运行现场,不要推断。 关于运行时行为的声明由 运行它,而不是通过阅读代码或记住上次。
- 记录证据。 保存航行日志,并在航海日志中引用 结论,所以“它有效”是以后可以检查的。
- 对你看到的进行分类。 如果现实与文件不符,决定哪一个
移动:运行时改变了,所以修复了文档;还是划桨退步了,所以归档了
Bug和pin与测试(
docs/development.md有测试层)。 - 报告真实的结果。 一个失败或流产的转弯是一个发现,
没有什么东西可以重试,直到它看起来干净:退出代码和
运行时的
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连接可以产生部分目录。看到
库存合同.