-
macOS 네이티브 샌드박스를 통해 로컬 AI 에이전트가 시스템 외부를 변경하지 못하도록 격리하는 도구
- 모든 에이전트가 독립된 샌드박스 환경에서 실행되어, 사용자 홈 디렉터리나 다른 프로젝트에 접근 불가
-
Deny-first 접근 모델을 적용해, 명시적으로 허용된 디렉터리만 읽기·쓰기 가능
- 설치는 단일 Bash 스크립트로 완료되며, 별도 빌드나 의존성 없이 바로 실행 가능
- LLM 기반 프로필 생성 기능을 통해 최소 권한 sandbox-exec 설정을 자동화할 수 있음
개요
- Agent Safehouse는 macOS 전용 샌드박싱 시스템으로, 로컬에서 실행되는 AI 에이전트가 시스템 파일을 손상시키지 않도록 보호
- “Go full --yolo. We've got you.” “Move fast, break nothing”
- LLM의 확률적 특성으로 인한 예기치 못한 명령 실행 위험을 차단
-
모든 주요 에이전트가 샌드박스 내에서 완벽히 동작하며, 외부 시스템에는 영향을 미치지 않음
-
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 커널 수준의 접근 제어를 활용해 기본적으로 안전한 실행 환경을 제공
- 단일 스크립트 기반으로 개발자 워크플로우에 쉽게 통합 가능