Codex CLI은(는) 무엇을 하나요?
Hermes 터미널을 통해 Codex에게 코딩 작업을 위임하세요. Codex는 OpenAI의 자율 코딩 에이전트 CLI입니다.
사용 시기
- 기능 개발
- 리팩토링
- PR 검토
- 이슈 일괄 수정
Codex CLI와 Git 저장소가 필요합니다.
사전 요구 사항
- Codex 설치:
npm install -g @openai/codex - OpenAI 인증 구성:
OPENAI_API_KEY또는 Codex CLI 로그인 절차를 통한 Codex OAuth 자격 증명 - Git 저장소 내에서 실행해야 함 — Codex는 Git 저장소 밖에서는 실행되지 않습니다.
- 터미널 호출 시
pty=true사용 — Codex는 상호작용이 필요한 터미널 앱입니다.
Hermes 자체의 경우, model.provider: openai-codex는 ~/.hermes/auth.json에 있는 Hermes 관리 Codex OAuth를 사용합니다 (hermes auth add openai-codex 후). 독립 실행형 Codex CLI의 경우 유효한 CLI OAuth 세션이 ~/.codex/auth.json에 있을 수 있습니다. OPENAI_API_KEY가 없다고 해서 Codex 인증이 없는 것은 아니므로 주의하세요.
단일 실행 작업
terminal(command="codex exec '설정에 다크 모드 토글 추가'", workdir="~/project", pty=true)
임시 작업용 (Codex는 Git 저장소가 필요합니다):
terminal(command="cd $(mktemp -d) && git init && codex exec 'Python으로 스네이크 게임 만들기'", pty=true)
백그라운드 모드 (장기 작업)
# PTY로 백그라운드 시작
terminal(command="codex exec --full-auto '인증 모듈 리팩토링'", workdir="~/project", background=true, pty=true)
# session_id 반환
# 진행 상황 모니터링
process(action="poll", session_id="<id>")
process(action="log", session_id="<id>")
# Codex가 질문하면 입력 전송
process(action="submit", session_id="<id>", data="yes")
# 필요 시 종료
process(action="kill", session_id="<id>")
주요 플래그
| 플래그 | 효과 |
|---|---|
exec "프롬프트" | 단일 실행, 완료되면 종료 |
--full-auto | 샌드박스 내에서 파일 변경을 자동 승인 |
--yolo | 샌드박스 없음, 승인 없음 (가장 빠르고 위험) |
--sandbox danger-full-access | Codex 샌드박스 사용 안 함; 호스트 서비스 컨텍스트가 bubblewrap을 깨뜨릴 때 유용 |
Hermes 게이트웨이 주의 사항
Hermes 게이트웨이/서비스 컨텍스트 (예: Telegram 기반 에이전트 세션)에서 Codex CLI를 호출할 때, 동일한 명령어가 사용자의 대화형 셸에서 작동하더라도 Codex workspace-write 샌드박싱이 실패할 수 있습니다. 일반적인 증상은 bubblewrap/사용자 네임스페이스 오류입니다: setting up uid map: Permission denied 또는 loopback: Failed RTM_NEWADDR: Operation not permitted.
이런 경우 다음을 사용하는 것이 좋습니다:
codex exec --sandbox danger-full-access "<작업>"
대신 프로세스 경계를 안전 계층으로 사용하세요: 명시적 workdir, 시작 전 깨끗한 Git 상태, 좁은 작업 프롬프트, git diff 검토, 대상 테스트, 광범위한 변경 사항을 커밋하기 전 사람/에이전트 확인.
PR 검토
안전한 검토를 위해 임시 디렉터리에 클론:
terminal(command="REVIEW=$(mktemp -d) && git clone https://github.com/user/repo.git $REVIEW && cd $REVIEW && gh pr checkout 42 && codex review --base origin/main", pty=true)
워크트리를 사용한 병렬 이슈 수정
# 워크트리 생성
terminal(command="git worktree add -b fix/issue-78 /tmp/issue-78 main", workdir="~/project")
terminal(command="git worktree add -b fix/issue-99 /tmp/issue-99 main", workdir="~/project")
# 각각 Codex 실행
terminal(command="codex --yolo exec '이슈 #78 수정: <설명>. 완료되면 커밋.'", workdir="/tmp/issue-78", background=true, pty=true)
terminal(command="codex --yolo exec '이슈 #99 수정: <설명>. 완료되면 커밋.'", workdir="/tmp/issue-99", background=true, pty=true)
# 모니터링
process(action="list")
# 완료 후, 푸시하고 PR 생성
terminal(command="cd /tmp/issue-78 && git push -u origin fix/issue-78")
terminal(command="gh pr create --repo user/repo --head fix/issue-78 --title '수정: ...' --body '...'")
# 정리
terminal(command="git worktree remove /tmp/issue-78", workdir="~/project")
배치 PR 검토
# 모든 PR ref 가져오기
terminal(command="git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'", workdir="~/project")
# 여러 PR을 병렬로 검토
terminal(command="codex exec 'PR #86 검토. git diff origin/main...origin/pr/86'", workdir="~/project", background=true, pty=true)
terminal(command="codex exec 'PR #87 검토. git diff origin/main...origin/pr/87'", workdir="~/project", background=true, pty=true)
# 결과 게시
terminal(command="gh pr comment 86 --body '<검토>'", workdir="~/project")
규칙
- 항상
pty=true사용 — Codex는 상호작용형 터미널 앱이며 PTY 없이 실행하면 멈춥니다. - Git 저장소 필수 — Codex는 Git 디렉터리 밖에서는 실행되지 않습니다. 임시 작업은
mktemp -d && git init을 사용하세요. - 단일 실행에는
exec사용 —codex exec "프롬프트"는 실행 후 깔끔하게 종료됩니다. - 개발 시
--full-auto사용 — 샌드박스 내에서 변경 사항을 자동 승인합니다. - 장기 작업은 백그라운드로 —
background=true를 사용하고process도구로 모니터링하세요. - 방해하지 마세요 —
poll/log로 모니터링하고 장기 실행 작업에는 인내심을 가지세요. - 병렬 실행 가능 — 배치 작업을 위해 여러 Codex 프로세스를 동시에 실행할 수 있습니다.