Agent Safehouse, macOS 로컬 agent를 위한 deny-first 샌드박스

Hacker News에서 화제가 된 Agent Safehouse는 macOS에서 local LLM coding agent를 더 안전하게 실행하기 위한 오픈소스 프로젝트다. 핵심은 agent가 개발자 계정의 전체 권한을 그대로 상속받는 기본 구조를 뒤집고, 필요한 경로만 열어 주는 deny-first 정책을 kernel 레벨에서 적용하는 점이다. 프로젝트 문서와 README는 이를 practical least privilege 접근으로 설명한다.

구현 방식도 비교적 단순하다. Safehouse는 Apple의 sandbox-exec를 감싸고, 기본값을 deny-all에 가깝게 둔 뒤 현재 작업 중인 repo에는 read/write, 공유 라이브러리나 toolchain에는 read-only, 그리고 ~/.ssh, cloud credential, 다른 repo 같은 민감한 경로에는 명시적 deny를 둔다. agent가 정책 밖의 파일을 읽거나 수정하려 하면 애플리케이션 레벨에서 막는 것이 아니라 kernel이 syscall 자체를 거절한다.

single self-contained shell script로 시작할 수 있어 배포 부담이 작다.

Claude, Codex, Gemini CLI 같은 coding agent wrapper 예시가 이미 제공된다.

repo 공유 설정과 machine-local override를 분리하는 profile 구조를 지원한다.

문서 전반에서 완전한 격리보다 실무용 hardening layer라는 점을 분명히 한다.

이 프로젝트가 흥미로운 이유는 agent UX보다 containment를 먼저 다루기 때문이다. 최근 local agent workflow는 shell access, file system access, package manager, secret 노출 위험을 동시에 가져온다. Safehouse는 이 문제를 “agent에게 더 조심하라고 지시하는 것”이 아니라 “애초에 접근 가능한 표면을 줄이는 것”으로 해결하려 한다. 특히 여러 repo와 개인 파일이 뒤섞인 macOS 개발 환경에서는 이런 기본값이 실제 사고 확률을 크게 낮출 수 있다.

또 하나 중요한 점은 주장 수준이 과장되지 않았다는 것이다. 프로젝트는 Safehouse를 완벽한 boundary라고 말하지 않고, 실수와 과도한 권한 상속을 줄이는 hardening layer라고 설명한다. 그 표현이 오히려 신뢰를 높인다. agent 시대의 보안은 한 번에 완전한 격리를 약속하는 제품보다, 개발 workflow를 유지하면서 위험을 단계적으로 줄이는 도구가 더 빠르게 채택되기 때문이다.

원문 커뮤니티 글은 Hacker News 토론에서 볼 수 있고, 원 프로젝트는 공식 문서와 GitHub 저장소에 공개되어 있다.