webcoyote/clodpod
요약
ClodPod은 AI 에이전트가 호스트 컴퓨터와 격리된 상태에서 안전하게 코드를 작업할 수 있도록 프로젝트 디렉터리를 가상 머신(VM)에 매핑하는 도구입니다. Xcode와 개발 도구가 포함된 VM 환경을 제공하며, APFS CoW 기술을 활용해 빠른 재빌드와 효율적인 리소스 관리를 지원합니다.
핵심 포인트
- AI 에이전트의 작업을 호스트 시스템으로부터 격리하여 보안성 확보
- APFS CoW(Copy-on-Write) 캐싱 시스템을 통한 빠른 VM 생성 및 재빌드 지원
- Xcode 및 다양한 개발 도구가 포함된 맞춤형 VM 환경 구성 가능
- 메모리 예산 설정을 통한 병렬 VM 실행 및 리소스 최적화
- CI/CD 워크플로우를 위한 헤드리스 모드(--no-graphics) 지원
ClodPod은 프로젝트 디렉터리를 원하는 만큼 가상 머신 (Virtual Machine)에 매핑하여, AI 에이전트 (AI agents)가 호스트 컴퓨터로부터 격리된 상태로 사용자의 코드에서 작업할 수 있도록 합니다.
ClodPod 가상 머신에는 Xcode 및 일반적인 개발 도구들이 포함되어 있으며, 사용자의 개발 도구와 설정 파일을 추가하여 쉽게 확장할 수 있습니다.
-
프로젝트에 접근 권한을 가진 가상 머신을 구축하고 AI 에이전트를 실행합니다.
-
동일한 가상 머신 내에서 여러 프로젝트를 동시에 매핑할 수 있습니다.
-
여러 AI 에이전트 세션과 셸 프롬프트 (shell prompts)를 열거나 GUI를 사용할 수 있습니다.
-
--no-graphics옵션을 통해 CI/CD 워크플로우를 위한 헤드리스 모드 (Headless mode)를 지원합니다. -
Xcode 및 일반적인 개발 도구가 포함되어 있으며, 사용자만의 도구를 추가할 수 있습니다.
-
3계층 APFS CoW (Copy-on-Write) 캐싱 시스템을 사용하여 빠른 재빌드 및 재실행이 가능합니다.
-
프로젝트나 워크트리 브랜치 (worktree branches) 간의 전환을 위한 이름 지정된 VM 인스턴스를 제공합니다.
-
구성 가능한 메모리 예산 (memory budget)을 통한 병렬 VM 실행을 지원합니다.
사용법 (Usage):
# clodpod 클론
git clone https://github.com/webcoyote/clodpod ~/projects/clodpod
# clod 별칭을 생성하거나 경로(path)에 추가
...
서로 다른 프로젝트나 워크트리 브랜치를 위해 별도의 환경을 유지할 수 있도록 이름이 지정된 VM을 생성하세요. 각 VM은 베이스 VM의 저렴한 APFS CoW 클론입니다.
# 디렉터리가 마운트된 이름 지정 VM 생성
clod create myproject --dir project:/path/to/project
clod create feature-a --dir work:/path/to/repo/.worktrees/feature-a
...
기본적으로 VM은 호스트 RAM의 5/8을 공유하는 메모리 예산을 사용합니다. 인스턴스별 RAM과 총 예산을 구성할 수 있습니다:
# 특정 인스턴스에 대한 RAM 설정 (다음 실행 시 적용)
clod set --ram 8G myproject
# 워크스페이스 메모리 예산 설정
...
기본적으로 ClodPod은 ghcr.io/cirruslabs/macos-tahoe-xcode:latest VM 플레이버 (flavor)를 사용하지만, VM을 빌드할 때 MACOS_VERSION 및 MACOS_FLAVOR 환경 변수를 설정하여 구성할 수 있습니다:
MACOS_VERSION=sequoia MACOS_FLAVOR=vanilla clod shell
사용 가능한 대안을 확인하려면 Github의 cirrus packages 페이지를 참조하세요.
기본적으로 게스트 CPU 개수는 호스트 시스템과 동일하게 설정되며, 게스트 메모리는 호스트 메모리 * 5/8로 설정됩니다.
(NOTE1) Xcode에서 프로젝트를 컴파일할 리소스를 제공하기 위함입니다.
NOTE1: 이 값은 웹 브라우징에 충분한 메모리를 남기도록 경험적으로 계산되었습니다 (N=1). 제가 원래는 그렇게 해서는 안 되는 행동이지만요.
선택적 가상 머신 설정 (예시):
tart set clodpod-xcode --cpu 8
tart set clodpod-xcode --memory "$(( $(sysctl -n hw.memsize) * 2 / 3 / 1024 / 1024 ))"
커스텀 설정을 추가하려면 ./guest/home/README.md를 참조하세요.
이 프로젝트는 제가 rogue AI 에이전트가 실행될 때 제 컴퓨터를 파괴로부터 격리할 방법을 찾으려다 어리석게 시도한 결과물입니다 (예: --dangerously-skip-permissions를 사용하여 Claude Code를 실행하는 경우)
(자주 나타나는
ClodPod Copyright © 2025 Patrick Wyatt
자세한 내용은 LICENSE.md를 참조하세요.
기여와 버그 보고를 환영합니다.
이 프로젝트의 기여자 목록은 CONTRIBUTORS.md를 참조하세요.
이 프로젝트는 다른 오픈 소스(open-source) 저자들의 훌륭한 작업물을 기반으로 구축되었습니다:
- Tart: Apple Silicon 기반의 macOS 및 Linux 가상 머신 (VM) (FSL-1.1-MIT 라이선스 적용; 개인은 무료이며, 상업적 이용 시 유료 라이선스가 필요할 수 있음)
- Homebrew: 🍺 macOS(또는 Linux)를 위한 필수 패키지 관리자 (package manager)
- Sqlite: 세계에서 가장 많이 사용되는 데이터베이스 엔진 (database engine)
- Shellcheck: 셸 스크립트 (shell scripts)의 버그를 찾아주는 도구
- uv: Rust로 작성된 매우 빠른 Python 패키지 및 프로젝트 관리자 (package and project manager)
- Claude Code Hooks Mastery: Claude Code의 동작에 결정론적(deterministic) 또는 비결정론적(non-deterministic) 제어를 추가하기 위해 Claude Code 훅 (hooks)을 사용하는 방법을 빠르게 익히는 가이드
- StatusLine: Claude Code를 위한 프로젝트 상태 정보
... 뿐만 아니라 GNU, BSD, Linux, Git, Sqlite, Node, Python, netcat, jq 등을 포함합니다. "우리는 거인들의 어깨 위에 서 있습니다."
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기