Hacker News

Cf: The Agentic CLI for the Cloudflare API

Cloudflare API 전체를 다루는 에이전트용 CLI, cf

Cloudflare가 기존 Wrangler의 약 280개 명령을 3,000개가 넘는 API 작업으로 확장한 새 CLI ‘cf’를 공개했습니다. JSON 기본 출력, 자연어 명령 검색, TypeScript 설정 파일, Vite 기반 개발 환경을 제공하며 에이전트가 Cloudflare 제품을 탐색하고 다루도록 설계했습니다.

에디터 노트

가장 솔직한 문장입니다. "이 CLI의 인간 고객은 한 발짝 물러나 있습니다." 에이전트가 주 사용자라는 선언입니다. JSON 기본값도 같은 이유입니다. Wrangler를 고치지 않고 새로 낸 이유: 에이전트가 학습 데이터에 박힌 Wrangler 사용법을 기억해서, 고치는 게 더 헷갈립니다. 모델의 기억이 레거시 부채가 된 첫 사례입니다. 다만 댓글 지적도 남습니다. 읽기 전용 디버깅엔 좋지만 인프라 변경은 IaC로. 도메인 구매까지 되는 CLI의 권한 문제는 쓰는 쪽의 몫입니다.

AI 요약

Cloudflare가 에이전트용 CLI ‘cf’의 오픈 베타를 공개했습니다. Wrangler 사용 중 에이전트 비중은 2025년 한 자릿수에서 2026년 3월 25%로 늘었고, 발표 직전 주에는 48%에 이르렀습니다. 에이전트는 하루에 사용하는 명령 종류도 더 많았습니다. Cloudflare는 기존 Wrangler가 제공하던 약 280개 명령으로는 수천 개 제품과 API를 다루기 어렵다고 보고 새 CLI를 만들었습니다.

API 스키마에서 CLI 명령 생성

기존 Wrangler는 제품 팀마다 명령 구현 방식과 용어가 달랐습니다. Cloudflare는 API 문서와 SDK 생성에 쓰는 OpenAPI 스키마에 정보를 더해 CLI를 만드는 통합 파이프라인 Forge를 구축했습니다. 그 결과 cf는 Wrangler의 약 280개 기능에서 Cloudflare API 전체의 3,000개가 넘는 작업으로 범위를 넓혔습니다. 에이전트는 한 도구에서 Worker 생성과 배포, 모니터링, Cloudflare Access 설정, 도메인 구매, WAF 적용을 이어서 수행할 수 있습니다.

JSON 출력과 명령 검색

Wrangler에서는 JSON 출력을 지원하지 않는 명령도 있었고, 에이전트는 사람이 읽도록 만든 표를 해석해야 했습니다. cf는 JSON을 기본 출력으로 삼습니다. 사람에게는 보기 좋게 정리하고 에이전트에는 컨텍스트를 아끼도록 간결하게 전달합니다. 도메인 구매처럼 사람의 입력이 필요한 작업은 API 요구사항에 맞춘 검증 입력 양식으로 안내합니다.

명령이 3,000개를 넘으면 원하는 기능을 찾기 어려워집니다. cf cli search는 자연어 요청을 받아 API 설명과 매개변수를 기준으로 관련 명령을 찾아줍니다. 처음 --help를 실행할 때 에이전트에게 이 검색 기능을 안내합니다.

TypeScript 설정과 Vite

새 설정 파일 cloudflare.config.ts는 TypeScript 기반입니다. 에이전트는 편집기 언어 서버 프로토콜(LSP)을 활용해 설정 형식을 파악하고 자동 완성이나 오류 검사를 이용할 수 있습니다. 설정을 코드로 작성하므로 여러 환경의 공통 설정을 재사용할 수도 있습니다. Cloudflare 내부 설정 파일 일부는 개발자별 환경을 복사해 두던 5,000줄 이상의 구성을 공통 설정을 바탕으로 만드는 방식으로 바꿔 40% 줄였다고 밝혔습니다.

bindings 헬퍼는 환경 변수, 비밀값, KV, D1, R2, 큐, AI, Vectorize, Worker 바인딩을 설정합니다. triggers 블록에는 HTTP 경로, 스케줄, 큐, 이메일 실행 조건을 모아 적습니다. 현재 설정은 Workers부터 시작하며, Cloudflare는 이후 정책과 존, DNS 설정도 추가할 계획입니다.

