
Codex 플러그인을 통해 Claude Code에서 이미지 생성하기 (Images 2.0 / GPT Image 2)
요약
Claude Code에서 Codex 플러그인을 사용하여 이미지 생성을 수행할 때 발생하는 4가지 기술적 장애물과 해결 방법을 다룹니다. 특히 서브 에이전트 위임 방식과 샌드박스 쓰기 제한 문제를 해결하는 구체적인 가이드를 제공합니다.
핵심 포인트
- Skill() 대신 Agent(subagent_type='codex:codex-rescue')를 사용하여 세션 중단을 방지해야 함
- 샌드박스 쓰기 제한 해결을 위해 workspace 내 저장 후 부모 에이전트가 cp 명령어로 이동 권장
- 백그라운드 실행 시 프로세스가 추적되지 않는 문제와 CJK 문자 깨짐 현상 주의
- slash command와 subagent의 네임스페이스 차이를 이해하는 것이 핵심
이 기사의 요점
-
그대로 맡겨버리면
4가지 걸림돌 (백그라운드 실행으로 인한 중단 / 샌드박스(Sandbox) 쓰기 제한 / CJK 문자 깨짐 /Skill()을 통한 행(hang))이 기다리고 있다. - 정답은
Skill()
이 아니라
Agent(subagent_type="codex:codex-rescue", ...)
이다. -
샌드박스를 넘어서는
cp
·ls -la
검증 및 육안 확인은 부모 에이전트(Claude 측)의 역할이다.
아키텍처
Codex 플러그인(2026-03 공개)을 설치하면, Codex의 imagegen (Images 2.0 / GPT Image 2)으로 위임할 수 있다.
Claude Code (부모 에이전트 · Anthropic)
└─ codex:codex-rescue 서브 에이전트로 위임 (Agent 경유)
└─ Codex CLI (자식 에이전트 · OpenAI)
...
셋업
v1.0.4 이후 버전을 권장한다.
/plugin marketplace add openai/codex-plugin-cc
/plugin install codex@openai-codex
/codex:setup # Codex CLI 본체의 인증 확인
4가지 걸림돌
1. 백그라운드 실행으로 인한 무언의 죽음
/codex:rescue에 단순하게 의존하면 imagegen 스킬을 사용합니다라는 메시지 상태로 반응이 없다. 알림도 파일도 없으며, TaskList / TaskOutput에서도 추적할 수 없다.
레스큐(rescue) 서브 에이전트가 --background (fork)로 기동되어, 자식 프로세스가 harness로부터 보이지 않게 되는 것이 원인이다.
2. 샌드박스의 쓰기 제한
~/Downloads/...를 저장 위치로 지정하면 Operation not permitted가 발생한다. Codex CLI는 기본적으로 workspace-write 샌드박스에서 동작하며, 쓸 수 있는 곳은 workspace(세션을 시작한 작업 디렉토리) 내부뿐이다. 홈 디렉토리 직하는 범위 밖이다.
대책은 "쓸 수 없다면 workspace 내에 저장하고, 절대 경로를 보고"하게 한 뒤, 부모 측에서 cp를 수행하는 것이다.
cp /path/to/workspace/generated/codex-image-xxx.png ~/Downloads/example-image.png
3. CJK 문자 깨짐
기술 도표에 일본어 라벨을 넣으면 "複雑(복잡)"이 "霊等(영등)"처럼 깨진다. Images 2.0은 CJK 장문 라벨을 잘 처리하지 못한다.
4. 최대의 함정: 자체 스킬화할 때, 위임을 Skill(skill="codex:rescue", ...)라고 작성하면 Launching skill: codex:rescue 상태로 멈춰버린다.
공식 문서(commands/rescue.md)의 철칙:
| 호출 방식 | 결과 |
|---|---|
Skill(codex:rescue) | NG — 재진입하여 세션이 hang 발생 |
Skill(codex:codex-rescue) | NG — 해당 skill은 존재하지 않음 |
Agent(subagent_type="codex:codex-rescue", prompt=...) | OK |
codex:rescue는 slash command이며, 내부에서 subagent codex:codex-rescue를 Agent를 통해 기동하는 설계다. 스킬에서 Skill()로 호출하면 재귀적으로 호출되어 hang이 발생한다. slash command와 subagent의 네임스페이스(Namespace)가 서로 다르다는 점이 주의할 부분이다.
# NG
Skill(skill="codex:rescue", args={prompt: "<delegation prompt>"})
# OK
...
위임 프롬프트와 부모 측의 후처리
Codex에 전달할 위임 프롬프트 템플릿
【태스크】
{용도 · 묘사 요소 · 스타일 · 종횡비를 여기에 기술}
【저장 위치】
...
부모 측(Claude)의 후처리는 구조(rescue) · 검증 · 육안 확인으로 고정한다.
1. 샌드박스 초월 구조(rescue)
if (codex의 완료 보고가 workspace 내 경로를 반환했다면):
cp {workspace 내 경로} {사용자 희망 경로}
...
마치며
이미지 생성 그 자체보다 위임의 방식 (delegation etiquette) 이 실용화의 핵심이었다.
- 호출 방식은 반드시 공식 문서로 확인할 것 (
codex:rescue와codex:codex-rescue는 서로 다르며, 스킬(skill)을 통해서는Agent()를 경유함) - 위임 대상의 "완료했습니다"를 신뢰하지 말고, 샌드박스 초월과 최종 검증은 부모(parent) 측으로 집약한다.
이러한 책임 분업은 Codex에 국한되지 않고, MCP 서버를 통한 도구 위임(tool delegation) 전반에 응용할 수 있다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기