안전한 실험과 위험한 작업을 위한 격리 환경 구축 방법을 다룹니다.
--dangerously-skip-permissions 플래그는 매우 편리하지만 위험합니다. ykdojo는 이를 "보호되지 않은 성관계"에 비유하며, 컨테이너라는 안전장치를 사용할 것을 강력히 권장합니다.
Docker 컨테이너 설정:
FROM ubuntu:22.04
# 기본 도구 설치
RUN apt-get update && apt-get install -y \
curl git tmux vim \
nodejs npm python3 python3-pip
# Claude Code 설치
RUN curl -fsSL https://claude.ai/install.sh | sh
# Gemini CLI 설치 (선택사항)
RUN npm install -g @google/generative-ai-cli
# 작업 디렉토리
WORKDIR /workspace
CMD ["/bin/bash"]
컨테이너 실행:
# 이미지 빌드
docker build -t claude-sandbox .
# 컨테이너 실행 (호스트 디렉토리 마운트)
docker run -it --rm \
-v $(pwd):/workspace \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
claude-sandbox
# 컨테이너 안에서 Claude Code 실행
claude --dangerously-skip-permissions
로컬의 메인 Claude가 tmux를 통해 컨테이너 안의 "워커" Claude에게 작업을 지시하고 결과를 받아오는 워크플로우:
# 메인 Claude가:
# 1. docker run으로 컨테이너 시작
# 2. tmux 세션 생성
# 3. 워커 Claude 실행
# 4. tmux send-keys로 프롬프트 전송
# 5. tmux capture-pane으로 출력 읽기
# 6. 결과를 메인 세션에 반환
ykdojo의 실제 사례:
ykdojo는 새 버전의 Claude Code가 출시될 때마다, 시스템 프롬프트 패치를 업데이트하는 작업을 컨테이너 안의 Claude에게 맡깁니다. 워커 Claude는:
이 모든 과정이 자율적으로 진행되며, 메인 Claude는 최종 결과만 검토합니다.
/sandbox 명령어를 사용하면 한 번 경계를 정의하고, Claude가 그 안에서 자유롭게 작업하도록 할 수 있습니다.
Sandbox 설정 예시:
/sandbox
# Claude가 묻습니다:
"어떤 명령어를 자동 승인할까요?"
> "npm install, npm test, git status, git diff를 자동 승인해줘"
# 이제 이 명령어들은 매번 물어보지 않고 자동 실행됩니다.
와일드카드 지원:
> "mcp__server__* 패턴의 모든 MCP 서버 도구를 자동 승인해줘"
Ado의 조언:
"Sandbox는 속도와 보안을 동시에 제공합니다. 신뢰할 수 있는 작업에는 Sandbox를, 실험적인 작업에는 컨테이너를 사용하세요."
claude --dangerously-skip-permissions
이 플래그는 모든 권한 요청에 자동으로 "예"라고 답합니다.
YOLO 모드를 사용해야 할 때:
절대 사용하지 말아야 할 때: