Claude Code를 능숙하게 쓰는 사용자라면 누구나 같은 벽에 부딪힙니다. 리팩터링에 깊이 몰입해 있고 에이전트가 거침없이 작업하고 있는데, 갑자기 멈춥니다. "Allow Bash command?" 승인합니다. 30초 뒤에 또 다른 프롬프트가 뜹니다. 승인합니다. 또 뜹니다. 열 번째 중단쯤 되면 문서를 열어 claude --dangerously-skip-permissions를 찾아내고, 다시는 뒤돌아보지 않습니다.
이 플래그는 이름이 경고하는 그대로 동작합니다. 모든 작업에서 사람을 루프 밖으로 빼 버립니다. 이 글에서는 이 플래그가 실제로 무엇을 끄는지, 이를 사용한 실제 개발자들에게 어떤 일이 벌어졌는지, 그리고 대부분이 존재조차 모르는 세 번째 선택지를 설명합니다. 한 번 정의해 둔 규칙 안에서 에이전트를 최고 속도로 실행하는 방법입니다.

모두가 이 플래그에 손을 뻗는 이유
Claude Code에 권한 시스템이 있는 데에는 충분한 이유가 있습니다. 에이전트는 셸 명령을 실행하고, 파일을 쓰고, 외부 도구를 호출할 수 있습니다. 기본적으로 위험한 작업은 일시 중지되고 사용자의 승인을 기다립니다.
문제는 마찰입니다. 기능 브랜치 하나에도 수십 번의 파일 쓰기와 셸 명령이 필요할 수 있습니다. 매번 클릭이 필요하다면 "자율" 에이전트는 1분마다 사용자를 방해하는 아주 똑똑한 어시스턴트가 되어 버립니다. 개발자들은 누구나 짐작할 만한 방식으로 대응합니다. Reddit과 X에서는 권한을 끄고 Claude Code를 실행하는 일이 흔해서 "YOLO 모드"라는 별명까지 붙었습니다.
Anthropic은 이 플래그를 한정된 목적을 위해 만들었습니다. 승인 버튼을 눌러 줄 사람이 없는 CI/CD 파이프라인의 Docker 컨테이너처럼, 완전히 자동화된 비대화형 환경입니다. Linux와 macOS에서 Claude Code는 root나 sudo 권한으로는 이 모드에서 시작하는 것 자체를 거부하기까지 합니다. 개발한 쪽이 이 모드를 어떻게 사용하리라고 기대하는지 짐작할 수 있는 대목입니다.
"샌드박스된 CI용으로 설계되었다"는 것과 "수천 명의 개발자가 실제로 노트북에서 실행하는 방식" 사이의 간극, 문제는 바로 거기에 있습니다.
이 플래그가 실제로 끄는 것
claude --dangerously-skip-permissions로 실행하면, 에이전트가 수행하는 거의 모든 작업에 대한 승인 체크포인트가 꺼집니다. 실제로는 Claude Code가 묻지 않고 다음을 할 수 있다는 뜻입니다.
- 패키지 설치, git 작업, 네트워크 호출을 포함한 임의의 셸 명령 실행
- 프로젝트뿐 아니라 사용자 계정이 접근할 수 있는 모든 위치에서 파일 생성, 덮어쓰기, 삭제
- 설정해 둔 모든 MCP 도구 호출(해당 도구가 가진 접근 권한 그대로)
우회 모드에서도 몇몇 극단적인 경우에는 여전히 프롬프트가 표시됩니다. 최신 버전은 문자 그대로의 rm -rf /와 rm -rf ~를 막으며, 관리형 설정(managed settings) 수준에서 지정한 거부 규칙은 절대적으로 유지됩니다. 이런 안전장치는 중요하지만 범위가 좁습니다. 누군가가 하드코딩해 두기로 마음먹은 정확한 패턴만 잡아낼 뿐, 그 밖의 것은 잡아내지 못합니다.
마지막 부분은 곱씹어 볼 필요가 있습니다. 이 보호 장치는 알려진 위험 문자열의 차단 목록일 뿐인데, 파괴적인 명령의 공간은 무한합니다.

