claude -p — 클로드 코드를 명령 한 줄로 돌리고 결과만 받기
대화창을 열지 않고 질문 하나를 던져 답만 받는 "비대화형 모드"입니다. 파일 내용을 넘기고, 결과를 파일이나 JSON으로 받는 방법까지 정리했습니다.
평소에는 터미널에서 claude 를 실행해 대화하듯 일을 시킵니다. 그런데 같은 일을 매일 하거나 다른 프로그램과 이어 붙이려면 질문 한 번 → 답 한 번 → 끝 으로 끝나는 방식이 편합니다. 이것이 -p ( --print ) 옵션입니다.
가장 기본
claude -p "이 폴더의 README.md를 세 줄로 요약해 줘"
답이 화면에 출력되고 프로그램이 바로 끝납니다. 성공하면 종료 코드 0, 실패하면 0이 아닌 값을 돌려주므로 스크립트에서 성공 여부를 나눠 처리할 수 있습니다.
파일 내용을 넘기고 결과를 파일로 받기
다른 명령의 출력을 파이프( | )로 넘길 수 있습니다. 공식 문서의 예처럼 빌드 오류 기록을 넘겨 원인을 설명받고, 결과는 파일로 저장합니다.
cat build-error.txt | claude -p '이 빌드 오류의 원인을 짧게 설명해 줘' > output.txt
파이프로 넘기는 내용은 10MB까지입니다. 더 크면 파일 경로를 질문에 적어 주세요.
결과를 JSON으로 받기
claude -p "이 프로젝트를 요약해 줘" --output-format json
답 본문은 result 칸에 들어 있습니다. jq 프로그램으로 본문만 꺼낼 수 있습니다.
claude -p "이 프로젝트를 요약해 줘" --output-format json | jq -r '.result'
정해진 모양으로 받고 싶으면 --json-schema 에 JSON Schema를 넣습니다. 이때 결과는 structured_output 칸에 들어갑니다.
도구 사용을 미리 허락하기
비대화형에서는 "허락할까요?"에 대답할 사람이 없습니다. 필요한 도구만 --allowedTools 로 미리 허락하세요.
claude -p "테스트를 돌리고 실패한 것을 고쳐 줘" --allowedTools "Bash,Read,Edit"
권한 모드를 따로 정하지 않았다면, 허락 목록에 없고 승인이 필요한 작업은 거절됩니다. 셸 명령은 Bash(git diff *) 처럼 범위를 좁혀 허락하는 편이 안전합니다.
알아 둘 점
--continue 를 붙이면 바로 전 대화를 이어 갑니다.
--bare 를 붙이면 훅·스킬·MCP·CLAUDE.md를 읽지 않아 빨리 시작하고, 어느 컴퓨터에서나 같은 결과를 냅니다. 다만 구독 로그인 대신 ANTHROPIC_API_KEY 가 필요합니다.
주의: --bare 없이 실행하면 그 폴더의 .claude/settings.json 훅과 .mcp.json 서버가 확인 질문 없이 실행됩니다. 남이 만든 폴더에서 돌릴 때는 먼저 내용을 보세요.
코딩AI에서 직접 해 본 결과
echo "사과 3개, 배 2개" | claude -p "과일 개수의 합만 숫자로 답해"
5
대화가 필요 없는 일은 -p 로. 사람이 한 번만 확인하면 되는 일을 매번 대화창에서 하지 마세요.