Fleet changelogs · dev.ecs0.net
rdmsm4x-changelog-20260823-2122-codex-cli-fleet-consolidation-to-homebrew

rdmsm4x-changelog-20260823-2122-codex-cli-fleet-consolidation-to-homebrew

Consolidated Codex CLI to a single Homebrew-managed install on all six fleet Macs by removing two shadowing non-brew installs; confirmed Claude Code, Codex and agy status lines are already at parity.

Context

Rich asked to run ~/install_codex-cli.zsh fleet-wide. That path does not exist; the actual file is ~/dev/install_codex-cli.sh (created 2026-08-23 21:15), containing one line: npm install -g @openai/codex.

Preflight found Codex already installed via Homebrew cask on all six hosts at 0.149.0. Running the npm script would have added a second, fnm-managed install on every host, outside brew's upgrade path and orphaned by any node-version switch. This conflicts with global rule 27 (prefer Homebrew where a cask exists; brew install --cask codex does exist). Rich chose the Homebrew consolidation path.

Findings

Changes made

Host Action
rdmsm4x npm uninstall -g @openai/codex (removed 2 packages); fnm bin shim gone
rdmpw3275m rm -f ~/.local/bin/codex; rm -rf ~/.codex/packages/standalone (reclaimed 566 MB)
other four no change — already brew-only

~/.codex/config.toml was not modified on any host (rdmpw3275m verified intact at 7316 bytes).

Verification (at close)

All six hosts, checked in login shells, plus rdmsm4x re-checked in a non-login shell:

rdmsm4x       brew   codex-cli 0.149.0  standalone=none localbin=none npm=0 tui_items=28
rdmbair13m5   brew   codex-cli 0.149.0  standalone=none localbin=none npm=0 tui_items=28
rdmbair15m5   brew   codex-cli 0.149.0  standalone=none localbin=none npm=0 tui_items=28
rdmpw3265m    brew   codex-cli 0.149.0  standalone=none localbin=none npm=0 tui_items=28
rdmpw3275m    brew   codex-cli 0.149.0  standalone=none localbin=none npm=0 tui_items=28
jdmbair13m5   brew   codex-cli 0.149.0  standalone=none localbin=none npm=0 tui_items=28

Reproduce with zsh -l on any host:

command -v codex; codex --version
ls ~/.codex/packages/standalone 2>/dev/null; ls ~/.local/bin/codex 2>/dev/null
npm ls -g --depth=0 2>/dev/null | grep '@openai/codex'

Status line parity (no changes needed)

Verified already at parity across all six hosts — the earlier fleet-cli-status-meters handoff (mail 20260822-222323-9A551573) had completed:

Surface State
Claude Code statusLine.command = bash ~/.claude/statusline.sh; renderer sha256 86252490851c… identical on 6/6
agy statusLine set + enabled: true in ~/.gemini/antigravity-cli/settings.json on 6/6; renderer sha256 32e399799337… identical on 6/6
Codex [tui] status_line array, 28 identical items, on 6/6

Note for future probes: agy's status line lives in ~/.gemini/antigravity-cli/settings.json, not ~/.gemini/settings.json (the latter is auth-only, ~82 bytes). An initial probe against the wrong path falsely reported the status line as unset on all six hosts.

Only remaining drift is cosmetic: rdmbair15m5's [tui] block carries two extra comment lines and a trailing newline. The status_line array itself is byte-identical. Left as-is.

Claude Code version check

rdmsm4x is on cask claude-code@latest (fast channel) at 2.1.241, matching the published cask latest. Exec bit present. No action taken.

How to undo

Outstanding owner actions