설명
codebase-snapshot는 코드 리포지토리를 엄격한 바이트 예산에 따라 LLM 준비 부분으로 변환하기 위해 설계된 유틸리티입니다. 이 도구는 파일이 너무 크고 컨텍스트 윈도우가 너무 작아 언어 모델에 대규모 리포지토리를 제공하는 데 따른 문제를 해결합니다. 이 도구는 결정론적으로 작동하여 변경되지 않은 입력에 대해 일관된 출력을 보장합니다.
더 읽기
핵심 기능은 일반 텍스트 부분을 포함하는 `snapshot/` 디렉토리를 생성하는 것입니다. 각 부분은 `maxPartBytes` 한도에 의해 제한되며, 이 예산을 초과하는 파일은 명시적인 생략 마커와 함께 잘립니다. 매우 큰 파일의 경우, 헤드/테일 발췌를 제공합니다. 코드 부분과 함께 `manifest.json` 파일을 생성합니다. 이 매니페스트는 포함된 모든 파일을 나열하는 포괄적인 인덱스 역할을 하며, 각 파일의 레이어, 종류, 언어, 부분, 해시 및 구조적 요약과 같은 세부 정보를 포함합니다. 특히, `gitignore`, `sensitive-file`, 또는 `binary`와 같은 생략 이유와 함께 모든 제외된 파일도 기록합니다.
컨텍스트 무결성을 유지하기 위한 핵심 기능은 `validate` 명령입니다. 이 명령은 생성된 스냅샷에 대해 리포지토리를 다시 해시하고 드리프트가 감지되면 비제로 코드로 종료됩니다. 이는 LLM 컨텍스트가 신선하고 정확하게 유지되도록 하여 모델이 오래된 코드로 작업하는 것을 방지합니다. 이 도구는 기본적으로 안전하도록 설계되어 있으며, 명시적으로 요청하지 않는 한 자격 증명 파일을 건너뛰고, 비밀 형태의 문자열을 수정하며, 생성하지 않은 디렉토리를 덮어쓰지 않도록 하여 소스 코드의 우발적인 삭제를 방지합니다.
codebase-snapshot는 TypeScript, JavaScript, Python, Go, Rust, Java/Kotlin, C#/.NET, PHP, Ruby, C/C++, Vue, Svelte, Astro, Next.js, Nuxt, Remix, Angular, Solid, NestJS, Express, Fastify, Koa, Django, FastAPI, Flask, Laravel, Rails 등 다양한 프로그래밍 언어와 프레임워크를 지원하며, 종종 구성 없이 사용할 수 있습니다. 25개의 자동 프리셋을 제공하여 레이어, 종류, 생태계 무시 패턴 및 권장 부분 예산을 기여합니다. 비 TypeScript 언어의 경우, 신뢰성을 나타내기 위해 `ast`, `structural`, 또는 `heuristic`으로 레이블을 붙여 가져오기/내보내기/클래스/함수 요약을 생성합니다.
인간 상호작용을 넘어 codebase-snapshot는 AI 에이전트를 위해 구축되었습니다. 이 도구는 기계가 읽을 수 있는 계약과 설치 가능한 기술을 제공하여 에이전트가 전체 프로세스를 자율적으로 수행할 수 있도록 합니다. 에이전트는 `generate`, `validate`, `report`, `explain`과 같은 명령을 사용하여 스냅샷을 관리하고 드리프트를 확인하며 비밀을 감사하고 파일 포함/제외를 이해할 수 있습니다. 이 도구는 더 큰 시스템에 통합하기 위한 프로그래밍 API 액세스도 지원합니다. 포괄적인 문서에는 설치, CLI 참조, 구성, 스냅샷 출력 스키마 및 ChatGPT, Claude, Cursor와 같은 LLM과 효과적으로 사용하는 방법에 대한 가이드가 포함되어 있습니다.
- 카테고리AI 코딩 어시스턴트
- 요금제무료
- 배포CLI, Programmatic API
- 플랫폼Node.js 18+
codebase-snapshot의 핵심 기능
결정론적 스냅샷 생성
부분에 대한 엄격한 바이트 예산
포괄적인 manifest.json 인덱스
드리프트 검증을 위한 `validate` 명령
25개의 프로젝트 프리셋에 대한 자동 감지
다양한 프로그래밍 언어 및 프레임워크 지원
비밀 수정 및 민감한 파일 제외
AI 에이전트를 위한 기계가 읽을 수 있는 계약
설치 가능한 에이전트 기술
프로그래밍 API 액세스
상세 보고 및 감사
가이드된 첫 실행 설정
구성 가능한 출력 아티팩트
대형 파일에 대한 메모리 제한 처리
스냅샷 비교를 위한 `diff` 명령
codebase-snapshot 사용 방법은?
설치: npm, yarn, pnpm 또는 bun을 사용하여 `codebase-snapshot`을 전역적으로 또는 프로젝트 종속성으로 설치합니다.
빠른 시작: 프로젝트 디렉토리에서 `snapshot`을 실행하여 가이드된 첫 실행 또는 자동 생성을 수행합니다.
구성: `init` 명령을 사용하여 자기 문서화된 `snapshot.config.ts` 파일을 작성하는 대화형 설정을 진행합니다.
스냅샷 생성: `snapshot generate`를 실행하여 LLM 준비 스냅샷 디렉토리를 생성합니다.
스냅샷 검증: `snapshot validate`를 실행하여 스냅샷을 현재 리포지토리와 비교하고 드리프트를 확인합니다.
경로 설명: `snapshot explain <path>`를 사용하여 특정 파일이 포함되거나 생략된 이유를 이해합니다.
감사 보고서: 건강 지표, 레이어 세부정보 및 비밀 감사를 위한 `snapshot report`를 생성합니다.
codebase-snapshot의 사용 사례
- LLM 컨텍스트 생성
- AI 에이전트 코드 분석
- 코드 리뷰 자동화
- 개발자 온보딩
- 컨텍스트 윈도우 관리
- 코드베이스 감사
- 컨텍스트 신선도 보장
- 크로스 리포지토리 비교







