CLI 与示例
常用命令
全局安装后可以直接使用 oneworks;不安装到项目依赖时,用 npx -p <package> <bin> 临时运行对应命令。
如果你更想先拿到一个统一入口,再按命令懒安装对应 runtime,也可以使用 bootstrap:
npx oneworks "读取 README 并总结"npx oneworks webnpx oneworks servernpx oneworks appnpx oneworks app cachenpx oneworks app --no-cache
其中 bootstrap app 会把当前 shell 所在目录传给桌面应用:
同一个目录只会保留一个本机 service,重复执行时会聚焦已有项目窗口
切到另一个项目目录再执行时,已运行的桌面应用会为新目录启动独立 service,并打开新的项目窗口
如果你不是从项目目录启动桌面应用,而是直接双击安装包,桌面端会先要求选择最近项目或手动打开目录
oneworks --helpnpx -y -p @oneworks/cli oneworks --helpnpx -y -p @oneworks/mcp oneworks-mcp --helponeworks:执行一次任务oneworks --resume <sessionId>:恢复已有 CLI 会话;已解析 adapter 和大部分启动参数仍从<project-home>/caches/对应会话读取,但可以额外覆盖--permission-mode/--yolo、--model、--effort、--include-tool、--exclude-tooloneworks-mcp:启动独立 MCP stdio serveroneworks-call-hook:从标准输入读取 hook payload 并执行 hooks runtimeoneworks list/oneworks ls:以 compact 视图列出历史任务缓存oneworks list --view default|full:展示常用列或上下文、PID 与辅助命令列oneworks list --running:只看当前仍在运行的 CLI 会话oneworks clear:清理本地日志与缓存oneworks stop <sessionId>:优雅停止正在运行的 CLI 会话oneworks kill <sessionId>:强制终止正在运行的 CLI 会话oneworks config list [path]:查看配置 section 状态,或读取某个配置子树oneworks config get [path]:读取配置值oneworks config set [path] [value]:写入配置值oneworks config unset [path]:删除配置值oneworks accounts add <adapter> [accountName]:触发 adapter 原生登录流程,并把返回的凭据快照保存到<project-home>/.local/adapters/<adapter>/accounts/<key>/oneworks accounts show <adapter> <accountName>:查看某个 adapter 账号的详情和最新额度摘要(CLI 当前会强制刷新)oneworks accounts remove <adapter> <accountName>:删除某个 adapter 账号在当前 workspace 下保存的凭据快照
这些命令默认以项目根目录作为 workspace。
- 如果显式设置了
__ONEWORKS_PROJECT_WORKSPACE_FOLDER__,会直接使用该目录。 - 如果没有设置,
oneworks/oneworks-mcp/oneworks-call-hook/oneworks-web/oneworks-server/oneworks-client会从当前目录向上探测.oo、.oo.config.*、pnpm-workspace.yaml或 Git 根目录,因此可以在项目任意子目录下启动。 - 配置文件默认会跟随这个解析后的 workspace 根目录读取;如果需要把
.oo.config.*放到别的目录,可以显式设置__ONEWORKS_PROJECT_CONFIG_DIR__。
内建 Skills
@oneworks/cli 会默认注入 companion 插件 @oneworks/plugin-cli-skills,可直接通过 --include-skill 使用:
oneworks-cli-quickstart:介绍oneworks、oneworks list、oneworks --resume、oneworks stop、oneworks kill,以及oneworks config list|get|set|unset的基本用法和输出语义。oneworks-cli-print-mode:介绍--print、--input-format、权限请求、继续会话和submit_input的写法。create-entity:按用户需求创建新的 One Works entity。update-entity:按用户需求更新已有 One Works entity。create-plugin:理解用户想要的 plugin 效果;需求不明确时先列出不确定点让用户确认,再转成 One Works plugin manifest、前端入口、server 入口和验证步骤。
oneworks --include-skill oneworks-cli-quickstart "介绍一下 oneworks CLI 怎么恢复一个会话"
oneworks --include-skill oneworks-cli-print-mode --print "告诉我 print 模式怎么处理权限请求"
oneworks --include-skill create-plugin "做一个插件,给 chat header 加一个截图按钮"参考示例
启动 UI
npx oneworks web如果你在 One Works 源码仓里开发前端,再分别启动本地 server / client:
npx -y -p @oneworks/server oneworks-server --allow-cors
npx oneworks-client从项目目录打开桌面应用
cd ~/work/project-a && npx oneworks app
cd ~/work/project-b && npx oneworks app启动独立 MCP
npx -y -p @oneworks/mcp oneworks-mcp --include-category general,task调试 hooks runtime
printf '%s\n' '{"hookEventName":"Notification","cwd":"'"$PWD"'","sessionId":"debug-hook"}' | npx -y -p @oneworks/hooks oneworks-call-hook执行一次任务
oneworks -A codex --print "读取 README 并给出一个三步改进建议"
oneworks -A claude "读取 README 并给出一个三步改进建议"
oneworks --workspace billing "修复订单状态回滚问题"adapter 参数支持 -A 短写,也接受常见简化值,例如 claude、adapter-codex。
脚本消费 --print 输出时,可以加 --print-idle-timeout <seconds> 作为兜底;如果超过指定秒数没有任何 adapter 事件,CLI 会以非 0 退出。
指定 workspace
大型仓库可在 .oo.config.json 声明 workspaces。指定 --workspace <id> 后,任务会在对应 workspace 目录下启动,并使用该目录自己的配置与数据资产。
oneworks --workspace billing "修复订单状态回滚问题"更多配置见 Workspace 调度。
权限模式默认值
--permission-mode <mode> 会覆盖本次启动的权限模式。未传该参数,或 Web UI 仍处于“默认”模式时,会读取配置里的 permissions.defaultMode,例如 "bypassPermissions"。
--yolo 是 --permission-mode bypassPermissions 的短写,可用于新会话和恢复会话。
恢复会话
oneworks list
oneworks list --view default
oneworks list --view full
oneworks --resume <sessionId>
oneworks --resume <sessionId> --permission-mode bypassPermissions
oneworks --resume <sessionId> --yolo
oneworks --resume <sessionId> --effort high --include-tool read_file说明:
--resume会继续使用缓存里的 adapter、model、workspace 等启动参数。- 如果只想调整下一次恢复时的权限模式,可以单独传
--permission-mode <mode>,或用--yolo切到bypassPermissions;新的模式会用于本次恢复,并写回该会话的 CLI cache,后续继续resume时沿用。
读取配置
oneworks config list
oneworks config get general.defaultModel
oneworks config get models
oneworks config get modelServices.gpt-responses.modelsoneworks config list/oneworks config get默认读取 merged config;显式传--source global|project|user|merged|all可以切换读取来源,其中global/project/user展示对应文件里的原始配置,merged展示最终生效配置,all只用于list。oneworks config set/oneworks config unset默认写入项目配置;显式传--source global|project|user可以选择写入全局、项目或本地配置。- 文本模式默认输出 YAML,适合直接阅读;
--json保留结构化原始结果,适合脚本消费。 oneworks config get models和oneworks config list models在文本模式下会按modelServices展开成service -> models视图,并把models里的 metadata 合进去,避免把稀疏 metadata map 误看成完整模型列表。- 如果需要看原始
modelsmetadata 结构,使用--json。
调试启动耗时
平时不需要打开。排查启动慢时,可以在项目 .oo.dev.config.json 里临时加:
{
"diagnostics": {
"startupProfile": {
"enabled": true,
"log": true,
"thresholdMs": 10
}
}
}也可以用环境变量临时开启:
ONEWORKS_STARTUP_PROFILE=1 ONEWORKS_STARTUP_PROFILE_CONSOLE=1 oneworks "hi"日志会写入当前 workspace 的 project home:<project-home>/logs/<ctx>/startup/。__ONEWORKS_PROJECT_BASE_DIR__ 只影响 rules / skills / plugins 等项目资产目录,不影响 logs / caches / mock home 这类运行态目录。
管理 adapter 账号
npx oneworks accounts add codex
npx oneworks accounts add codex work
npx oneworks accounts show codex work
npx oneworks accounts remove codex work说明:
oneworks accounts add会调用对应 adapter 暴露的账号接入能力;当前内建先支持codex。codex会在隔离 HOME 下执行一次codex login,读取生成的auth.json,再落到<project-home>/.local/adapters/codex/accounts/<key>/。accountName可选;不传时会尽量根据登录后的邮箱或凭据摘要自动生成账号 key。oneworks accounts show当前会强制刷新 adapter 账号详情;如果你只想看 Web UI 的最近快照,配置页会按 adapter 自己的缓存策略展示。- 更完整的 adapter 配置与多账号说明见 Adapter 配置与多账号。