Skip to content

codex-cli driver: interactive/chat broken #111

Description

@moodmosaic

Summary

codex-cli driver: interactive/chat broken -- passes the exec-only
flag --skip-git-repo-check to the interactive codex TUI, which
current codex CLI rejects.

Summary

./launch.sh interactive <profile> (and chat) with the codex-cli
driver fails immediately: the driver invokes the interactive codex
TUI with --skip-git-repo-check, but in codex-cli 0.144.1 that flag
is only accepted by the codex exec subcommand, not by the top-level
interactive codex. The session dies before the TUI starts. The
autonomous path (codex exec ... --skip-git-repo-check) is fine.

Environment

  • claude-swarm: v0.22.0 (commit 970ed59)
  • codex-cli: 0.144.1
    (the driver's own comments reference 0.120.0 / gpt-5.4, so it looks
    like it was written against an older codex CLI where the top-level
    codex still accepted --skip-git-repo-check.)
  • driver: lib/drivers/codex-cli.sh

Symptom (verbatim)

interactive[explore] starting Codex CLI
Profile prompt is available at tasks/explore.md
error: unexpected argument '--skip-git-repo-check' found

tip: to pass '--skip-git-repo-check' as a value, use '-- --skip-git-repo-check'

Usage: codex [OPTIONS] [PROMPT]
codex [OPTIONS] [ARGS]

For more information, try '--help'.

The interactive branch is still created and pushed, but no TUI ever
opens, so the profile is unusable.

Reproduction

  1. A swarm.json using "driver": "codex-cli" with any agent profile,
    e.g. { "name": "explore", "count": 0, "model": "gpt-5.6-sol",
    "auth": "chatgpt", "prompt": "tasks/explore.md" }.
  2. codex-cli 0.144.x installed and authenticated.
  3. Run: ./launch.sh interactive explore
    -> fails with the error above.

Root cause

In lib/drivers/codex-cli.sh, the two invocations differ:

  • agent_run() (autonomous) uses the EXEC subcommand, which DOES accept
    the flag -- this is correct:

    codex exec \
        --dangerously-bypass-approvals-and-sandbox \
        -m "$model" \
        --json \
        --skip-git-repo-check \
        ...
    
  • agent_interactive_run() (interactive/chat) uses the TOP-LEVEL codex
    (the TUI), which does NOT accept the flag in codex 0.144.x:

    codex \
        --dangerously-bypass-approvals-and-sandbox \
        -m "$model" \
        --skip-git-repo-check \        <-- rejected by the TUI
        "${effort_args[@]+"${effort_args[@]}"}"
    

In current codex CLI, --skip-git-repo-check is an argument of the
codex exec subcommand only; it is not a top-level/global flag, so the
interactive codex errors out on it.

Why the flag isn't needed for the interactive path anyway

lib/interactive.sh sets the workspace up with git clone /upstream /workspace, so /workspace is always a git repository. The interactive
codex TUI's git-repo check therefore passes with or without the flag;
the flag is unnecessary here.

Suggested fix

Drop --skip-git-repo-check from agent_interactive_run() in
lib/drivers/codex-cli.sh. Minimal patch:

--- a/lib/drivers/codex-cli.sh
+++ b/lib/drivers/codex-cli.sh
@@ agent_interactive_run()
codex
--dangerously-bypass-approvals-and-sandbox
-m "$model" \

  •    --skip-git-repo-check \
       "${effort_args[@]+"${effort_args[@]}"}"
    

(Verified locally: with this line removed, ./launch.sh interactive <profile> starts the codex TUI normally; the workspace is a git repo,
so no git-repo-check warning appears.)

If some supported codex versions still require the flag on the
interactive path, gate it by codex --version instead of passing it
unconditionally. The autonomous codex exec path should be left
unchanged.

Impact

interactive and chat are completely non-functional for the
codex-cli driver on current codex CLI (0.144.x). Autonomous runs
(start / post-process, which go through codex exec) are
unaffected.

Steps to reproduce

No response

Expected vs actual behavior

No response

Version

0.22

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions