2P by GN⁺ | ★ favorite | 댓글 1개
  • Codebuff는 터미널에서 자연어로 작업을 입력하면 코드베이스를 읽고 파일 수정·생성까지 수행하는 CLI 도구로, npm i -g codebuff 설치 후 로그인 게이트 없이 바로 사용할 수 있음
  • 입력 흐름을 한 단계로 줄여 사용자가 원하는 작업만 입력하면 테스트 실행, 타입 체커 실행, 패키지 설치까지 요청 수행 과정에 활용함
  • 내부에서는 tree-sitter로 11개 언어의 함수·클래스명 등 심볼을 파싱해 코드베이스 맵을 만들고, Claude Haiku 3.5 프롬프트 캐싱과 Claude/OpenAI 호출을 조합함
  • 에이전트는 관련 파일을 컨텍스트에 넣은 뒤 XML 태그 형태의 도구 호출로 edit_file, 터미널 명령 실행, 추가 파일 읽기 요청을 처리함
  • 모든 계정에 최대 $20 상당 크레딧이 제공되며, 더 많은 크레딧은 월 $99 플랜으로 제공되지만 큰 컨텍스트와 비싼 LLM 호출 때문에 경쟁 제품보다 비싸다고 밝힘

터미널에서 자연어로 코드 수정

  • Codebuff는 “터미널 안의 Cursor Composer”처럼 동작하는 CLI 도구임
    • 자연어로 원하는 변경을 입력하고 Enter를 누르면 코드베이스를 살펴본 뒤 파일을 수정함
    • 기존 소스 파일 수정과 새 파일 생성 모두 가능함
    • 테스트, 타입 체커, 패키지 설치를 실행해 요청을 완수할 수 있음
  • 설치와 시작은 npm i -g codebuff로 가능함
    • 로그인 게이트 없이 바로 사용할 수 있음
    • 모든 계정에 최대 $20 상당 크레딧을 제공함
  • 데모 영상: YouTube

초기 실험에서 제품화까지

  • 초기 아이디어는 hackathon에서 Sonnet 3.5를 시험하며 시작됨
    • 첫 스크립트는 코드베이스 컨텍스트를 한 번에 가져오고, 두 번째 단계에서 파일을 다시 쓰는 구조였음
    • 이 2단계 프로세스는 현재 Codebuff에도 남아 있음
    • 초기 데모는 유용한 코드를 만들지 못했음
  • 코드베이스별 지식을 모델에 전달하면서 knowledge.md 아이디어가 생김
    • 이전 스타트업 서버에서 엔드포인트를 만들려면 특정 파일 3개를 수정해야 했지만 모델이 이를 알지 못했음
    • 신입에게 설명하듯 코드베이스 가이드를 Markdown 파일로 작성해 Sonnet 3.5의 시스템 프롬프트에 넣자 코드 품질이 크게 좋아짐
    • Codebuff는 현재도 요청마다 자동으로 읽는 knowledge.md 파일을 사용함
  • YC 인터뷰 직전에는 파일 편집 안정성이 가장 큰 병목이었음
    • 여러 프롬프트 전략으로 원본 파일의 문자열 치환을 시도했지만 안정적으로 동작하지 않았음
    • 인터뷰 전날 GPT-4o를 파인튜닝해 Claude가 그린 변경 스케치를 git patch로 바꾸게 함
    • 다음 날 동작했고, YC 인터뷰 직전에 프로덕션에 배포함

코드베이스 맵과 에이전트 실행 흐름

  • 실행하면 현재 디렉터리와 하위 디렉터리의 소스 파일을 훑어 코드베이스 맵을 만듦
    • tree-sitter로 11개 언어의 함수·클래스명 또는 이에 준하는 심볼을 파싱함
    • 파일 트리와 심볼 정보를 함께 사용함
    • Claude Haiku 3.5에 요청해 코드베이스 컨텍스트를 캐싱하고 사용자 입력 응답 지연을 낮춤
  • 사용자가 메시지를 보내면 Claude가 먼저 관련 파일을 고름
    • 선택된 파일을 컨텍스트에 로드한 뒤 에이전트가 응답함
    • 도구 호출은 XML 태그로 작성되고 파싱됨
    • 예시는 <edit_file path="src/app.ts">…</edit_file> 형태의 파일 수정 태그임
    • 다른 태그로 터미널 명령 실행이나 추가 파일 읽기 요청도 가능함

