---
title: "Cloudflare Workers 위에서 터미널 AI 코딩 에이전트를 통째로 돌리는 프로젝트"
published: 2026-03-21T22:39:15.000Z
canonical: https://jeff.news/article/846
---
# Cloudflare Workers 위에서 터미널 AI 코딩 에이전트를 통째로 돌리는 프로젝트

ghostty-web 터미널 UI + Durable Object + SQLite + Dynamic Worker Loader를 결합해 Cloudflare Workers에서 완전한 AI 코딩 에이전트 런타임을 구현한 Show HN 프로젝트. 세션별 파일시스템, 코드 실행 샌드박스, Worker 퍼블리싱, cron job까지 지원한다.

- Cloudflare Workers 위에서 터미널 기반 AI 코딩 에이전트를 통째로 돌리는 프로젝트가 나왔음. 브라우저에서 ghostty-web 터미널 UI를 띄우고, 뒤에서는 Durable Object + SQLite로 세션과 파일을 영속적으로 관리하는 구조임

- 핵심 아키텍처가 꽤 흥미로운데, 세션 하나가 SQLite 기반 Durable Object 하나에 매핑됨. 메시지 히스토리, 에이전트 세션 상태, 파일시스템, 배포된 Worker 메타데이터, cron job까지 전부 여기 저장됨

- 에이전트가 세션 안에서 할 수 있는 것들이 꽤 많음:
  - 파일 CRUD + 리스트
  - 격리된 Worker 샌드박스에서 JavaScript 실행
  - `esm.sh`를 통한 패키지 import
  - 파일을 Worker 엔드포인트로 퍼블리시 (`/w/<session>/<name>`)
  - Durable Object alarm 기반 cron job 생성 (최소 10분 간격)

- 코드 실행은 Cloudflare의 Dynamic Worker Loader를 사용해서 유저 코드를 격리된 Worker에서 돌림. 로컬 파일 상대 import, esm.sh 패키지 import, 같은 Worker 내 loopback을 통한 `fetch()` 아웃바운드까지 지원됨

- 퍼블리시된 Worker는 의존성 버전 기준으로 캐시돼서 매 요청마다 리빌드하지 않음. cron job은 실행할 때마다 저장된 프롬프트를 같은 세션에 다시 보내고, 다음 실행 시간 계산해서 알람을 재설정하는 방식임

> [!NOTE]
> 이 프로젝트는 `CF_GATEWAY_TOKEN` 시크릿이 필요하고, 아직 실험 단계라고 명시하고 있음. 하지만 실제로 배포 가능하고 https://pi.camelai.dev 에서 라이브로 돌아가고 있음

- 라우팅 구조도 깔끔함: `/` → 새 세션 생성 후 리다이렉트, `/s/<id>` → 터미널 UI, `/ws/<id>` → WebSocket I/O, `/w/<session>/<name>` → 퍼블리시된 Worker 엔드포인트

- Cloudflare Workers의 한계 안에서 "풀스택 AI 에이전트 런타임"을 구현한 게 인상적임. Durable Object를 세션 스토리지 + 스케줄러로 쓰고, Dynamic Worker Loader로 샌드박스 실행 환경까지 만든 건 Workers 플랫폼 활용의 좋은 레퍼런스임

## 핵심 포인트

- Durable Object + SQLite로 세션·파일·메시지 히스토리 영속 관리
- Dynamic Worker Loader로 유저 코드를 격리된 Worker 샌드박스에서 실행
- 세션별 Worker 엔드포인트 퍼블리싱과 alarm 기반 cron job 지원
- esm.sh를 통한 패키지 import와 loopback fetch 지원

## 인사이트

Cloudflare Workers 플랫폼의 Durable Object, Dynamic Worker Loader 등 프리미티브들을 조합해 풀스택 에이전트 런타임을 만든 좋은 아키텍처 레퍼런스. Workers 생태계의 가능성을 보여주는 사례임.
