OpenSource-Hub

codex-plugin-cc

기타

openai/codex-plugin-cc

Claude Code에서 Codex를 사용하여 코드 리뷰 또는 작업 위임을 수행하는 플러그인.

개요

Claude Code용 플러그인으로, OpenAI의 Codex를 통합하여 슬래시 명령을 통해 코드 리뷰, 작업 위임 및 백그라운드 작업을 구현합니다. 리뷰, 적대적 리뷰, 핸드오프 및 구조 워크플로우를 지원합니다.

README 미리보기

# Codex plugin for Claude Code\n\nUse Codex from inside Claude Code for code reviews or to delegate tasks to Codex.\n\nThis plugin is for Claude Code users who want an easy way to start using Codex from the workflow\nthey already have.\n\n\n\n## What You Get\n\n- `/codex:review` for a normal read-only Codex review\n- `/codex:adversarial-review` for a steerable challenge review\n- `/codex:rescue`, `/codex:transfer`, `/codex:status`, `/codex:result`, and `/codex:cancel` to delegate work, hand off sessions, and manage background jobs\n\n## Requirements\n\n- **ChatGPT subscription (incl. Free) or OpenAI API key.**\n  - Usage will contribute to your Codex usage limits. [Learn more](https://developers.openai.com/codex/pricing).\n- **Node.js 18.18 or later**\n\n## Install\n\nAdd the marketplace in Claude Code:\n\n```bash\n/plugin marketplace add openai/codex-plugin-cc\n```\n\nInstall the plugin:\n\n```bash\n/plugin install codex@openai-codex\n```\n\nReload plugins:\n\n```bash\n/reload-plugins\n```\n\nThen run:\n\n```bash\n/codex:setup\n```\n\n`/codex:setup` will tell you whether Codex is ready. If Codex is missing and npm is available, it can offer to install Codex for you.\n\nIf you prefer to install Codex yourself, use:\n\n```bash\nnpm install -g @openai/codex\n```\n\nIf Codex is installed but not logged in yet, run:\n\n```bash\n!codex login\n```\n\nAfter install, you should see:\n\n- the slash commands listed below\n- the `codex:codex-rescue` subagent in `/agents`\n\nOne simple first run is:\n\n```bash\n/codex:review --background\n/codex:status\n/codex:result\n```\n\n## Usage\n\n### `/codex:review`\n\nRuns a normal Codex review on your current work. It gives you the same quality of code review as running `/review` inside Codex directly.\n\n> [!NOTE]\n> Code review especially for multi-file changes might take a while. It's generally recommended to run it in the background.\n\nUse it when you want:\n\n- a review of your current uncommitted changes\n- a review of your bran

FAQ (5)

문제 해결
Codex review/adversarial-review HTTP 400: 'gpt-5.6-sol model requires a newer version of Codex' 오류는 어떻게 해결하나요?

이 문제는 Codex 데스크톱 앱이 공유 ~/.codex/config.toml에 model = "gpt-5.6-sol"을 기록하지만, npm CLI(@openai/codex 0.145.0까지)가 해당 모델을 사용할 수 없을 때 발생합니다. 일반적인 task 턴은 정상 작동할 수 있음에도, review 및 adversarial-review 경로는 이 기본값을 상속받아 실패합니다.

우회 방법:

1. review 호출에 npm CLI가 지원하는 모델을 사용하세요. 예:

node scripts/codex-companion.mjs review --wait --scope working-tree --model gpt-5.5

2. 플러그인 명령 템플릿을 편집하는 경우, --model gpt-5.5를 따옴표로 묶인 인자 블록 안에 넣으세요:

review "$ARGUMENTS --model gpt-5.5"

이를 별도의 인자로 전달하면 normalizeArgv가 해당 블록을 focus 텍스트로 처리할 수 있습니다.

3. 또는 ~/.codex/config.toml의 공유 기본값을 변경하세요:

model = "gpt-5.5"

현재 릴리스된 npm CLI 중 gpt-5.6-sol을 허용하는 버전이 없으므로, npm CLI를 0.142.1에서 0.145.0으로 업그레이드해도 이 문제는 해결되지 않습니다.

원본 Issue #561
문제 해결
Git Bash에서 codex-companion cancel 실행 시 발생하는 taskkill "Invalid argument/option - 'C:/Program Files/Git/PID'" 오류 해결 방법

