👁️ 320
👍 85
📅 2026-06-13 收录
🔄 2026-06-13 更新

正文内容

codex-runner 技能

描述

使用 Codex CLI 在后台长时间运行编码任务,不受 OpenClaw 会话生命周期限制。

⚠️ 重要:异步执行

该技能立即返回,不阻塞主会话!

任务在后台独立运行,你可:

  • 继续与 OpenClaw 对话
  • 发送新消息
  • 实时查看日志进度

使用场景

  • 需要 Agent 整夜编写代码
  • 长时间运行的大型项目开发
  • 避免因 OpenClaw 会话超时导致任务中断

前提条件

  • 已全局安装 Codex CLI(npm install -g @openai/codex
  • 已配置代理(翻墙)
  • 目标目录需为 Git 仓库(已执行 git init

命令

start

启动 Codex 后台任务(异步执行,不阻塞会话

codex-runner start "实现一个 React TODO 应用" my-task /Users/tianyanan/my-project

参数说明:

  • $1: 任务描述(必需)
  • $2(可选): 任务名称,用于日志文件命名,默认为 codex-task
  • $3(可选): 目标目录路径,默认为当前目录

关键:必须通过 background=true 执行!  

由于 OpenClaw 默认同步等待命令完成,需显式启用后台模式:

# 在 skill 命令中指定 background 参数

或直接使用 sessions_spawn 创建完全隔离的子会话:

# 让 Codex 在独立会话中运行,彻底解耦主会话

status

检查 Codex 进程当前状态

codex-runner status

log

查看指定任务的日志输出

codex-runner log my-task

参数说明:

  • $1(可选): 任务名称,默认为 codex-task

stop

终止正在运行的 Codex 任务

codex-runner stop

推荐方案:使用 sessions_spawn

由于 OpenClaw 主会话中直接调用 exec 会导致阻塞,最佳实践是使用 sessions_spawn 创建独立子会话来运行 Codex

使用方式

由 AI 助手(即我)自动调用 sessions_spawn 启动任务:

# 我将执行如下指令:
sessions_spawn {
  "runtime": "subagent",
  "task": "在 ~/my-project 实现一个简单的 Hello World",
  "label": "codex-hello"
}

示例:启动 Codex 任务

你可以这样说:  
“用 codex 在桌面创建 test 文件夹,里面放一个 hello.txt”

我的处理流程为:

  1. 调用 sessions_spawn 创建独立子会话
  2. 在子会话中执行 Codex 完成对应任务
  3. 主会话立即返回,持续响应你的后续输入

旧版命令(已弃用,仅作兼容参考)

start(不推荐)

# 使用 --dangerously-bypass-approvals-and-sandbox 完全跳过沙箱机制
TASK_NAME=${2:-codex-task}
TARGET_DIR=${3:-.}

nohup bash -c "
  cd '$TARGET_DIR'
  
  export https_proxy=http://127.0.0.1:8118
  export http_proxy=http://127.0.0.1:8118
  
  codex --dangerously-bypass-approvals-and-sandbox exec '$1'
" > ~/.codex-logs/codex-$TASK_NAME.log 2>&1 &

⚠️ 关键参数说明

必须使用 --dangerously-bypass-approvals-and-sandbox 才能向文件系统写入内容:

codex --dangerously-bypass-approvals-and-sandbox exec '任务描述'
参数 说明
--dangerously-bypass-approvals-and-sandbox 完全绕过沙箱与审批流程(强制必需)
exec 非交互式执行模式

⚠️ 注意事项

  • 目标目录必须是 Git 仓库(已执行 git init
  • 启用该参数存在安全风险,请确保在受信、隔离环境中使用

开发任务模板(强烈建议遵循)

建议在任务描述中明确包含标准化开发流程要求:

codex-runner start "
实现一个用户管理系统,包含:
1. 用户增删改查 API
2. 用户列表页面

开发流程要求:
1. 先写单元测试,再写业务代码
2. 编码完成后执行单元测试:npm test
3. 如果单测失败,自动修复直到通过
4. 单测通过后执行构建:npm run build
5. 如果构建失败,自动修复直到通过
6. 单测和构建均通过后,任务才算完成
" my-task /Users/tianyanan/my-project

开发流程规范

步骤 要求
1. 单元测试 必须先编写测试用例,再实现业务逻辑
2. 执行单测 运行 npm testnpm run test
3. 自动修复单测 若失败,持续迭代修复直至全部通过
4. 执行构建 运行 npm run build
5. 自动修复构建 若失败,持续迭代修复直至成功
6. 完成判定 单元测试 + 构建均成功通过,方可标记为完成

监控方法

# 查看 Codex 相关进程
ps aux | grep codex | grep -v grep

# 实时追踪日志(推荐)
tail -f ~/.codex-logs/codex-my-task.log

# 快速检查完成状态(搜索关键标志)
grep "已完成\|build\|test" ~/.codex-logs/codex-my-task.log

日志存储位置

  • 默认路径:~/.codex-logs/codex-.log

测试验证结果

  • ✅ 持续运行稳定可靠
  • ✅ 支持文件系统写入(依赖 --dangerously-bypass-approvals-and-sandbox
  • ✅ 可生成结构完整的 React 项目
  • ✅ 构建流程验证通过

参考信息

  • 方案灵感源自 Eliason 提出的 “Agent 整夜写代码” 实践
  • 测试周期:2026-03-04 ~ 2026-03-05
  • 最近更新:2026-03-05(新增开发流程规范)