Kitesurf는 AI 에이전트를 위해 특별히 설계된 상태 비저장(stateless), 헤드리스 브라우저 엔진입니다. 탭을 표시하거나, 픽셀 단위의 완벽한 애니메이션을 렌더링하거나, 확장 프로그램을 실행할 수 없습니다. Kitesurf가 할 수 있는 일은 웹 페이지를 열고, 스크린샷을 생성하며, HTML이나 DOM 콘텐츠를 추출하는 것입니다. 이 모든 작업을 헤드리스 크로미움보다 훨씬 적은 CPU와 메모리만으로 수행합니다. Cloudflare는 '에이전틱 클라우드(Agentic Cloud)'를 위한 인프라로 이 프로젝트를 소개했습니다 .
첫 번째 커밋은 2026년 5월에 이루어졌으며, 약 12주 후인 8월에 프로덕션 베타 버전이 출시되었습니다 . 엔진은 Rust로 작성되었으며 WebAssembly로 컴파일되어 기존의 오픈소스 Rust 구성 요소들을 조합하여 만들어졌습니다 :
이 브라우저는 별도의 Chrome 프로세스가 아닌 Cloudflare Workers의 V8 격리 환경 내에서 전체가 실행됩니다 . 각 페이지나 아웃오브프로세스 iframe은 깨끗한 전역 스코프를 가진 자체 격리 환경을 할당받아, 페이지 간 오염과 프롬프트 인젝션 공격을 방지합니다 . Kitesurf는 JavaScript Native RPC와 Dynamic Workers를 통해 통신하는 3~4개의 특수 Worker로 구성됩니다 :
사용자가 AI 에이전트이기 때문에, Cloudflare는 인간용 브라우저에 필요한 거의 모든 기능을 제거했습니다 :
그 결과, HTML 문자열, DOM 트리 또는 스크린샷과 같은 구조화된 기계 판독 가능 출력에 집중하는 초경량 엔진이 탄생했습니다.
Cloudflare는 14개 URL로 구성된 코퍼스(corpus)에 대해 5회 'Quick Action' 실행의 중앙값(median)을 기준으로 Kitesurf와 웜 풀(warm pool) 크로미움을 비교한 결과를 공식 문서에 공개했습니다 . 아래 표는 Cloudflare 문서에서 인용한 결과로, Kitesurf의 확실한 리소스 우위를 보여줍니다:
| 작업 | 측정 항목 | Kitesurf | 크로미움 (웜 풀) | Kitesurf 우위 |
|---|---|---|---|---|
| 스크린샷 | CPU 시간 | 380 ms | 1,173 ms | CPU 3.1배 적음 |
| 스크린샷 | 메모리 | 57.8 MiB | 271.0 MiB | 메모리 4.7배 적음 |
| HTML 추출 | CPU 시간 | 229 ms | 877 ms | CPU 3.8배 적음 |
| HTML 추출 | 메모리 | 39.4 MiB | 273.7 MiB | 메모리 7.0배 적음 |
트레이드오프: 크로미움은 여전히 실제 소요 시간(wall-clock time)에서 약 1.7~1.8배 빠릅니다. 이는 주로 V8의 JIT 컴파일 JavaScript 엔진이 Kitesurf의 Rust/Wasm 파이프라인보다 작업별 지연 시간이 짧기 때문입니다 . 스크린샷 작업의 경우 Kitesurf의 실제 소요 시간은 1,148ms인 반면 크로미움은 637ms였고, HTML 추출의 경우 각각 785ms와 443ms였습니다 .
Cloudflare 자체 비용 추산에 따르면, 규모를 고려할 때 Kitesurf의 페이지 로드 한 번당 비용은 약 $0.00089인 반면, 웜 크로미움 세션은 $0.0031로, 3.5배의 비용 절감 효과가 있습니다 .
기존 Puppeteer, Playwright, chrome-remote-interface 및 MCP/CDP 클라이언트는 Browser Run 엔드포인트에 단일 쿼리 파라미터를 추가하는 것만으로 Kitesurf를 사용할 수 있습니다 :
browser=kitesurf
예를 들어 Browser Run CDP 또는 Quick Action 엔드포인트에서 기존 코드를 변경할 필요 없이, 단지 이 파라미터를 추가하면 렌더링 엔진만 교체됩니다 . Kitesurf는 215,000개 이상의 웹 플랫폼 테스트(Web Platform Tests)를 통과했으며, DOM 서브테스트 약 97%, HTML 서브테스트 약 96%의 적용 범위를 보여주므로 기존 자동화 스크립트가 거의 문제없이 작동합니다 .
Kitesurf는 베타 기간 동안 무료로 제공되며(계정당 사용량 제한 있음), 공개 플레이그라운드(kitesurf.cloudflare.app)에서도 체험해볼 수 있습니다 .
Cloudflare의 공식 문서에는 Kitesurf가 아직 수행할 수 없는 작업들이 명시되어 있습니다 :
Kitesurf는 Cloudflare가 '버스트 처리에 최적화된 일회성 세션'이라고 부르는 작업, 즉 스크래핑, 추출, 스크린샷 후 종료하는 방식에 최적화되어 있습니다. 인간과 유사한 봇 회피, 비디오 처리, 또는 10분짜리 체크아웃 플로우가 필요한 복잡한 페이지의 경우, Cloudflare는 Browser Run의 기본 크로미움 엔진을 사용하도록 권장합니다(단순히 browser=kitesurf 파라미터를 생략하면 됩니다) .
Kitesurf는 아직 오픈소스로 공개되지 않았지만, Cloudflare는 향후 엔진을 오픈소스화할 것이라고 밝혔습니다 . 팀이 기존의 오픈소스 Rust 컴포넌트(Blitz, Stylo, Parley, Boa)를 조합하여 구축했기 때문에 엔진 자체도 유사한 경로를 따를 것으로 예상되지만, 구체적인 일정은 아직 발표되지 않았습니다 .
Kitesurf는 Cloudflare의 'Agents Week' 제품 출시의 한 구성 요소입니다 :
Kitesurf가 브라우저 런타임을 제공하고, WebMCP가 도구 발견 레이어를 제공하며, 스테이블코인 지갑이 에이전트에게 경제적 정체성을 부여합니다. 이는 Cloudflare가 Workers에서 실행되는 완전한 에이전트 인프라 스택을 구축하겠다는 비전입니다.
Cloudflare의 지침은 명확합니다: 스크린샷, HTML 추출, DOM 검사와 같이 리소스 효율성이 중요한 상태 비저장 대량 에이전트 작업에는 Kitesurf를 사용하세요. 비디오, WebGL, 지속적인 로그인 세션, 또는 실제 TLS 핑거프린트를 확인하는 봇 탐지 챌린지를 통과해야 하는 경우에는 크로미움(기본 Browser Run 엔진)으로 대체하십시오 . 두 엔진은 동일한 CDP 인터페이스를 공유하므로, 전환은 코드 재작성이 아닌 파라미터 변경만으로 가능합니다.
Kitesurf는 AI 에이전트를 위해 특별히 설계된 상태 비저장(stateless), 헤드리스 브라우저 엔진입니다. 탭을 표시하거나, 픽셀 단위의 완벽한 애니메이션을 렌더링하거나, 확장 프로그램을 실행할 수 없습니다. Kitesurf가 할 수 있는 일은 웹 페이지를 열고, 스크린샷을 생성하며, HTML이나 DOM 콘텐츠를 추출하는 것입니다. 이 모든 작업을 헤드리스 크로미움보다 훨씬 적은 CPU와 메모리만으로 수행합니다. Cloudflare는 '에이전틱 클라우드(Agentic Cloud)'를 위한 인프라로 이 프로젝트를 소개했습니다 .
첫 번째 커밋은 2026년 5월에 이루어졌으며, 약 12주 후인 8월에 프로덕션 베타 버전이 출시되었습니다 . 엔진은 Rust로 작성되었으며 WebAssembly로 컴파일되어 기존의 오픈소스 Rust 구성 요소들을 조합하여 만들어졌습니다 :
이 브라우저는 별도의 Chrome 프로세스가 아닌 Cloudflare Workers의 V8 격리 환경 내에서 전체가 실행됩니다 . 각 페이지나 아웃오브프로세스 iframe은 깨끗한 전역 스코프를 가진 자체 격리 환경을 할당받아, 페이지 간 오염과 프롬프트 인젝션 공격을 방지합니다 . Kitesurf는 JavaScript Native RPC와 Dynamic Workers를 통해 통신하는 3~4개의 특수 Worker로 구성됩니다 :
사용자가 AI 에이전트이기 때문에, Cloudflare는 인간용 브라우저에 필요한 거의 모든 기능을 제거했습니다 :
그 결과, HTML 문자열, DOM 트리 또는 스크린샷과 같은 구조화된 기계 판독 가능 출력에 집중하는 초경량 엔진이 탄생했습니다.
Cloudflare는 14개 URL로 구성된 코퍼스(corpus)에 대해 5회 'Quick Action' 실행의 중앙값(median)을 기준으로 Kitesurf와 웜 풀(warm pool) 크로미움을 비교한 결과를 공식 문서에 공개했습니다 . 아래 표는 Cloudflare 문서에서 인용한 결과로, Kitesurf의 확실한 리소스 우위를 보여줍니다:
| 작업 | 측정 항목 | Kitesurf | 크로미움 (웜 풀) | Kitesurf 우위 |
|---|---|---|---|---|
| 스크린샷 | CPU 시간 | 380 ms | 1,173 ms | CPU 3.1배 적음 |
| 스크린샷 | 메모리 | 57.8 MiB | 271.0 MiB | 메모리 4.7배 적음 |
| HTML 추출 | CPU 시간 | 229 ms | 877 ms | CPU 3.8배 적음 |
| HTML 추출 | 메모리 | 39.4 MiB | 273.7 MiB | 메모리 7.0배 적음 |
트레이드오프: 크로미움은 여전히 실제 소요 시간(wall-clock time)에서 약 1.7~1.8배 빠릅니다. 이는 주로 V8의 JIT 컴파일 JavaScript 엔진이 Kitesurf의 Rust/Wasm 파이프라인보다 작업별 지연 시간이 짧기 때문입니다 . 스크린샷 작업의 경우 Kitesurf의 실제 소요 시간은 1,148ms인 반면 크로미움은 637ms였고, HTML 추출의 경우 각각 785ms와 443ms였습니다 .
Cloudflare 자체 비용 추산에 따르면, 규모를 고려할 때 Kitesurf의 페이지 로드 한 번당 비용은 약 $0.00089인 반면, 웜 크로미움 세션은 $0.0031로, 3.5배의 비용 절감 효과가 있습니다 .
기존 Puppeteer, Playwright, chrome-remote-interface 및 MCP/CDP 클라이언트는 Browser Run 엔드포인트에 단일 쿼리 파라미터를 추가하는 것만으로 Kitesurf를 사용할 수 있습니다 :
browser=kitesurf
예를 들어 Browser Run CDP 또는 Quick Action 엔드포인트에서 기존 코드를 변경할 필요 없이, 단지 이 파라미터를 추가하면 렌더링 엔진만 교체됩니다 . Kitesurf는 215,000개 이상의 웹 플랫폼 테스트(Web Platform Tests)를 통과했으며, DOM 서브테스트 약 97%, HTML 서브테스트 약 96%의 적용 범위를 보여주므로 기존 자동화 스크립트가 거의 문제없이 작동합니다 .
Kitesurf는 베타 기간 동안 무료로 제공되며(계정당 사용량 제한 있음), 공개 플레이그라운드(kitesurf.cloudflare.app)에서도 체험해볼 수 있습니다 .
Cloudflare의 공식 문서에는 Kitesurf가 아직 수행할 수 없는 작업들이 명시되어 있습니다 :
Kitesurf는 Cloudflare가 '버스트 처리에 최적화된 일회성 세션'이라고 부르는 작업, 즉 스크래핑, 추출, 스크린샷 후 종료하는 방식에 최적화되어 있습니다. 인간과 유사한 봇 회피, 비디오 처리, 또는 10분짜리 체크아웃 플로우가 필요한 복잡한 페이지의 경우, Cloudflare는 Browser Run의 기본 크로미움 엔진을 사용하도록 권장합니다(단순히 browser=kitesurf 파라미터를 생략하면 됩니다) .
Kitesurf는 아직 오픈소스로 공개되지 않았지만, Cloudflare는 향후 엔진을 오픈소스화할 것이라고 밝혔습니다 . 팀이 기존의 오픈소스 Rust 컴포넌트(Blitz, Stylo, Parley, Boa)를 조합하여 구축했기 때문에 엔진 자체도 유사한 경로를 따를 것으로 예상되지만, 구체적인 일정은 아직 발표되지 않았습니다 .
Kitesurf는 Cloudflare의 'Agents Week' 제품 출시의 한 구성 요소입니다 :
Kitesurf가 브라우저 런타임을 제공하고, WebMCP가 도구 발견 레이어를 제공하며, 스테이블코인 지갑이 에이전트에게 경제적 정체성을 부여합니다. 이는 Cloudflare가 Workers에서 실행되는 완전한 에이전트 인프라 스택을 구축하겠다는 비전입니다.
Cloudflare의 지침은 명확합니다: 스크린샷, HTML 추출, DOM 검사와 같이 리소스 효율성이 중요한 상태 비저장 대량 에이전트 작업에는 Kitesurf를 사용하세요. 비디오, WebGL, 지속적인 로그인 세션, 또는 실제 TLS 핑거프린트를 확인하는 봇 탐지 챌린지를 통과해야 하는 경우에는 크로미움(기본 Browser Run 엔진)으로 대체하십시오 . 두 엔진은 동일한 CDP 인터페이스를 공유하므로, 전환은 코드 재작성이 아닌 파라미터 변경만으로 가능합니다.