본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Context Builder

0

Context Builder는 igorls가 개발한 CLI 도구로, 임의의 코드베이스 디렉터리를 단일 마크다운 파일로 정리해 LLM 입력에 적합한 형태로 만들어 줍니다.

컨텍스트코드베이스

소개

Context Builder는 igorls가 개발한 CLI 도구로, 임의의 코드베이스 디렉터리를 단일 마크다운 파일로 정리해 LLM 입력에 적합한 형태로 만들어 줍니다. GitHub에서 Rust로 작성된 오픈소스 프로젝트로 공개되어 있으며, winget 패키지 ID는 igorls.context-builder입니다. v0.9.0에서는 Tree-Sitter 기반 AST 분석과 자동 토큰 예산 관리 등 핵심 기능이 포함되어 있습니다.

상세정보

병렬 처리 기반의 빠른 스캔

사용 가능한 CPU 코어를 모두 활용하여 수천 개의 파일을 수 초 내에 처리합니다. 디렉터리 순회는 병렬로 진행되며, .gitignore 패턴과 별도로 무거운 폴더(node_modules, dist, build, __pycache__, .venv, vendor 등)는 자동으로 제외됩니다.

관련성 기반 파일 정렬

설정 파일과 프로젝트 문서를 먼저 배치하고, 소스 코드는 진입점 우선, 테스트·문서·빌드/CI·락파일 순으로 정렬해 LLM이 프로젝트 구조를 빠르게 파악하도록 돕습니다.

컨텍스트 예산 관리

–max-tokens 옵션으로 출력 토큰 상한을 지정할 수 있고, 출력이 128K 토큰을 넘으면 알림과 함께 제안을 표시합니다. –token-count는 tiktoken-rs 기반의 실제 토큰 계산값을 제공합니다.

Tree-Sitter AST 분석 (선택 사항)

–signatures로 함수·클래스 시그니처만 추출하고, –structure로 구조 요약을 덧붙이며, –truncate smart 옵션으로 AST 경계 기준으로 잘라낼 수 있습니다. Rust, JavaScript, TypeScript, Python, Go, Java, C, C++를 지원합니다.

필터링·미리보기·라인 번호

-f/–filter로 확장자를 지정하거나 -i/–ignore로 폴더·파일명을 제외할 수 있고, –preview로 출력 없이 파일 트리만 확인할 수 있습니다. –line-numbers로 코드 블록에 줄 번호를 추가할 수 있습니다.

설정 파일과 자동 diff

context-builder.toml에 출력 경로, 필터, 무시 목록, 토크나이저 인코딩(o200k_base 기본, cl100k_base 선택) 등을 저장해 반복 실행을 일관되게 유지합니다. timestamped_output과 auto_diff를 함께 켜면 이전 스냅샷과의 per-file diff를 자동으로 생성하며, –diff-only로 변경 요약과 수정 파일의 diff만 출력해 토큰을 절약할 수 있습니다.

설치 및 기본 사용

Windows에서는 winget으로 한 줄 설치가 가능합니다. 명령 프롬프트에서 context-builder [옵션]을 실행하면 현재 디렉터리를 처리해 output.md를 생성하고, LLM 프롬프트에 그대로 붙여 넣어 사용할 수 있습니다.

  • winget 설치: winget install --id igorls.context-builder --exact
  • 기본 실행: context-builder (현재 디렉터리 → output.md)
  • 대상 지정: context-builder -d /path/to/project -o documentation.md
  • 확장자 필터: context-builder -f rs -f toml
  • 토큰 상한: context-builder --max-tokens 100000
  • 미리보기: context-builder --preview
  • stdout 스트리밍: context-builder -o - | llm
  • 설정 초기화: context-builder --init

PowerShell을 선호한다면 GitHub 릴리스의 context-builder-x86_64-pc-windows-msvc.zip을 받아 %LOCALAPPDATA%Programscontext-builder에 풀고 PATH에 추가해 사용할 수 있습니다. Linux/macOS는 install.sh를, 소스 빌드는 cargo install –path .를 통해 설치할 수 있습니다.

활용 예시

  • 대규모 저장소를 LLM에 넣기 전 토큰 예산에 맞춰 잘라내고, 파일 정렬을 통해 모델이 먼저 핵심 설정과 진입점을 파악하도록 돕습니다.
  • Rust 또는 TypeScript 프로젝트에서 –signatures와 –truncate smart를 함께 사용해 함수 시그니처 위주의 압축된 컨텍스트를 만들고 AST 경계에서 안전하게 자릅니다.
  • CI 환경에서 timestamped_output과 auto_diff를 켜 두면 빌드 사이에 변경된 파일의 diff만 모아 검토용 문서를 자동으로 갱신할 수 있습니다.

제한 및 확인 사항

  • Tree-Sitter 기반의 AST 분석(–signatures, –structure, –truncate smart, –visibility)은 지원 언어(Rust, JavaScript, TypeScript, Python, Go, Java, C, C++)에 한해 적용됩니다.
  • –visibility 필터는 Rust, Go, Java, TypeScript에서만 동작하며 그 외 언어에서는 미적용 경고를 표시합니다.
  • 매우 큰 코드베이스에서는 토큰 예산을 초과할 수 있으며, –max-tokens로 상한을 지정해 잘라내거나 제외해야 합니다.
  • 라이선스는 MIT이며, 자세한 조건은 저장소의 LICENSE 파일에서 확인해야 합니다.

시스템 요구사항

Windows 11 · x64 · Windows PowerShell 5.1+ 또는 curl 사용 가능한 환경