Codex opinion
Skill ehzawad/codex-opinion/plugins/codex-opinion/skills/codex-opinion
Second opinion from OpenAI Codex — you, Claude, and Codex in the loop. Invoke /codex-opinion:codex-opinion, or naturally via phrases like "ask codex," "second opinion," "another perspective," "codex weigh in," "reconcile with codex."From its SKILL.md
npx -y skills add ehzawad/codex-opinion --skill codex-opinionAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.7 KB, 612 tokens by cl100k_base, as published. Nobody here has run it
Codex Second Opinion
Get a second opinion from OpenAI Codex on your current work. Codex uses your configured model and settings.
How to call
Call with your context on stdin. A Codex call takes as long as the work takes; use Bash run_in_background: true and wait for Claude Code's completion notification instead of sleep-polling.
echo "<gathered context>" | python3 ${CLAUDE_PLUGIN_ROOT}/skills/codex-opinion/scripts/ask_codex.py
The script bookends stdin with a short default review directive. Pass a positional arg to override it, or --no-default-instruction to skip the wrapper entirely.
Building the context
If there are uncommitted changes:
git diff HEAD | python3 ${CLAUDE_PLUGIN_ROOT}/skills/codex-opinion/scripts/ask_codex.py
If there are also untracked files that matter, include them (with binary/size guards):
{ git diff HEAD
git ls-files --others --exclude-standard | while IFS= read -r f; do
file --mime "$f" | grep -q 'charset=binary' && continue
[ $(wc -c <"$f") -gt 32768 ] && continue
printf '\n=== %s ===\n' "$f"
cat "$f"
done
} | python3 ${CLAUDE_PLUGIN_ROOT}/skills/codex-opinion/scripts/ask_codex.py
If the tree is clean, gather context yourself:
echo "Review this codebase. Key files: ..." | python3 ${CLAUDE_PLUGIN_ROOT}/skills/codex-opinion/scripts/ask_codex.py
With a custom instruction (from user text after /codex-opinion:codex-opinion):
echo "<context>" | python3 ${CLAUDE_PLUGIN_ROOT}/skills/codex-opinion/scripts/ask_codex.py "user's instruction"
Never pipe an empty string. If git diff HEAD would be empty, use echo with gathered context instead.
Session continuity
One Codex session per project, persisted across Claude Code sessions. Follow-up calls resume the prior Codex thread so it keeps its accumulated codebase knowledge. Reframe when the task shifts so prior framing doesn't bias later turns. If the session has expired server-side, the script logs a notice and starts fresh.
Set CODEX_OPINION_SESSION_KEY before launching Claude Code to isolate a session from the project-wide thread.
After Codex responds
Reconcile Codex's findings with your own read, then tell the user what changed, what you accept, what you challenge, and what remains uncertain.
Multi-turn is available when a reply warrants follow-up (Claude → Codex → Claude → Codex → reconcile); default is single-turn.
What ships with it: 1 file
10.4 KB alongside SKILL.md, 1 of them executable
scripts/
- ask_codex.pyruns10.4 KB