YOLO 모드가 잘못될 때: 실제 사고 사례
이것은 가정 상황이 아닙니다.
문서화된 한 사례에서는, 한 개발자가 펌웨어 프로젝트를 작업하던 중 Claude Code가 루트에서 시작하는 rm -rf를 실행했습니다. 오류 로그에는 /bin, /boot, /etc 같은 경로에 대한 "Permission denied" 수천 줄이 가득 찼습니다. 머신이 살아남은 유일한 이유는 OS가 대부분의 삭제를 거부했기 때문입니다. 에이전트는 시도했습니다.
2025년 12월, r/ClaudeAI의 한 게시물은 성공했다는 점에서 더 나쁜 사례를 설명했습니다. 사용자는 Claude에게 오래된 저장소의 패키지를 정리해 달라고 요청했습니다. 에이전트는 rm -rf tests/ patches/ plan/ ~/를 생성했습니다. 마지막 인자를 보십시오. 끝에 붙은 ~/가 사용자의 홈 디렉터리 전체로 확장되었습니다. 전부 사라졌습니다.
두 사고의 공통점에 주목하십시오. 누구도 에이전트에게 파괴적인 일을 요청하지 않았습니다. 정리 작업과 펌웨어 빌드가 데이터 손실로 이어진 이유는, 언어 모델이 그럴듯해 보이지만 치명적인 인자가 들어간 명령을 생성했고, 생성과 실행 사이에 아무것도 없었기 때문입니다.
"명령이 스크롤되는 걸 보면서 검토하면 되지"라는 것도 방어책이 되지 못합니다. 이 플래그를 켠 이유 자체가 검토를 그만두었기 때문입니다.
세 번째 선택지: 프롬프트 대신 정책
논쟁은 보통 이분법으로 짜입니다. 모든 작업을 수동으로 승인해 안전하지만 느리게 가거나, 권한을 건너뛰어 빠르지만 무방비 상태가 되거나. 하지만 세 번째 입장이 있습니다. 에이전트의 자율성은 유지하되, 모든 작업을 실행 전에 규칙에 대조해 확인하는 것입니다.
이것이 실행 전 정책 검사가 하는 일입니다. Claude Code는 각 도구 호출 전에 실행되는 훅(hook)을 지원합니다. 훅이 정책 엔진을 가리키게 하면, 에이전트가 생성하는 모든 명령이 먼저 사용자의 규칙에 따라 평가됩니다. 로직은 다음과 같습니다.
- 프로젝트 디렉터리 안의
filesystem:delete: 허용 - 그 밖의 모든 위치의
filesystem:delete: 거부 - main으로의
git:push: 승인 필요 - 그 밖의 모든 일상적인 작업: 허용 후 기록
에이전트는 명백히 문제없는 95퍼센트의 작업에 대해서는 프롬프트를 전혀 보지 않습니다. 사용자에게 해가 될 수 있는 5퍼센트는 자동으로 차단되거나 사람의 확인을 기다리며 보류됩니다. 거부는 결정론적입니다. 모델이 신중한 기분인지에 좌우되지 않으며, 1만 번째 도구 호출에서도 첫 번째와 똑같이 작동합니다.
Control Zero는 바로 이 모델을 중심으로 만들었습니다. 에이전트가 무엇을 할 수 있는지 사용자가 정의하고, 정책 적용은 실행 전에 이루어지며, 모든 결정은 감사 로그에 남습니다. 이런 구성에서는 2025년 12월의 사고가 다르게 끝납니다. rm -rf에 ~/ 인자가 붙으면 거부 규칙에 걸리고, 명령은 실행되지 않으며, 로그에는 텅 빈 홈 디렉터리 하나 대신 차단된 작업 하나가 남습니다.

실전 요약
- 일회용 환경 밖에서는
--dangerously-skip-permissions를 절대 사용하지 마십시오. 머신에 SSH 키나 dotfiles, 혹은 잃으면 아쉬울 무언가가 있다면 이 플래그는 그곳에 어울리지 않습니다. - YOLO 모드를 꼭 써야 한다면 격리하십시오. 마운트된 볼륨이 없는 Docker 컨테이너나 일회용 VM을 쓰면 피해 범위를 다시 만들 수 있는 것들로 한정할 수 있습니다.
- 프롬프트에서 정책으로 옮겨 가십시오. 프로젝트 디렉터리 밖의 파괴적인 작업이 사용자의 반응 속도가 아니라 규칙에 의해 거부되도록 실행 전 훅을 설정하십시오.
- 모든 것을 기록하십시오. 허용된 작업이라도 감사 추적이 있으면 "방금 무슨 일이 있었지?"가 포렌식이 아니라 검색으로 바뀝니다.
- MCP 설정을 다시 확인하십시오. 권한 건너뛰기는 추가해 둔 모든 MCP 도구에 적용되며, 각 도구는 무인 에이전트가 닿을 수 있는 범위를 넓힙니다.
문제는 속도가 아니었습니다
개발자들이 이 플래그를 켜는 것은 부주의해서가 아닙니다. 대안이 승인 프롬프트에 끝없이 시달리는 일이고, 생산성 향상은 실재하기 때문입니다. 잘못은 이 플래그가 제시하는 이분법, 즉 마찰 전부 아니면 보호 전무라는 선택지를 받아들이는 데 있습니다.
정책은 그 이분법을 깨뜨립니다. 경계를 한 번 정의하고, 그 안에서 에이전트가 최고 속도로 움직이게 하고, 1만 번에 한 번 일주일을 망칠 수 있는 명령은 결정론적 규칙이 잡아내게 하십시오. 코딩 에이전트는 앞으로 더욱 자율적이 될 뿐입니다. 던져야 할 질문은 모델을 신뢰하느냐가 아닙니다. 안전망이 터미널을 지켜보는 사용자에게 달려 있느냐입니다.
정책 방식을 2분 만에 확인해 보고 싶으신가요? pip install controlzero는 계정도 네트워크도 없이 로컬에서 실행됩니다. 거부 규칙 하나를 작성하고 파괴적인 호출이 차단되는 모습을 확인해 보십시오. Control Zero 빠른 시작