cf는 기본 개발 환경으로 Vite를 사용합니다. Cloudflare Vite Plugin과 Vitest 플러그인을 통해 Workers 런타임에 맞춘 개발·테스트 환경을 제공하고, Vite의 HMR과 Rolldown 빌드를 이용합니다. 기존 Worker는 cf migrate로 옮깁니다. Vite 기반 프로젝트는 설정 파일을 변환하며, esbuild를 쓰는 프로젝트는 빌드와 배포를 계속 Wrangler에 맡길 수 있습니다. 베타가 끝나면 Wrangler의 마지막 메이저 버전을 내고, 이후 18개월간 유지보수를 지원할 예정입니다. 설치는 npm i -g cf로 시작하며, 새 프로젝트는 cf init으로 만들 수 있습니다.

Hacker News 반응

  • @verdverm — Cloudflare가 좋은 CLI를 만든 점이 반갑고, 특히 cf cli search가 마음에 듭니다. 에이전트가 사람만 해야 하거나 해야 하는 작업을 위한 대화형 Bash 스크립트를 만들게 하는 방식도 유용합니다. 도구를 직접 주는 것보다 토큰을 덜 쓰고 더 안정적이며 엉뚱한 작업도 줄었습니다. 스크립트로 에이전트 앞뒤를 감싸면 자격 증명을 에이전트 프로세스에서 빼낼 수도 있습니다. 읽기 전용 디버깅에는 이런 CLI가 좋지만, 클라우드 인프라를 변경한다면 IaC를 계속 사용하세요.
  • @smithclay — 에이전트로 Cloudflare API를 주로 쓰는 입장에서 마음에 듭니다. Forge 기반이라면 Terraform 지원도 준비 중이기를 바랍니다. Worker를 혼자 배포할 때도 좋겠지만, 운영 환경 배포용 Terraform 코드를 바로 출력한다면 더 좋겠습니다.
  • @recroad — 에이전트가 REST 호출만 해도 Cloudflare를 사용하는 데 문제가 없었습니다. REST 문서만으로도 가능한 작업을 잘 파악합니다. CLI는 REST API의 일부인가요, 아니면 전체를 포함하나요?
    • @artdigital — 저도 그렇게 사용하고 있습니다. ai/cloudflare 폴더를 따로 만들고 AGENTS.md에서 cf 문서를 참고하게 하며, 변경 기록과 작업 중 알게 된 점을 남기도록 했습니다. 이제 그 폴더에서 설정을 추가해 달라고 하면 에이전트가 바로 처리합니다. cf는 API를 더 쉽게 탐색하고 사용하는 CLI 래퍼라고 생각합니다.
  • @slowin — TypeScript로 만든 이유를 모르겠습니다. 에이전트가 코드를 작성하는 시대에도 컴퓨터과학의 기본 지식은 중요합니다. CLI 사용자가 의존성을 관리하게 하지 말고 컴파일 언어로 작성해야 합니다.
    • @kelchm — TypeScript 선택이 의도적이지 않았다고 생각하시나요? 기존 Cloudflare 도구 생태계를 고려하면 말이 됩니다.
    • @slowin — 의도적이었든 아니든 좋은 선택은 아니라고 봅니다. 에이전트가 어떤 언어로든 쓸 수 있는데 CLI에 잘못된 도구를 고를 이유가 없습니다. 특히 npm 의존성은 공급망 공격에 노출되고, CLI에 JavaScript 런타임을 넣으면 성능 비용도 생깁니다.
    • @isopede — 패키지 저장소를 가진 현대 언어 대부분이 공급망 공격에 취약합니다. 특별히 회복력이 뛰어난 언어가 있나요?
    • @slowin — 제작자나 신뢰할 수 있는 곳에서 컴파일된 바이너리를 받으면 설치·업데이트 과정에서 의존성이 바뀌지 않습니다. 인터프리터 언어는 설치와 업데이트 때 의존성을 받아오는 경우가 많습니다.
    • @amluto — 제 생각에는 이 용도에 JavaScript와 TypeScript가 잘 맞습니다. 주변 권한이 없고 안전하며 새 코드를 빨리 실행하고, LLM이 잘 다루는 언어여야 합니다. 더 나은 대안은 무엇인가요?
  • @esafak — 1.0은 아직 나오지 않았고 CI도 실패하고 있습니다. 사전 릴리스를 사용해 봤는데 잘 작동했지만, 발표는 며칠 기다렸다가 했어야 합니다.
  • @emadabdulrahim — 요즘 최고의 제품 발표 중 일부가 CLI라는 점이 놀랍습니다.
  • @hackernud3s — 권한을 부여할 토큰을 만드는 일은 할 수 없습니다. 토큰 메뉴를 웹사이트에서 찾아야 하는데, 그 위치가 매주 바뀝니다.

원문: Cloudflare Blog / 번역·요약: Trawling