shuru - macOS용 로컬 우선 Linux MicroVM 샌드박스 오픈소스
(shuru.run)- AI 에이전트 실행을 위한 경량 Linux 가상머신 환경으로, macOS의 Virtualization.framework를 기반으로 동작. 도커 필요없음
- 모든 실행이 기본적으로 일회성(Ephemeral) 으로 시작되어, 설치나 변경이 종료 시 자동 초기화됨
- Checkpoint 기능을 통해 디스크 상태를 스냅샷으로 저장하고, 복원·분기·재사용 가능
- 네트워크, CPU, 메모리, 디스크 크기를 명령줄 옵션이나 설정 파일로 세밀하게 제어 가능
- AI 코드 실행, 패키지 설치, 평가 및 테스트용으로 안전하고 재현 가능한 로컬 샌드박스 환경을 제공
로컬 우선 샌드박스 shuru 개요
- macOS에서 AI 에이전트용 경량 Linux VM을 실행하는 구조
- Apple Virtualization.framework를 사용해 에뮬레이션 없이 ARM64 네이티브 속도 제공
- Docker 의존성이 없으며, 기본적으로 임시적(Ephemeral) 실행 형태
- 각 실행은 깨끗한 rootfs에서 시작하며, 변경 사항은 저장하지 않는 한 유지되지 않음
상태 관리와 스냅샷
-
Checkpoint 기능으로 디스크 상태를 이름 있는 스냅샷으로 저장 가능
- 저장된 스냅샷은 복원, 분기, 반복 실행 가능
- Git 커밋처럼 환경 버전 관리가 가능함
- 예시 명령:
-
$ shuru checkpoint create myenv --allow-net -- sh -c 'apk add nodejs npm'→ ‘myenv’ 스냅샷 저장 -
$ shuru run --from myenv -- node -e 'console.log("ready")'→ 저장된 환경에서 즉시 실행
-
CLI 기능
- 단일 명령으로 VM을 부팅하고 종료하는 간단한 CLI 인터페이스 제공
-
$ shuru run -- echo "hello from the sandbox"→ 샌드박스 내 명령 실행 -
$ shuru run -- cat /etc/os-release | head -1→ Alpine Linux 환경 확인
-
-
네트워크 접근은 기본 비활성화,
--allow-net플래그로 NAT 활성화 가능 -
리소스 설정:
--cpus,--memory,--disk-size옵션으로 실행 환경 조정 -
포트 포워딩 지원:
-p 8080:8000형식으로 호스트와 게스트 간 연결 가능
AI 에이전트 실행 및 활용
-
AI 생성 코드 실행을 위한 격리된 VM 환경 제공
- 실시간 출력 확인 가능
- 패키지 설치, 코드 컴파일, 시스템 도구 사용을 안전하게 수행
- 병렬 샌드박스 실행으로 환경 간 일관된 평가 수행 가능
- 테스트, 디버깅, 프로토타이핑을 위한 일회용 Linux 환경으로 활용 가능
설치 및 시작
- 설치와 실행 모두 단일 명령으로 수행 가능
- 설치:
$ curl -fsSL https://shuru.run/install.sh | sh - 첫 실행:
$ shuru run
- 설치:
- 빠른 초기화와 폐기 가능한 환경으로, 개발자와 AI 시스템 모두에 안전한 실행 공간 제공
Hacker News 의견들
-
여기서 중요한 건 ‘로컬 VM’ 자체가 아니라 기본값의 방향이 반대라는 점임
대부분의 시스템은 지속적이고 네트워크 연결된 상태가 기본인데, 이건 반대로 일시적이고 격리된 환경이 기본임
신뢰할 수 없는 코드를 실행할 때 이런 차이가 꽤 중요함 -
macOS용으로 microterm.dev의 로컬 퍼스트 버전을 만들어볼 생각임
모든 타깃에서 동일한 환경을 유지하면서 속도와 RAM 용량만 달라지게 하는 게 목표임- 이게 VM이나 컨테이너를 어떻게 실행하는지 궁금함 — 클라우드 기반인지, 아니면 container2wasm 같은 방식인지
지금 폰에서 alpine 터미널을 쓰고 있는데, 이게 브라우저에서 돌아가는 건지 진짜 궁금할 정도임 - iOS Safari에서는 리디렉션 루프에 걸림 (로딩 표시가 90%쯤에서 멈췄다가 새로고침 반복 후 오류 발생함)
- 멋짐, 꼭 보고 싶음
- 이게 VM이나 컨테이너를 어떻게 실행하는지 궁금함 — 클라우드 기반인지, 아니면 container2wasm 같은 방식인지
-
‘local first’가 여기서는 무슨 뜻인지 궁금함. 그냥 로컬에서 실행된다는 의미인가?
- 맞음, 모든 게 내 머신에서 실행된다는 뜻임
E2B, sprites.dev 같은 서비스는 클라우드 샌드박스를 제공하지만, shuru는 Apple의 Virtualization.framework를 이용해 VM을 로컬에서 돌림
즉, 데이터가 Mac 밖으로 나가지 않음 - macOS만 지원하므로 현실적으로는 로컬 전용임
- 요즘은 이런 표현이 그냥 또 하나의 마케팅 유행어처럼 쓰이는 게 아쉬움
- 맞음, 모든 게 내 머신에서 실행된다는 뜻임
-
에이전트 스택이 점점 전문화된 계층 구조로 나뉘고 있고, 샌드박싱이 독립적인 영역으로 발전 중임
Shuru, E2B, Modal, Firecracker 래퍼 같은 사례들이 있음
예전에 쓴 글 “Don’t go monolithic — the agent stack is stratifying”에서도 이런 구조적 변화와 모놀리식 접근의 한계를 다뤘음- 글이 좋았음. 나도 부분적으로 AI를 활용한 소프트웨어 개발을 하면서 비슷한 경험을 했음
개발자와 AI가 함께 내린 설계 결정의 맥락을 저장하지 않으면 중요한 정보가 사라짐
다만 이 글이 micro VM 주제와 직접적으로 연결되는지는 잘 모르겠음
- 글이 좋았음. 나도 부분적으로 AI를 활용한 소프트웨어 개발을 하면서 비슷한 경험을 했음
-
Apple의 container 프로젝트와 비교하면 어떤 차이가 있는지 궁금함
이 분야의 혁신 흐름이 흥미로움- Apple container는 Docker 스타일의 워크플로우로, OCI 이미지와 레지스트리 중심임
반면 shuru는 체크포인트 기능이 있는 마이크로 VM에 집중해 훨씬 단순한 범위를 가짐
- Apple container는 Docker 스타일의 워크플로우로, OCI 이미지와 레지스트리 중심임
-
Windows용으로 이런 걸 구현한 사례가 있는지 궁금함
WSL은 일반 사용자 대상 앱을 배포할 때 설정이 필요해서 소비자용으로는 적합하지 않음 -
이 프로젝트 정말 멋짐. 몇 달째 Virtualization.framework 기반 micro VM을 기다리고 있었음
Docker도 괜찮지만 오버헤드가 크다는 게 문제였음
기본값이 일시적이고 네트워크가 꺼져 있는 점이 마음에 듦
호스트 디렉터리 매핑 기능을 추가할 계획이 있는지도 궁금함
나는 여러 백엔드(Docker, E2B, Modal, WASM 등)를 지원하는 ephemeral sandbox용 MCP 서버를 운영 중이라, 여기에 이걸 통합해볼 생각임
Kilntainers 프로젝트 링크 -
Lima와 비교했을 때 어떤 장점이 있는지 궁금함
- Lima도 설정만 잘 하면 shuru와 비슷한 걸 할 수 있음
차이는 기본값과 초기 설정의 간소화 정도임
shuru는 일시적 VM, 네트워크 비활성화, 매 실행마다 깨끗한 rootfs를 기본으로 제공함
설정 파일 없이shuru run만 입력하면 바로 실행됨
체크포인트와 브랜칭도 CLI에 내장되어 있음
Lima는 훨씬 크고 성숙한 프로젝트지만, shuru는 단순하고 학습용으로 적합한 도구로 개발 중임
- Lima도 설정만 잘 하면 shuru와 비슷한 걸 할 수 있음
-
새 프로젝트를 위해 이런 걸 찾고 있었음
내가 만드는 건 retool + OpenClaw의 결합형 툴로, 중소기업이 내부 앱을 빠르게 구축할 수 있게 돕는 솔루션임 -
Shuru 정말 멋짐
나도 비슷한 컨셉으로 Linux용 MicroVM 기반 툴을 개발 중임
기본은 오프라인이고, 아직 공개할 단계는 아니지만 내부적으로 dogfooding 중임