osmosis -h 查看所有可用命令。每个 sub-command 都支持 -h / --help。
全局输出 flags --json 和 --plain 位置无关 —— 在 command 之前或之后均可使用:
--json 便于自动化和 AI agents。使用 --plain 获得低噪声 shell 输出。
quickstart
交互式设置:登录、clone 您的 workspace,并获得第一段 agent prompt。
Wizard 会认证 CLI、解析要使用的 workspace、等待 workspace repository 连接并 clone 它、报告 billing 是否已设置,然后询问您想做什么。训练模型、在数据集上评估模型和运行 benchmark 这三项都会针对该目标打印一段 agent prompt;选择先探索则改为打印文档链接。
在 workspace clone 内运行
osmosis quickstart 时,wizard 会通过 git remote 识别出该 workspace。在空目录或无关目录中运行时,它会列出您所属的所有 workspaces 并请您选择一个。使用 --workspace <name> 可跳过选择器,直接按名称指定 workspace。当您属于多个 workspaces 时这会很有用。
它可以安全地重复运行:每一步都会先检查当前状态再做修改,因此对已经配置好的 workspace,它会给出一份全部通过的检查报告,然后直接询问您接下来想做什么。从空目录再次运行时,它会复用为该 workspace 记录的上一次 clone 路径(前提是该路径仍然存在)。Wizard 需要交互式终端,且只以 rich 输出模式运行,因此无法配合 --json 或 --plain 使用 —— 它自动完成的手动步骤参见 Onboarding。
auth
管理 CLI 认证。osmosis auth whoami 时,CLI 也会解析已链接的 Platform workspace,并在 --json 中作为 workspace 对象(id、name、role)返回,或在普通输出中以 Workspace 和 Role 行显示。在 workspace repository 之外,或该仓库未链接到 Platform workspace 时,workspace 为 null,其余输出不变。该命令始终会向 Platform 校验本地凭证或 OSMOSIS_TOKEN,因此需要网络连接;未登录或 session 过期时会以 AUTH_REQUIRED 失败。
doctor
检查并可选修复 workspace directory scaffold。
当您已登录且 workspace directory 的
origin remote 连接到 Platform 时,doctor 也会报告已链接的 workspace(Linked workspace: <name>,在 --json 中作为 workspace resource 字段)。该查询为尽力而为 —— 离线或未登录时该字段为 null,doctor 仍可正常工作。
template
从 Osmosis workspace template catalog 添加 starter rollouts。template list
template apply
rollout
创建本地 rollout scaffolds,并列出已同步 rollouts。rollout init
rollouts/<name>/main.pyrollouts/<name>/pyproject.tomlrollouts/<name>/README.mdconfigs/eval/<name>.tomlconfigs/training/<name>.toml
rollout list
eval
提交并管理 evaluation runs,并在本地运行 LLM-as-judge rubric 评分。eval submit
从configs/eval/ 下的 TOML config 提交一次 evaluation run。平台会克隆由 origin remote 标识的 workspace repository,并在服务端运行 rollout,因此请在提交前 push commits。
[secrets].required 中的每个名称按以下顺序解析:--secrets-file、CLI 进程环境变量、已有 personal 或 workspace secret,最后才是在 stdin 为 TTY 时显示的隐藏 prompt。已有存储值由服务端解析。通过文件、环境变量或 prompt 在本地提供的值会随本次提交的 TLS 请求发送,但不会加入 Osmosis secret store 或持久化 run config,因此后续运行仍需重新提供。在非 TTY 环境下,经过 stored-secret 检查后仍未解析的名称会一次性报告,便于 CI 展示完整缺口。详见 [env] 和 [secrets]。Config 值来自本地 TOML 文件。Rollout 代码来自已同步的 workspace repository。使用
[experiment].branch 或 [experiment].commit_sha 选择代码来源;二者互斥。eval list
列出当前 workspace repository 的 evaluation runs,包含每次 run 的 status、平均 reward 和进度。eval info
显示某次 evaluation run 的详细信息、结果与 metrics。
详情字段显示 name、status、进度(已完成行数和百分比)、耗时、pass rate、tokens 使用量、提交与完成时间,以及该 run 使用的 dataset、model 和 rollout。其后是两个 section:
- Configuration — entrypoint、解析后的 config 值(
limit、n、batch_size、pass_threshold、各项超时)、branch、短 commit SHA、已解析的 secret scope,以及[env]键。 - Results — graded、passed、failed、skipped 计数,pass 阈值,reward 统计(mean、std、min、median、max),以及 pass@k。
eval info 只报告聚合结果。平台日志请使用 eval logs,逐行 trajectory、artifact、metrics 和日志请使用 eval download。
对于已完成的 run,eval info 还会从平台拉取 metrics(耗时、pass rate、tokens 使用量、reward 统计、pass@k),并导出为 JSON:
- 在 rich 模式下,若 metrics 可用,CLI 会默认将其保存到
.osmosis/evals/<name>/metrics.json。 - 在 JSON 或 plain 模式下,使用
-o/--output指定 run 输出根目录;CLI 会在该目录下写入metrics.json。 - CLI 会自动创建上级目录。
- 若 metrics 尚不可用(例如 run 仍处于 pending 状态),CLI 会打印提示,而不会写入文件。
-o / --output 现在指向 run 输出根目录,而不是 metrics 文件名。.osmosis/metrics/ 下的旧文件不会被删除——在新布局下重新运行 eval info 后,请手动清理。eval download
将 evaluation run 的输出(metrics、trajectories、artifacts、logs)从平台下载到本地磁盘。
文件会落到一份固定的、按 run 划分的目录结构下,便于重复运行时断点续传:
- 本地大小与平台 manifest 一致的文件会被跳过,除非传入
--overwrite。因此重新执行命令只会拉取缺失或未完成的文件。 - 总下载量超过 100 MiB 时需要确认;在脚本中可用
--yes跳过提示。 - 预签名 URL 会按批请求,最多同时下载 8 个文件。每个文件先写入
*.partial,在校验大小后原子性移动到位。 - 失败的文件会带指数退避重试。若仍有文件失败,CLI 会列出每个失败路径并以 partial 状态退出——再次运行命令即可只重试缺失的部分。
- pending 状态的 run 会提前失败并给出明确提示;平台负责权威的路径校验。
eval stop
停止一次 pending 或 running 的 evaluation run。eval logs
按时间顺序(从最早开始)显示 evaluation run 的最近生命周期日志。用于诊断失败的运行。
当存在更早的条目时,
--json 输出会包含非 null 的 next_cursor。将其传给 --cursor 即可继续向前翻页。
eval rubric
对 JSONL conversation 文件在本地运行 LLM-as-judge evaluation。该子命令不需要 workspace directory 或平台认证,也不会运行 rollout。benchmark
查看当前 workspace 中的托管 benchmark,并提交、查看和管理 benchmark runs。benchmark list 和 benchmark info 作用于 benchmark 本身,即 workspace 列表和单个 benchmark 的页面。针对单个 run 的命令位于 benchmark runs 之下。
benchmark list
列出已经添加到当前 workspace 的 benchmark。
表格与 Platform 的 benchmarks 页面一致:Name、对 shell 友好的 Key、Last Run、Tasks 和 Added By。Last Run 显示最新 run 的状态、距今时长和名称(
Finished · 2d ago · brave-otter)。key、区分大小写的准确名称和 ID 都可用于 [experiment].benchmark。JSON 列表项包含 run_count、running_count、last_run_at、last_run_status、last_run_name 和 creator_name。
Harbor registry benchmark 在被添加后,其 task 列表才会从 registry 分页同步进来。同步完成前,Last Run 显示同步状态而不是 run(Syncing · 412 / 500 tasks),Tasks 列留空,并且无法针对它提交 run。同步失败的 benchmark 会在 Last Run 中说明原因,在 Tasks 列显示 unavailable,并返回 sync_error;请在 Platform 的该 benchmark 页面上重试同步。返回的 platform_url 会打开该页面,其中包含它的 leaderboard 和 runs。
benchmark info
显示 benchmark 的摘要、leaderboard 和 runs。
普通输出先显示 benchmark 摘要(source 的上游页面地址、runner、task 和 category 数量、命名 task set、harness 与 judge 要求,以及 pass threshold),随后是该 benchmark 的 leaderboard 和 workspace 在其上的 runs 表格。
--limit 和 --all 作用于 runs 表格。若某个 benchmark 的公开分数是在特定 harness 上测得的,该 harness 会作为默认值一并显示。LLM Judge 行在由 run 选择 judge model 时显示 Required (default: <model>),在 adapter 固定自身 grader、run 只需提供 judge_api_key_secret 时显示 API key only (pinned grader),在 benchmark 不使用 judge 时显示 –。JSON 输出还会包含完整 task manifest 和 leaderboard 数组:
leaderboard 条目包含排名和 tied 标志(当配对检验无法将该 entrant 与排名第一的 entrant 区分时置位,此时它与其并列第 1)。它还会给出 task set(full 或 parity)、harness 和 model,以及产生该成绩的 run 的 id、name 和 platform_url。随后是五项排序指标:带置信区间的 pass_at_1、pass_at_k、按 task 计的 cost_per_task、mean_duration_seconds 和 tokens_per_task。这与 Platform leaderboard 的排序指标相同。
JSON manifest 中的每个 task 都有 difficulty 字段,值为 easy、medium、hard 或 null。null 表示 source 未提供难度,客户端绝不能自行推断。
对于 HLE,benchmark info 还会把 parity 标记为推荐的命名 task set。Config 中省略 [tasks] 会选择完整 benchmark;如需子集,请使用 task_names、categories 或列出的 task_set。
benchmark submit
从configs/benchmark/ 下的 Osmosis TOML config 提交 benchmark run。
[experiment].benchmark 指定的 benchmark 必须已经添加到当前 workspace。命令会在提交前预览选中的 tasks、agents、尝试次数、并发数和解析后的 secret scopes。[secrets].required 名称使用与 eval 和 training 相同的文件 → 进程环境变量 → 已存 personal/workspace secret → 隐藏 TTY prompt 顺序。本地提供的值会标记为 Run,并随本次提交的 TLS 请求传输,但不会加入 Osmosis secret store 或持久化 run config;已存值由服务端解析。其他所有 secret 引用(model 的 api_key_secret、harness_api_key_secret、judge_api_key_secret、[verifier].required)必须已存在于 workspace 或 personal scope 中。结果包含生成的 run 名称、task 数量、状态和 platform_url。
CLI workflow 参见 Benchmarks,完整 TOML schema 参见配置文件。
benchmark runs list
列出当前 workspace 的 benchmark runs。表格与 Platform 的 runs 表格一致:Name、Status、Progress、Benchmark、Agents、Best Pass@1、Submitted 和 Submitted By。benchmark runs info
显示 benchmark run 的配置、agents、进度、result totals 和 metrics。
摘要显示状态、进度、时长、best pass@1 和提交信息。Agents 部分按 run 页面 Agent Results 表格的方式为每个 agent 打分:排名、带区间的 pass@1、最深的 pass@k,以及按 task 计的 cost、time 和 tokens。Results totals 显示各类结果数量、input 与 output token,以及 LLM Cost;后者是使用您自己 provider key 产生的模型花费,不由 Osmosis 计费。结果中包含
platform_url,可用于在 Platform 中打开该 run。
benchmark runs logs
按时间顺序(从最早开始)显示 benchmark run 的最近生命周期日志。可用于监控进度和诊断失败。
当存在更早的条目时,
--json 输出会包含非 null 的 next_cursor。将其传给 --cursor 即可继续向前翻页。
benchmark runs stop
停止 pending、queued 或 running 状态的 benchmark run。benchmark runs download
下载 benchmark summary metrics、task-level results、result artifacts 或 logs。
下载使用固定的、按 run 划分的目录结构:
--overwrite,CLI 会跳过本地已完整下载的文件;未完成的下载会先写入临时文件再原子性移动到位。若重试后仍有文件失败,CLI 会报告这些文件;再次运行同一命令即可只获取缺失或未完成的文件。
pending 和 queued 状态的 run 尚无可下载输出。下载 running 状态的 run 会得到当前快照;使用 --overwrite 可刷新本地已有文件。
secret
管理 Platformenvironment_secret records。Train 和 eval config 通过 [secrets].required 引用这些 records。Benchmark config 会引用 model (api_key_secret)、harness (harness_api_key_secret) 和 judge (judge_api_key_secret) records,以及 [verifier].required 中列出的所有数据集校验器 records。Osmosis 从不向 CLI 返回 secret 值——这些命令只显示或接受 names 和 metadata。值通过隐藏的交互式 prompt 或具名环境变量读取,绝不通过明文命令行参数传入。
每个 secret 都有 scope:
- Workspace secrets 在 workspace 内共享,创建、更新或删除需要 admin 或 owner 角色。
- Personal secrets 是您个人私有的。当 workspace 与 personal secret 同名时,运行时使用您的 personal 值。把 personal secrets 用于覆盖,例如替换自己的 provider API key 而不影响队友。
^[A-Z][A-Z0-9_]*$(SCREAMING_SNAKE_CASE)。
secret list
列出当前 workspace 中您可见的 secrets(只显示 names 和 metadata,从不显示值)。
输出包含一列 Scope,标记为 Workspace 或 Personal。
secret set
创建或更新(upsert)一个 secret。CLI 从--env VARNAME 指定的环境变量读取值;若未指定该 flag,您在隐藏的交互式 prompt 中输入。在 --json 或 --plain(非交互)模式下,您必须传入 --env。
secret delete
在指定 scope 中删除一个 secret。除非您传入--yes,CLI 会提示确认。
dataset
管理当前 workspace repository 的平台数据集。--overwrite 替换它(旧记录会被软删除)。
使用 osmosis dataset logs <name> 诊断失败的上传。--limit 接受 1–200 条(默认:50)。当存在更早的条目时,--json 输出会包含非 null 的 next_cursor;将其传给 --cursor 可继续向前翻页。
osmosis dataset upload 在非交互模式下(--json、--plain 或通过管道传入 stdin)必须显式传入 --yes(-y)。即使带上 --overwrite,缺少 --yes 也会抛出 INTERACTIVE_REQUIRED。在 CI 任务和脚本化上传中加上 --yes 即可跳过确认提示。train
提交并管理当前 workspace repository 的训练任务。train submit
Config 值来自本地 TOML 文件。训练代码来自已同步的 workspace repository。
[secrets].required 名称使用 eval submit 中记录的文件 → 进程环境变量 → 已存 personal/workspace secret → 隐藏 TTY prompt 解析顺序;本地提供的值会随当前 TLS 请求传输,但不会加入 Osmosis secret store 或持久化 run config。train info
current_step / total_steps 及完成百分比)和最新的 reward。在 rich mode 下,metrics 默认保存到 .osmosis/metrics/。
train logs
按时间顺序(从最早开始)显示 training run 的最近生命周期日志。用于诊断失败或崩溃的运行。
当存在更早的条目时,
--json 输出会包含非 null 的 next_cursor。将其传给 --cursor 即可继续向前翻页。
其他 train 命令
train list 会显示每个 run 的 status、当前 step / 总 step 以及最新的 reward。
model
管理 base(基础)models 和由 training runs 产生的 LoRA models。部署 LoRA model 即可将其用于 inference。model list
以两个独立分页的部分列出当前 workspace 的 base models 和 LoRA models(先 base,再 LoRA)。base 表显示 Name、Created、Created By。LoRA 表显示 Name、Base Model、Training Run、Checkpoint Step、Training Reward、Created。当 deployment info 可用时,LoRA 表还会显示 Deployment Status,并在下方显示部署配额汇总(例如2 of 5 inference deployments used)。
--limit 和 --all 对每个列表独立生效,每个列表也都各自携带分页游标(next_offset)。
--json 输出对两个列表分别使用不同的 key,结构本身即可表明各列表的归属:
active_deployments / max_active_deployments 配额字段仅在 --type all 和 --type lora 中出现,--type base 不包含。
model info
显示单个 LoRA model 的详情:base model、training run、checkpoint step、training reward、Hugging Face 导出状态,以及 deployment info 可用时的部署状态。model deploy
按名称部署或重新激活 LoRA model。model undeploy
将 LoRA model 的部署切换为 inactive(幂等操作)。该 LoRA model 仍保留在 training run 历史中。独立的
osmosis deployment、osmosis deploy 和 osmosis undeploy 命令已移除。请改用 osmosis model deploy <lora-model> 和 osmosis model undeploy <lora-model>。upgrade
将 CLI 自升级到 PyPI 上发布的最新版本。pip、pipx 或 uv tool),并运行相应升级命令。