/codex-solo

codex go go go don't stop

Primary LanguageShellGNU Affero General Public License v3.0AGPL-3.0

Codex SOLO

Codex SOLO

Release CI Downloads Stars License

功能概述:自动连续推进,直到“成功检查”通过。成功检查可脚本化(命令/脚本返回 0、测试全绿、文件/输出匹配等);支持自启动、轮询间隔、成功后退出、多实例配置。

快速入口

语言 / Languages

联系 / Contact

Quick Demo

TUI Demo (GIF)

静态备选(若 GIF 未显示):assets/demo.svg

Quick Start

  • 构建:cd vendor/codex/codex-rs && cargo build -p codex-cli --release
  • 运行:./vendor/codex/codex-rs/target/release/codex
  • 开启 SOLO:在 TUI 输入 /solo,或设置环境变量 CODEX_SOLO_AUTOSTART=1
  • 多实例配置:为不同控制台设置 CODEX_SOLO_CONFIG=/path/to/solo.json

Minimal Config (.codex-solo.json)

{
  "kickoff_prompt": "实现并让测试通过",
  "continue_prompt": "继续",
  "success_cmd": ["pytest", "-q"],
  "exit_on_success": true,
  "interval_seconds": 30
}

或使用脚本化证明(退出码为 0 代表成功):

{ "success_sh": "test -f FINISH.txt" }

Key Options

  • success_cmd / success_sh:成功由退出码 0 判定
  • done_token:默认 [SOLO_DONE];设为 "" 可避免引导模型输出标记
  • exit_on_success:成功后退出 CLI
  • interval_seconds:自动继续之间的延迟

Downloads

Docs

录制与更新演示(可选):docs/DEMO_CAPTURE.md

常见场景(Common Scenarios)

  • 测试驱动(Python 示例)
    {
      "kickoff_prompt": "补全实现并让测试通过",
      "success_cmd": ["pytest", "-q"],
      "continue_prompt": "继续(修到全绿)",
      "exit_on_success": true,
      "interval_seconds": 30
    }
  • 测试驱动(Node.js / Jest 示例)
    {
      "kickoff_prompt": "完善实现并让 Jest 测试通过",
      "success_cmd": ["npm", "test", "--silent"],
      "continue_prompt": "继续(直到所有测试通过)",
      "exit_on_success": true,
      "interval_seconds": 30
    }
  • 文档构建/发布门禁(MkDocs 示例)
    {
      "kickoff_prompt": "完善文档并保证可构建",
      "success_sh": "mkdocs build >/dev/null && test -f site/index.html",
      "continue_prompt": "继续(直到构建产物存在)",
      "exit_on_success": true
    }
  • 代码健康(Rust 示例)
    {
      "kickoff_prompt": "修复警告并通过测试",
      "success_sh": "cargo clippy -- -D warnings && cargo fmt -- --check && cargo test -q",
      "continue_prompt": "继续(直到无警告且测试通过)",
      "exit_on_success": true
    }
  • 测试驱动(Go 示例)
    {
      "kickoff_prompt": "补全实现并通过 go test",
      "success_sh": "go test ./... -count=1 >/dev/null",
      "continue_prompt": "继续(直到所有包测试通过)",
      "exit_on_success": true
    }

更多协作 / 高级场景

License

LICENSE