Freestyle – AI 코딩 에이전트를 위한 VM Sandbox 인프라
Launch HN: Freestyle – Sandboxes for Coding Agents
TL;DR Highlight
AI 코딩 에이전트가 수만 개의 VM을 동시에 실행할 수 있도록 설계된 Sandbox 인프라로, 700ms 이내 VM 시작, 실행 중 VM 포킹(복제), Pause/Resume 기능이 핵심이다.
Who Should Read
Devin, Cursor Agent, Lovable, Bolt처럼 AI가 코드를 직접 생성·실행하는 서비스를 개발 중인 엔지니어, 또는 CI/CD에서 AI 코드 리뷰 봇이나 테스트 자동화를 운영하는 백엔드 개발자.
Core Mechanics
- Freestyle은 AI 코딩 에이전트 전용 VM Sandbox 서비스로, API 요청부터 VM이 준비되기까지 700ms 이하의 즉각적인 시작 시간을 제공한다.
- 가장 차별화된 기능은 'Live Forking'으로, 실행 중인 VM을 멈추지 않고 통째로 복제할 수 있다. 예를 들어 하나의 VM을 3개로 포크해서 각각 'API 엔드포인트 구현', '프론트엔드 UI 구현', '테스트 스위트 작성'을 병렬로 AI에게 맡기는 워크플로가 가능하다.
- Pause & Resume 기능을 통해 VM을 일시 중단하면 비용이 0이 되고, 다음 실행 요청 시 정확히 중단된 상태에서 재개된다. 코드 예시에서 `idleTimeoutSeconds: 60` 설정 시 60초 유휴 상태면 자동 Pause된다.
- 파일시스템만 포크하는 경쟁 서비스들과 달리, Freestyle은 VM의 전체 메모리(RAM 상태)까지 포크한다고 명시하고 있다. 이 덕분에 에이전트가 중간 실행 상태 그대로 여러 방향으로 탐색(branch-and-explore)하는 패턴이 가능하다.
- Git 저장소 관리 기능도 내장되어 있어 에이전트가 생성한 코드를 Freestyle 자체 Git repo에 저장하거나, GitHub와 양방향 동기화하고, 브랜치·경로·이벤트 타입별로 Webhook을 세밀하게 설정할 수 있다.
- 코드 리뷰 봇 사용 사례에서는 VM에서 `bun run lint`, `bun test`를 실행한 뒤 AI가 diff를 리뷰하고, 테스트 실패 여부에 따라 GitHub PR에 'REQUEST_CHANGES' 또는 'APPROVE'를 자동으로 달아준다.
- 인프라는 자체 베어메탈(bare-metal) 서버 위에 구축되어 있어 클라우드 가상화 오버헤드를 줄였고, eBPF·XDP 같은 저수준 네트워크 기능도 지원한다. 보안 측면에서 Sandbox를 메인 VPC 외부에 격리해 구성했다고 밝혔다.
- JS Sandbox API는 이미 제공 중이었고, 이번 런치로 완전한 VM 기반 Sandbox를 추가했다. Node.js/Bun 런타임과 개발 서버(`bun run dev`) 자동 실행을 기본 지원한다.
Evidence
- 메모리 포킹 기능에 대한 관심이 가장 높았다. 한 댓글에서는 VM 전체 메모리를 실행 중에 포크하는 것은 경쟁사들이 파일시스템만 복사하는 것과 차원이 다른 접근이라고 평가했고, Copy-on-Write 방식으로 구현됐을 경우 O(1) 복잡도라 머신 크기와 무관하게 비용이 늘지 않는다는 기대를 표했다.
- 실제로 수천 개의 Sandbox를 Azure, GCP, AWS에서 표준 VM으로 운영 중인 팀의 댓글이 있었는데, 그들은 Freestyle이 표준 VM 대비 무엇이 다른지 불분명하다고 했다. 특히 포킹 기능을 쓰려면 에이전트 코드가 포킹을 인식하도록 수정해야 하는지, 아니면 투명하게 동작하는지가 핵심 의문이었다.
- Freestyle 대비 경쟁사 비교 요청이 여러 댓글에서 나왔다. E2B, Daytona, Modal, Blaxel, Vercel, Cloudflare, Fly Sprites 등이 언급됐고, 가격과 성능 비교 매트릭스를 공개해달라는 요청이 많았다.
- 50개의 동시 VM 한도가 낮다는 지적이 있었다. 유사 서비스를 자체 구축한 팀의 사례도 있었는데, Firecracker VM을 클러스터로 묶어 워밍 풀을 유지하면 부팅 시간 없이 즉시 Sandbox를 제공할 수 있었다고 했다.
- Windows 환경 지원 부재가 언급됐다. Freestyle을 포함한 현재 모든 Sandbox 플랫폼이 Linux 전용이라, 엔터프라이즈 소프트웨어(ERP 등) 자동화가 필요한 Windows 워크플로에는 사용할 수 없다는 갭이 지적됐다. 이에 대한 대안으로 오픈소스 Windows 에이전트 인프라인 Dexbox가 소개됐다.
How to Apply
- Lovable, Bolt, V0처럼 AI가 앱을 자동 생성하는 서비스를 만들 때, `freestyle.git.repos.create()`로 템플릿 레포를 생성하고 `VmDevServer`를 설정하면 AI가 코드를 생성하는 즉시 개발 서버가 자동으로 뜨는 환경을 API 호출만으로 구성할 수 있다.
- Devin, Cursor Agent처럼 하나의 태스크를 병렬로 처리하고 싶을 때, `vm.fork({ count: 3 })`으로 실행 중인 VM을 복제해 각 fork에 서로 다른 작업을 `Promise.all`로 동시에 맡기면 전체 작업 시간을 크게 줄일 수 있다.
- GitHub PR에 AI 코드 리뷰 봇을 달 때, VM에서 `vm.exec('bun run lint')`와 `vm.exec('bun test')`를 실행한 결과를 바탕으로 AI 리뷰를 생성하고, 테스트 실패 시 자동으로 'REQUEST_CHANGES'를 달도록 조건 분기하면 CI에 통합 가능한 자동 리뷰 파이프라인을 구성할 수 있다.
- 사용자와 대화하는 AI 코딩 어시스턴트를 운영할 때, `persistence: { type: 'persistent' }`와 `idleTimeoutSeconds: 60`을 설정하면 대화 사이 유휴 시간에는 비용이 발생하지 않고, 다음 메시지가 오면 자동으로 이전 상태 그대로 VM이 재개되어 세션 상태를 유지하면서 비용을 최소화할 수 있다.
Code Example
snippet
// 병렬 에이전트 포킹 예시 (Devin, Cursor Agent 스타일)
import { freestyle } from "freestyle-sandboxes";
import { VmBun } from "@freestyle-sh/with-bun";
const { vm } = await freestyle.vms.create({
git: {
repos: [
{ repo: "https://github.com/user/repo.git" },
]
}
});
// 실행 중인 VM을 3개로 복제
const { forks } = await vm.fork({ count: 3 });
// 각 fork에 다른 작업을 병렬로 할당
await Promise.all([
ai(forks[0], "Build the API endpoints"),
ai(forks[1], "Build the frontend UI"),
ai(forks[2], "Write the test suite"),
]);
// AI 코드 리뷰 봇 예시
const { stdout: lint } = await vm.exec("bun run lint");
const { stdout: test } = await vm.exec("bun test");
const review = await ai(vm, "Review the diff for bugs");
await github.pulls.createReview({
body: review,
event: test.includes("FAIL") ? "REQUEST_CHANGES" : "APPROVE",
});
// Persistent VM + 자동 Pause 예시
const { vm: persistentVm } = await freestyle.vms.create({
persistence: { type: "persistent" },
idleTimeoutSeconds: 60, // 60초 유휴 시 자동 Pause, 비용 0
});
while (true) {
const userMessage = await getNextMessage();
const result = await ai(persistentVm, userMessage);
await respond(result);
}Terminology
Live Forking실행 중인 VM을 멈추지 않고 그 순간의 메모리와 디스크 상태를 통째로 복사해 새로운 VM을 만드는 기술. 마치 게임 세이브 파일을 복사해 여러 경우의 수를 동시에 실험하는 것과 같다.
Copy-on-Write메모리를 실제로 복사하지 않고 원본을 공유하다가, 어느 한쪽에서 수정이 발생하는 시점에만 해당 부분을 복사하는 기법. 포킹 비용을 크게 줄일 수 있다.
FirecrackerAWS가 만든 초경량 가상머신(VM) 기술로, 일반 VM보다 훨씬 빠르게 시작되고 자원 소비가 적어 수천 개의 Sandbox를 운영할 때 많이 쓰인다.
eBPF/XDPLinux 커널에서 네트워크 패킷을 고속으로 처리하거나 시스템 동작을 모니터링할 수 있는 저수준 기술. 일반 애플리케이션 개발에는 잘 안 쓰이지만 고성능 네트워킹이나 보안 도구를 만들 때 필요하다.
Warm PoolVM 기동 시간을 없애기 위해 미리 일정 수의 VM을 켜두고 대기시키는 방식. 요청이 들어오면 즉시 할당해 지연 없이 제공할 수 있다.
Bare Metal클라우드 가상화 계층 없이 물리 서버에 직접 올리는 방식. 가상화 오버헤드가 없어 성능이 높지만 운영 복잡도가 증가한다.