Freestyle – AI 코딩 에이전트를 위한 VM Sandbox 인프라
Launch HN: Freestyle – Sandboxes for Coding Agents
TL;DR Highlight
Sandbox 인프라는 700ms 이내 VM 시작, 실행 중 VM 포킹, Pause/Resume 기능으로 AI 코딩 에이전트가 수만 개의 VM을 동시에 실행하게 한다.
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
// 병렬 에이전트 포킹 예시 (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
관련 논문
AI 코딩 루프에 Formal Verification Gate 적용하기
AI가 생성한 코드에서 보안 불변식(invariant)을 지키게 하려면 프롬프트 지시보다 타입 시스템 같은 구조적 제약이 훨씬 효과적이라는 주장과 구현 방법을 소개한다.
AI로 Rust 코드 100K 라인 작성하며 얻은 교훈 (2025)
Azure RSL(분산 합의 라이브러리)을 Rust로 재구현하면서 AI 코딩 에이전트를 활용해 4주 만에 100K 라인을 작성한 경험담으로, Code Contracts와 Spec-Driven Development를 AI와 조합하는 실전 워크플로우를 공유한다.
프로덕션 LLM Agent를 위한 Runtime Architecture Pattern 선택 및 조합 방법론
LLM agent가 왜 터지는지 이름 붙이고, 어떤 아키텍처 패턴을 언제 써야 하는지 5단계로 정리한 실전 가이드
Forge – Guardrails로 8B 모델 성능을 53%에서 99%로 끌어올리기
작은 로컬 LLM(8B)에 guardrails(구조적 안전망)를 씌워 멀티스텝 에이전트 작업 성공률을 53%에서 99%까지 올린 Python 프레임워크 Forge 공개. 모델 자체는 건드리지 않고 실행 환경을 강화하는 접근법이라 주목받고 있음.
Mini Shai-Hulud 재등장: npm 패키지 314개 동시 감염 사건 분석
2026년 5월 19일, npm 계정 하나가 탈취되어 22분 만에 637개 악성 버전이 배포됐고, echarts-for-react·size-sensor 등 월 수백만 다운로드 패키지들이 감염되어 AWS 자격증명·SSH 키·AI 코딩 에이전트까지 탈취하는 정교한 공급망 공격이 발생했다.
Code as Agent Harness: Executable, Verifiable, Stateful Agent 시스템을 향해
LLM 에이전트에서 코드를 단순 출력물이 아닌 추론·행동·환경 모델링의 실행 인프라로 재정의한 102페이지짜리 서베이