Git Bash/MSYS는 /PID 인수를 Windows 경로로 변환합니다. Windows 폴백을 PowerShell로 대체하세요: powershell.exe -NoProfile -Command "Stop-Process -Id <pid> -Force". 임시 수동 해결 방법으로, PowerShell에서 이 명령을 실행하세요. taskkill을 계속 사용하려면 MSYS_NO_PATHCONV=1을 앞에 붙이거나 이중 슬래시로 플래그를 이스케이프하세요: MSYS_NO_PATHCONV=1 taskkill /PID <pid> /T /F 또는 taskkill //PID <pid> //T //F.

원본 Issue #331
문제 해결
스레드가 생성되었는데도 Windows에서 '/codex:transfer'가 "did not record an imported thread"라고 보고하는 문제를 해결하는 방법

이것은 Windows에서 발생하는 잘못된 가져오기 후 조회 실패입니다. 가져오기는 성공하지만, 원장(ledger)이 경로를 \\?\ 확장 길이 접두사와 함께 저장하는 반면 Node의 realpathSync()는 그렇지 않고, 가져오기 후에 실시간 Claude 트랜스크립트가 변경되어 콘텐츠 해시 검사가 실패하기 때문에 플러그인이 원장 레코드를 일치시키지 못합니다. 즉각적인 우회 방법: %USERPROFILE%\.codex\external_agent_session_imports.json을 열어 유효한 imported_thread_id가 있는 가장 최근 레코드를 찾은 다음 codex resume <imported_thread_id>를 실행하세요. 영구적인 수정: scripts/lib/codex.mjs에서 importedThreadIdForSource()를 업데이트하여 \\?\를 제거하고, /를 \로 변환하며, Windows에서는 소문자로 변환하는 방식으로 두 경로를 모두 정규화한 후, 정규화된 source_path와 비어 있지 않은 imported_thread_id로 레코드를 일치시키세요. content_sha256은 우선 조건으로 취급하세요. 정확히 일치하는 해시가 있으면 그중 가장 최근의 것을 사용하고, 없으면 null을 반환하는 대신 해당 소스 경로에 대한 가장 최근 가져오기로 폴백하세요. 영향이 확인된 환경: codex@openai-codex v1.0.6, Codex CLI 0.144.2, Node v24.15.0, Windows 11.

원본 Issue #513
문제 해결
Codex 백그라운드 작업 실행 시 Windows에서 "EPERM: operation not permitted, unlink broker.pid" 오류를 해결하는 방법

codex-plugin-cc를 v1.3.0 이상으로 업그레이드하세요. 이 릴리스에서는 broker pid/log 파일 삭제가 best-effort 방식으로 처리되므로, 잠겨 있거나 동시에 삭제된 파일로 인해 발생하는 Windows EPERM 오류가 더 이상 broker teardown을 중단시키거나 작업을 실패하게 만들지 않습니다. 즉시 업그레이드할 수 없는 경우, 보호 처리되지 않은 fs.unlinkSync(pidFile) 및 fs.unlinkSync(logFile) 호출을 모두 try/catch로 감싸고 EPERM 및 ENOENT를 무시하도록(또는 보호 처리된 다른 teardown 단계와 동일하게 모든 정리 오류를 무시하도록) plugins/codex/scripts/lib/broker-lifecycle.mjs를 패치하세요. 업그레이드 또는 패치 후 Codex 작업을 다시 시작하세요.

원본 Issue #633
문제 해결
Windows의 Git Bash에서 `codex-companion cancel`이 `taskkill exit=1` 오류로 실패하는 이유는 무엇인가요?

Git Bash/MSYS는 $SHELL을 통해 명령이 실행될 때 /PID, /T, /F와 같은 taskkill 플래그를 Windows 경로로 변환하므로, taskkill이 잘못된 인수를 받게 됩니다.

**권장 수정 방법:** 프로세스 트리를 종료할 때 scripts/lib/process.mjs에서 셸 없이 taskkill.exe를 직접 스폰합니다:

spawnSync('taskkill.exe', ['/PID', String(pid), '/T', '/F'], {
  shell: false,
  windowsHide: true,
});

또는 Windows 셸 옵션을 process.env.SHELL 대신 항상 cmd.exe를 사용하도록 변경합니다:

shell: process.platform === 'win32' ? true : false

**즉시 적용 가능한 해결 방법:** SHELL을 제거한 상태로 취소 명령을 실행합니다:

env -u SHELL node codex-companion.mjs cancel <jobId> --json

다른 Node 프로세스에서 codex-companion을 스폰하는 경우, Windows에서 자식 환경 변수의 SHELL을 삭제합니다:

const env = { ...process.env };
if (process.platform === 'win32') delete env.SHELL;

지역화된 Windows 버전의 경우, 영어 오류 메시지 정규식에만 의존하는 대신 taskkill 종료 코드 128도 "프로세스를 찾을 수 없음"으로 처리하세요.

원본 Issue #182