AI 해결 노트 · 2026-09-17 · 실측 2026-09-17

Codex CLI codex exec가 "Reading additional input from stdin..."에서 안 끝날 때 — 윈도우 실측

한 줄로

codex exec "질문"을 스크립트나 AI 에이전트의 백그라운드 셸에서 돌리면 Reading additional input from stdin...만 찍히고 끝나지 않을 수 있습니다. 표준입력(stdin)이 파이프로 열려 있으면 codex가 그 입력이 끝나기를 기다리기 때문입니다. 저희 실측에서는 < /dev/null로 stdin을 닫거나, 질문을 파이프로 넘기고 -를 붙였을 때 정상 종료했습니다.

증상

왜 이러나

codex exec --help[PROMPT] 설명에 답이 있습니다.

[PROMPT]
  Initial instructions for the agent. If not provided as an argument (or if `-` is used),
  instructions are read from stdin. If stdin is piped and a prompt is also provided, stdin
  is appended as a `<stdin>` block

질문을 인자로 줘도 stdin이 파이프로 연결돼 있으면, codex는 그 내용을 <stdin> 블록으로 덧붙이려고 읽습니다. 파이프 반대쪽이 닫히지 않으면 읽기가 끝나지 않습니다.

실측 환경

항목
OSWindows 11 Home (10.0.26200)
Git Bash, PowerShell 7.6.6
codexcodex-cli 0.153.4
질문Reply with the single word OK. (모든 조건 같음)
공통 옵션--skip-git-repo-check -s read-only

여섯 가지 조건으로 돌려 봤습니다

조건stdin 상태결과걸린 시간
AGit Bash90초 동안 열려 있는 파이프(sleep 90 |)60초 제한에 걸려 강제 종료(종료 코드 124), 결과 파일 비어 있음60초
BGit Bash닫힘(< /dev/null)종료 코드 0, OK7초
CGit Bash질문을 파이프로 넘기고 - 사용(echo "…" | codex exec … -)종료 코드 0, OK재지 않음
DGit Bash15초 뒤 닫히는 파이프(sleep 15 |)종료 코드 0, OK20초
EPowerShell 7null 장치에 연결종료 코드 0, OK8초
FPowerShell 7문자열 한 줄을 파이프로 넘기고 끝남종료 코드 0, OK7초

D에서는 파이프 앞의 sleep 15가 끝나야 입력이 닫히는데, 전체가 20초 걸리고 정상 종료했습니다. codex가 입력이 끝나기를 기다렸다가 이어서 일했다는 설명과 맞는 결과입니다.

B에서도 Reading additional input from stdin... 문구는 똑같이 찍혔습니다. 이 문구만으로 멈췄다고 판단하지 말고, 그 뒤에 진행이 있는지 보셔야 합니다.

해결 — 셋 중 하나

1. stdin을 닫는다 (조건 B)

codex exec --skip-git-repo-check "질문" < /dev/null

2. 질문을 stdin으로 넘긴다 (조건 C와 같은 방식, 긴 질문에 편함)

codex exec --skip-git-repo-check -o answer.md - < prompt.md

질문 본문을 셸 인자로 따옴표 처리할 필요가 없어집니다. -o로 결과를 파일에 받는 방법과 주의점은 codex exec 결과를 파일로 받기 글에 따로 적었습니다.

3. 덧붙일 내용은 끝나는 명령으로 넘긴다

cat context.txt | codex exec --skip-git-repo-check "이 내용을 요약해 줘"

이 형태는 저희가 돌려 본 예시가 아닙니다. 조건 F처럼 파이프 앞 명령이 끝나면 입력도 닫히므로 같은 원리로 끝날 것으로 봅니다. 문제는 파이프 앞쪽이 끝나지 않을 때(조건 A)입니다.

실패한 것

확인하지 않은 것

함께 보기