bypassPermissions는 에이전트가 확인을 위해 멈추지 않는 Claude Code의 권한 모드입니다. 수정, 명령어, 네트워크 호출 등 모든 작업이 모델이 실행을 결정하는 즉시 실행됩니다. Anthropic은 이를 샌드박스 처리된 일회용 환경에서만 사용할 것을 권장합니다. 이 가이드는 에이전트가 어디까지 접근할 수 있는가에 관한 것입니다. 하지만 여기에는 다루지 않은 두 번째 질문이 있습니다. 바로 누가 에이전트에게 지시를 내리는가입니다.
내 샌드박스에서 혼자 쓰는 에이전트라면 bypass는 작업 속도를 높여주는 설정입니다. 하지만 다른 사람이 요청을 보낼 수 있는 에이전트라면, bypass는 중간에 사람의 확인 없이 그 사람들에게 로컬 머신의 모든 권한을 넘겨주겠다는 결정과 같습니다. 이 글은 그 차이에 대해 다룹니다.
bypass가 매력적인 이유
prompt는 마찰을 만듭니다. 긴 리팩터링 작업에서 "allow this edit?"을 백 번 묻다 보면 글을 읽지도 않고 승인하게 됩니다. 이를 끄면 에이전트가 승인 양식이 아니라 진짜 동료처럼 느껴집니다. 많은 사람이 버전 관리되는 저장소에서 bypass를 사용하며, 잘못된 수정이 생겨도 git checkout 한 번이면 되돌릴 수 있다고 합리적으로 판단합니다.
이러한 논리는 세 가지 전제가 참일 때만 유효합니다. 내가 직접 요청을 작성했고, 과정을 지켜보고 있으며, 되돌릴 수 없는 작업이 닿지 않는 곳에 있을 때입니다.
다른 사람이 요청할 때 달라지는 점
요청이 내가 작성한 것이 아닙니다. 팀원이 말한 "오래된 브랜치 정리해 줘"는 그들에게 특정한 의미를 갖습니다. 하지만 에이전트에게는 git branch -D를 의미합니다. bypass 상태에서는 그 둘 사이에 멈추는 단계가 없습니다.
입력을 신뢰할 수 없습니다. 요청에는 스크린샷, 로그 파일, 붙여넣은 이슈 같은 첨부 파일이 함께 들어옵니다. 그중 어떤 파일이든 명령어처럼 읽히는 텍스트가 포함될 수 있습니다. 공유된 입력을 통한 prompt injection은 실질적인 공격 벡터이며, bypass는 이를 잡아낼 유일한 체크포인트를 없앱니다.
내가 지켜보고 있지 않습니다. 공유하는 목적 자체가 자리를 비웠을 때도 에이전트가 일하도록 하기 위함입니다. 직접 보고 있었다면 1초 만에 확인했을 prompt가 아무도 보지 않은 액션이 되어버립니다.
되돌릴 수 없는 작업에 손이 닿습니다. main 브랜치로의 푸시, 삭제, 비용 지출, 자격 증명 읽기 등입니다. 자신의 머신에서 일반적인 세션을 진행할 때는 이런 일이 거의 없으므로 bypass가 안전하게 느껴집니다. 하지만 다른 사람이 실수로 유발할 가능성이 가장 높은 액션이 바로 이것들입니다.
기준선
bypass는 오직 나 혼자만 대화하고, 되돌릴 수 없는 요소가 전혀 없는 디렉터리에 있는 에이전트에만 사용하세요. 에이전트가 다른 사람과 함께 있는 룸에 들어가는 순간, 문제는 더 이상 "내가 모델을 얼마나 신뢰하는가"가 아니라 "에이전트에 접근할 수 있는 모든 사람과 모든 첨부 파일을 얼마나 신뢰하는가"가 됩니다.
선을 넘지 않고 속도를 유지하는 방법
룸을 사용하면 모드 위에 두 가지 기능을 더해 속도를 대부분 유지할 수 있습니다.
개별 권한 부여. 상시 권한(standing grant)을 사용하면 신뢰하는 사람이 매 요청마다 승인을 거치지 않고도 실행할 수 있습니다. 에이전트 자체의 모드는 일반적인 호출에 대해 허용 상태를 유지할 수 있습니다. 자세한 내용은 권한 모드 해설을 참고하세요.
항상 일시 중지되는 네 가지 액션. 공유 브랜치로의 푸시, 삭제, 비용 지출, 자격 증명 접근은 다른 사람의 요청일 경우 bypass 상태에서도 소유자의 확인을 위해 멈춥니다. 백 번의 일반적인 수정은 prompt 없이 바로 실행되지만, 단 한 번의 git push origin main은 소유자를 기다립니다. 이에 관한 이유는 에이전트가 실행 전 항상 확인해야 하는 네 가지 액션에서 확인할 수 있습니다.
실질적인 권장 사항
- 공유하는 에이전트: 저장소 작업에는
acceptEdits, 탐색적 작업에는plan을 사용하세요. 신뢰하는 사람에게 권한을 부여하세요. - 일회용 샌드박스에서 혼자 쓰는 에이전트: bypass를 써도 무방합니다.
- 작업 디렉터리에 프로덕션 자격 증명이 있는 경우:
default를 사용하고, 자격 증명이 필요 없는 작업에는 별도의 에이전트를 두세요. - 작업 디렉터리에 키 파일이 포함된 에이전트는 절대 공유하지 마세요. 모드를 바꿀 게 아니라 키를 옮겨야 합니다.
자주 묻는 질문
룸을 쓰면 실행 내부에서 bypass의 동작이 바뀌나요? 아닙니다. 실행 내에서 bypass는 여전히 런타임 prompt를 띄우지 않는 것을 의미합니다. 룸은 누가 실행을 시작할 수 있는지, 그리고 어떤 네 가지 액션이 조건 없이 일시 중지되는지를 추가해 줄 뿐입니다.
Codex의 유사한 설정은 어떤가요? 형태도 권장 사항도 동일합니다. 샌드박스에서 혼자 쓸 때는 관대하게 설정해도 되지만, 공유하는 에이전트에는 그렇게 해서는 안 됩니다.
푸시할 때마다 prompt가 뜨면 번거롭지 않나요? 일반적인 세션에서 공유 브랜치로 푸시하는 일은 드뭅니다. 만약 잦다면 에이전트의 작업 디렉터리가 지나치게 넓게 잡혀 있을 가능성이 큽니다.
나에게는 빠르게, 다른 사람에게는 신중하게. 그것이 룸이 존재하는 이유입니다. 내 에이전트에 룸을 마련해 보세요.
게시일