clawk
저장소에서 명령 한 번으로 일회용 리눅스 VM 을 띄우는 실행기
brew install clawkwork/tap/clawk코딩 에이전트에게 내 기계 대신 일회용 리눅스 가상머신을 주는 도구입니다. 저장소로 들어가 명령 하나를 치면 코드만 마운트된 가상머신 안에서 에이전트가 관리자 권한으로 돌아갑니다. 승인 창을 계속 누르거나 권한 확인을 통째로 끄는 두 가지 나쁜 선택지 대신, 경계를 프롬프트 규칙이 아니라 별도 기계로 만든 셈입니다. 내 파일과 키체인은 들어가지 않고 열린 구멍은 마운트한 것뿐입니다. 네트워크는 허용 목록으로 막아서 목록에 없는 주소로 나가는 시도는 연결이 거부됩니다. SSH 에이전트는 전달돼서 커밋을 밀어 올리는 작업은 그대로 됩니다. 애플 실리콘 맥이 기준이고 리눅스 지원은 실험 단계입니다.
판단
이럴 때 씁니다
- 에이전트에게 승인 없이 명령을 맡기되 내 기계는 지키고 싶을 때
- 패키지 설치와 서버 실행까지 자유롭게 하도록 두어야 할 때
- 나가는 네트워크를 허용 목록으로 막고 싶을 때
이럴 땐 쓰지 마세요
- 애플 실리콘 맥이 기준입니다. 리눅스는 실험 단계입니다
- 가상머신을 띄우므로 자원을 씁니다
- 호스트의 도구를 그대로 쓰던 작업은 마운트를 다시 설계해야 합니다
차별점
- 경계가 프롬프트 규칙이 아니라 별도 기계입니다.
- 도커나 큐에뮤, 관리자 권한 없이 애플의 가상화 기능만 씁니다.
- 네트워크 허용 목록으로 나가는 연결을 차단합니다.
- 세션에 나중에 다시 붙을 수 있습니다.
워크플로
- 01홈브루로 설치합니다.
- 02작업할 저장소로 들어갑니다.
- 03명령 하나로 샌드박스를 띄우고 에이전트를 붙입니다.
- 04필요하면 같은 샌드박스에 셸이나 다른 에이전트를 추가로 붙입니다.
- 05작업이 끝나면 샌드박스를 지웁니다.
주요 명령
| 명령 | 설명 |
|---|---|
brew install clawkwork/tap/clawk | 설치합니다. 도커나 큐에뮤 같은 별도 준비물이 없습니다. |
clawk | 현재 폴더용 샌드박스를 띄우고 에이전트를 붙입니다. |
clawk run shell | 같은 샌드박스에 셸로 들어갑니다. |
clawk attach | 돌고 있는 세션에 다시 붙습니다. |
clawk destroy | 샌드박스를 지웁니다. |
함정
설치 전에 확인하세요
- 애플 실리콘 맥 14 이상이 기준입니다. 리눅스는 다른 가상화 방식으로 실험 지원이고 별도 안내 문서를 따라야 합니다.
- 홈은 게스트 것이라 SSH 키가 들어가지 않습니다. 다만 SSH 에이전트는 전달되므로 커밋을 밀어 올리는 작업은 됩니다.
- 네트워크 허용 목록에 없는 주소는 연결이 거부됩니다. 의존성을 받는 주소를 빠뜨리면 빌드가 실패합니다.
- 제거할 때 샌드박스를 먼저 지우고 상태 폴더를 지워야 합니다. 백그라운드 서비스를 남기지 않는 구조라 프로세스는 가상머신과 함께 끝납니다.
비교
샌드박스 도구는 대체로 프로세스 권한을 좁히는 쪽이라 설정이 늘수록 예외가 쌓입니다. 이쪽은 아예 기계를 하나 더 띄워서 그 논쟁을 없앴습니다. 대신 가상머신을 굴리는 비용이 있고 호스트 도구를 쓰던 습관은 마운트 설계로 바꿔야 합니다.
최근 변경
0.4.0 에서 스왑과 시리얼 전달, MCP 선언, 새 실행기, 호스트 전역 기본값이 함께 들어갔습니다.