devvm이란?
devvm은 각 프로젝트 폴더마다 격리된 가상 머신을 생성합니다. VM에는 프로젝트에 필요한 툴체인이 포함되며, 호스트 머신에 에이전트를 직접 설치하지 않고도 사용자 또는 코딩 에이전트가 작업할 수 있는 샌드박스를 제공합니다.
각 VM은 Lima를 통해 실행됩니다. 기본적으로 devvm은 선택한 프로젝트 폴더만 마운트하고, 호스트에서 사용하는 것과 동일한 경로로 VM 안에 노출합니다. 해당 폴더에서 devvm을 다시 실행하면 같은 VM이 다시 열립니다.
주요 기능
- 프로젝트당 하나의 VM: 각 프로젝트 폴더에 자체 격리 환경이 제공됩니다.
- 자동 툴체인 감지: devvm은 프로젝트 파일을 검사해 필요한 툴체인을 확인합니다. 예를 들어
package.json이 포함된 프로젝트에는 Node.js 도구가 제공됩니다. - 코딩 에이전트 지원: Claude Code, Codex, opencode, pi를 설정, 스킬, MCP 서버와 함께 VM 내부에서 실행할 수 있습니다.
- 제어된 네트워킹: 새 VM은 기본적으로 허용 목록 네트워크 계층을 사용하며 승인된 호스트에만 연결할 수 있습니다.
- 호스트 측 시크릿: GitHub 및 Claude Code 토큰과 같은 자격 증명은 모든 네트워크 계층에서 호스트에 유지됩니다.
- 재사용 가능한 이미지: VM은 기본 이미지에서 복사되며 툴체인은 VM 간에 읽기 전용으로 공유됩니다. 초기 설정 후에는 새 VM을 몇 초 만에 시작할 수 있습니다.
- 선택적 레이어: 기본 제공 레이어에는
docker,nix,desktop이 있습니다. 직접 레이어를 만들 수도 있습니다. - 클론 모드: VM이 호스트 작업 트리를 마운트하는 대신 자체 Git 클론에서 작업하도록 할 수 있습니다.
시스템 요구 사항
devvm은 macOS 13 이상과 arm64 또는 x86_64 Linux를 지원합니다. Lima 2.2 이상과 관련 Lima 요구 사항이 필요합니다. 이 프로젝트는 Apple silicon Mac과 arm64 및 x86_64를 사용하는 Linux 시스템에서 테스트되었지만, 아직 Intel Mac에서는 테스트되지 않았습니다.
devvm 설치
Homebrew로 macOS에 설치
Homebrew 수식은 devvm과 Lima를 설치합니다.
brew trust --formula devvmhq/tap/devvm
brew install devvmhq/tap/devvmLinux에 설치
공식 설치 스크립트를 실행합니다.
curl -fsSL https://github.com/devvmhq/devvm/releases/latest/download/install.sh | bash이 스크립트는 macOS에서도 작동합니다. Lima, QEMU 또는 /dev/kvm 액세스를 설치하기 전에 확인을 요청합니다.
각 릴리스는 devvm minisign 키
RWSjzFsn7ETaijKJ2y7F4DtZobXmyv+LmdclJwZP/KmAkLUwOCzWF/2b로 서명됩니다. 실행하기 전에 다운로드를 확인하려면 설치 스크립트 확인 가이드를 따르세요.
설치 확인
설치 후 진단 명령을 실행합니다.
devvm doctor이 명령은 컴퓨터에서 devvm에 필요한 항목을 확인하고 누락된 항목을 얻는 방법을 안내합니다. 모든 요구 사항과 설치 프로그램 옵션은 전체 설치 가이드를 참조하세요.
첫 프로젝트 VM 만들기
- 프로젝트 폴더를 엽니다. 터미널에서 프로젝트가 있는 디렉터리로 이동합니다.
- devvm을 실행합니다. 제안된 VM 구성을 검토하고 확인합니다.
- VM 내부에서 작업합니다. devvm은 프롬프트가
(devvm)으로 시작하는 셸을 엽니다.
cd ~/some-project
devvmdevvm은 프로젝트 파일에서 요청하는 툴체인을 감지합니다. VM을 만들기 전에 툴체인, 코딩 에이전트, 레이어, 네트워크 계층 및 크기를 직접 설정할 수도 있습니다.
처음 실행하면 새 VM과 기본 이미지의 기본값을 정하기 위한 몇 가지 질문이 표시됩니다. 여기에는 기본 VM 크기, 코딩 에이전트, 선택적 기본 이미지 추가 항목이 포함됩니다. 기본 이미지 빌드는 한 번만 몇 분이 걸리며, 이후 프로젝트 VM은 일반적으로 몇 초 만에 시작됩니다.
같은 VM 다시 열기
프로젝트 폴더로 돌아가 같은 명령을 실행합니다.
cd ~/some-project
devvm프로젝트 폴더마다 자체 VM이 유지되므로 devvm은 관련 없는 새 VM을 만드는 대신 기존 환경을 다시 엽니다.
코딩 에이전트 실행
VM 셸이 열리면 내부에서 지원되는 에이전트를 시작합니다. 예를 들어 다음 명령으로 Claude Code를 실행할 수 있습니다.
claude이렇게 하면 코딩 에이전트가 호스트에 설치되지 않고 샌드박스 내부에서 실행됩니다. devvm은 지원되는 에이전트의 설정과 로그인 정보를 자체 저장소에 보관합니다.
Claude Code에 로그인
Claude Code를 처음 시작하기 전에 VM에서 로그인을 시작합니다.
devvm agent login claude로그인 정보는 사용자 컴퓨터에 유지됩니다. 자세한 내용은 Claude Code 로그인 가이드를 참조하세요.
기존 에이전트 구성 가져오기
호스트에서 이미 지원되는 코딩 에이전트를 사용하고 있다면 devvm이 기존 구성을 자체 저장소로 복사할 수 있습니다.
devvm agent import이 기능은 기존 로컬 에이전트에서 사용하던 설정을 가져오기 위한 것입니다. 지원되는 통합 대상에는 Claude Code, Codex, opencode, pi가 포함됩니다.
클론 모드로 작업 트리 보호
기본 모드에서는 호스트 편집기와 VM이 마운트된 프로젝트 파일을 공유합니다. 따라서 VM 내부에서 변경한 내용이 동일한 작업 트리에 나타납니다.
더 강력한 분리를 위해 --clone 옵션과 함께 devvm을 시작하세요. 그러면 VM에 자체 저장소 클론이 생성되어 VM 내부의 프로세스가 호스트 작업 트리나 호스트의 .git 디렉터리에 접근하지 못합니다.
devvm --cloneVM 내부에서 작업을 커밋한 후에는 devvm 원격 저장소를 통해 호스트에서 가져올 수 있습니다.
git fetch devvm가져온 브랜치는 devvm/main과 같은 이름으로 사용할 수 있습니다. 병합하기 전에 차이점을 검토하세요.
git log -p main..devvm/main이 워크플로에서는 명시적으로 가져온 경우에만 VM의 작업이 저장소에 반영됩니다. 전체 워크플로는 클론에서 작업하기를 참조하세요.
고급 구성 팁
툴체인을 신중하게 선택하기
자동 감지는 유용한 시작점을 제공하지만, VM을 만들기 전에 제안된 설정을 검토하세요. 감지된 선택 항목이 의도한 환경과 일치하지 않으면 생성 과정에서 툴체인을 사용자 지정할 수 있습니다. 지원되는 옵션은 툴체인 문서에 나와 있습니다.
환경 레이어 추가하기
프로젝트에 해당 기능이 필요한 경우 기본 제공되는 docker, nix 또는 desktop 레이어를 사용하세요. 사용자 지정 레이어 정의를 시작하려면 다음을 실행합니다.
devvm layer new이미지를 사용자 지정하기 전에 레이어 문서를 검토하세요.
네트워크 액세스 검토하기
새 VM에는 기본적으로 허용 목록 네트워크 계층이 적용됩니다. 특히 자율 코딩 에이전트를 실행할 때는 액세스 가능한 호스트 목록을 가능한 한 좁게 유지하세요. 다른 네트워크 계층은 네트워크 안전 가이드에 문서화되어 있습니다.
샌드박스 경계 이해하기
VM은 위험을 줄여 주지만 모든 보안 취약점을 해결하지는 않습니다. VM이 액세스할 수 있는 항목을 파악하고, 불필요한 리소스 노출을 피하며, 생성된 변경 사항을 승인하기 전에 검토하세요. 중요한 프로젝트를 VM에 맡기기 전에 안전하게 사용하기를 읽어 보세요.
CLI 레퍼런스 확인하기
이 튜토리얼에서 다루지 않은 명령, 플래그 및 인수는 공식 CLI 레퍼런스를 사용하세요. 더 폭넓은 사용 문서에서는 포트, VM 크기 조정, VM 간 연결, SSH, 편집기, 이미지 및 문제 해결도 다룹니다.
마무리
devvm은 각 프로젝트에 격리된 개발 환경을 제공하는 실용적인 방법입니다. devvm을 설치하고, devvm doctor로 호스트를 검증한 다음, 프로젝트 디렉터리에서 devvm을 실행하고, 생성된 셸 내부에서 코딩 에이전트를 시작하세요. 민감한 작업에는 제한된 네트워킹과 devvm --clone을 함께 사용하고, 가져온 변경 사항을 병합하기 전에 검토하세요.