서버 구성과 인프라

  • 서버는 Anthropic 또는 OpenAI로 메시지를 전달하는 구조이며, 상태를 저장하지 않음
    • 클라이언트와 서버 사이 데이터 이동에는 websocket을 사용함
    • 첫 3개월 동안 인증이나 데이터베이스 없이 무료 설치와 자체 API 키로 요청을 처리함
  • 이후 제품 운영에 필요한 구성요소를 추가함
    • Postgres + Drizzle 데이터베이스
    • Bun 서버
    • Render 호스팅
    • Auth.js 인증
    • NextJS 웹사이트
    • Stripe 결제
    • BetterStack 로깅
    • Retool 대시보드

가격, 사용 사례, SDK

  • 가격은 제한적 무료 사용량과 월 $99 유료 플랜으로 구성됨
    • 유료 플랜은 더 많은 크레딧을 제공함
    • 더 많은 컨텍스트와 비싼 LLM 호출 때문에 경쟁 제품보다 비싸다고 밝힘
  • 실제 사용 사례에는 Flutter 앱 생성, 단위 테스트 작성, 반복 수정, 반복 작업 자동화가 포함됨
    • 한 사용자는 두 개의 Flutter 앱을 병렬로 만들며 $500 청구액을 만들었고, 생성된 코드를 직접 보지 않은 채 Codebuff와 긴 대화를 통해 앱을 완성함
    • 여러 사용자가 주말 동안 팀용 또는 개인용 실제 앱을 만들었음
    • 자주 쓰이는 일반적 용도는 단위 테스트 작성, 테스트가 통과할 때까지 코드 수정 루프 실행, OAuth 흐름 설정, API 스캐폴딩 작업임
  • 자체 시스템에서 Codebuff를 쓰고 싶은 사용자를 위한 alpha SDK도 제공됨
    • 앱이 같은 자연어 인터페이스를 호출하고 코드 편집을 받을 수 있음
    • early access 신청 링크: Retool form

댓글과 토론

Hacker News 의견
  • Codebuff의 출시를 축하하지만, Aider와 매우 유사하게 보임. Aider는 오픈 소스이며, 파일 추가를 요청할 때 승인만 하면 됨. Aider는 명령어 실행도 가능함. 무엇이 다른지 궁금함

  • 데모는 항상 간단한 프로젝트에만 적용되며, 실제 복잡한 프로젝트에 대한 예시가 부족함. PR의 어려운 부분을 해결하는 데 도움이 필요함. 많은 도구들이 시작을 돕지만, 문제 해결에는 부족함

  • SSH 키와 클립보드를 여러 제3자에게 보내는 데 $20를 지불하고 싶지 않음. 네트워크 호출 없이 인라인 셸 지원을 제공하는 소프트웨어를 구매하고 싶음. 이러한 제품에 대한 일반적인 의견임

  • Codebuff는 이전에 manicode로 알려졌으며, 복잡한 리팩토링 작업에 유용함. Rust 프로젝트에서 파일을 모듈 디렉토리로 분리하는 데 사용했으며, 테스트 실행과 컴파일 오류 확인이 가능함. 이 작업에 약 100 크레딧 사용됨

  • 코드가 서버를 통해 전송되는지 궁금함. 로컬 서비스로 구현하는 것이 더 나을 것 같음. LLM이 파일 손실을 초래할 수 있는 명령을 받을 수 있는지, 이를 어떻게 방지할 것인지 궁금함

  • LLM이 인간의 검토 없이 명령을 실행하는 것은 위험하고 보안에 취약함

  • 이미 AIDE, Continue, Cody, Aider, Cursor가 있음. 왜 이 도구를 사용해야 하는지 궁금함

  • 이 도구를 사용해 보았으며, CoPilot과 Cursor보다 나은 점이 있음. 특히 CoPilot과는 편집기와 "경쟁"하는 느낌이 들지 않음. 보안에 대한 우려가 있으며, 민감한 파일을 어떻게 처리하는지 궁금함

  • 코드 품질 측면에서 Cursor보다 나은지 궁금함. Cursor를 사용하며 파일 복사 시간을 절약하고 있음. 여전히 chatGPT/claude 인터페이스를 사용하여 코딩함

  • GPT-4o를 미세 조정하여 Claude의 변경 스케치를 git 패치로 변환함. 훈련 데이터는 밤늦게 생성되었으며, 미세 조정 작업은 자는 동안 실행됨. 훈련 데이터의 전체 내용과 변경 스케치 및 git 패치가 어떻게 작용했는지 궁금함