- macOS 네이티브 샌드박스를 통해 로컬 AI 에이전트가 시스템 외부를 변경하지 못하도록 격리하는 도구
- 모든 에이전트가 독립된 샌드박스 환경에서 실행되어, 사용자 홈 디렉터리나 다른 프로젝트에 접근 불가
- Deny-first 접근 모델을 적용해, 명시적으로 허용된 디렉터리만 읽기·쓰기 가능
- 설치는 단일 Bash 스크립트로 완료되며, 별도 빌드나 의존성 없이 바로 실행 가능
- LLM 기반 프로필 생성 기능을 통해 최소 권한 sandbox-exec 설정을 자동화할 수 있음
개요
- Agent Safehouse는 macOS 전용 샌드박싱 시스템으로, 로컬에서 실행되는 AI 에이전트가 시스템 파일을 손상시키지 않도록 보호
- “Go full
--yolo. We've got you.” “Move fast, break nothing” - LLM의 확률적 특성으로 인한 예기치 못한 명령 실행 위험을 차단
- “Go full
- 모든 주요 에이전트가 샌드박스 내에서 완벽히 동작하며, 외부 시스템에는 영향을 미치지 않음
-
Deny-first 접근 모델을 채택해, 기본적으로 모든 접근을 차단하고 명시적으로 허용된 경로만 접근 가능
- 예시:
~/my-project는 읽기/쓰기 허용,~/.ssh,~/.aws,~/other-repos는 접근 거부
- 예시:
설치 및 실행
- 설치는 단일 셀 스크립트 다운로드로 완료
-
curl명령으로 스크립트를 받아~/.local/bin/safehouse에 저장 후 실행 권한 부여
-
- 이후
safehouse명령으로 원하는 에이전트를 실행- 예:
safehouse claude --dangerously-skip-permissions
- 예:
- Safehouse는 기본적으로 현재 작업 디렉터리(git root) 에 읽기/쓰기 권한을 부여하고, 도구 체인 디렉터리에는 읽기 전용 접근을 허용
샌드박스 검증 예시
- 민감한 파일 접근 시 커널 수준에서 차단됨
-
safehouse cat ~/.ssh/id_ed25519실행 시 “Operation not permitted” 오류 발생 - 다른 프로젝트 디렉터리(
~/other-project)는 보이지 않음 - 현재 프로젝트 디렉터리는 정상적으로 접근 가능
-
자동화 및 프로필 생성
-
쉘 함수 추가로 모든 에이전트를 기본적으로 Safehouse 내에서 실행 가능
- 예:
.zshrc또는.bashrc에safe()함수 정의 후claude,codex,amp,gemini명령을 자동 샌드박싱 - 샌드박스 없이 실행하려면
command claude형태로 호출
- 예:
-
LLM 기반 프로필 생성 기능 제공
- Claude, Codex, Gemini 등 모델이 Safehouse 템플릿을 분석해 최소 권한 sandbox-exec 프로필을 생성
- 홈 디렉터리와 도구 체인 정보를 기반으로
~/.config/sandbox-exec.profile경로에 저장 - 현재 작업 디렉터리에 대한 접근 권한과 에이전트별 단축 명령어를 포함
보안 및 활용 의의
- LLM 기반 로컬 에이전트가 의도치 않은 파일 삭제나 시스템 변경을 수행하지 못하도록 보호
- macOS 커널 수준의 접근 제어를 활용해 기본적으로 안전한 실행 환경을 제공
- 단일 스크립트 기반으로 개발자 워크플로우에 쉽게 통합 가능