code2prompt

AI Coding ToolsCLIRust

★ 7,653주당 +26조회 4

무엇인가

code2prompt는 디렉터리 트리를 순회해 소스 파일을 모으고, 이를 하나의 텍스트 프롬프트로 렌더링하는 명령줄 도구다. LLM에 넣을 컨텍스트를 준비하는 단계, 즉 컨텍스트 엔지니어링 계열에 속한다. 결과물은 사람이 채팅 UI에 붙여넣는 용도로도, Python SDK나 MCP 서버를 통해 에이전트가 호출하는 용도로도 쓰인다.

어떻게 동작하나

처리는 파일 수집, 필터링, 템플릿 렌더링, 토큰 계산으로 나뉜다. 수집 단계에서 glob 패턴으로 포함·제외할 파일을 지정하고 `.gitignore` 규칙을 함께 적용한다. 렌더링은 Handlebars 템플릿으로 수행하며, 소스 트리와 파일 본문이 하나의 문서로 합쳐진다. 토큰 수는 파일별로 병렬 계산한 값에 템플릿 오버헤드 추정치를 더해 산출하고, 줄 번호를 넣을 경우 그 몫도 반영한다. 출력은 기본적으로 stdout으로 나가고 `-c`로 클립보드에 복사하거나 파일로 저장한다. Git 저장소에서는 diff, log, 브랜치 비교 결과를 입력으로 넣을 수 있고, CSV·Notebook·JSONL 같은 형식은 전용 리더가 처리한다. 별도의 TUI에서 설정을 조작하며 프롬프트를 생성하는 모드도 있다.

무엇과 다른가

파일을 하나씩 열어 복사하고 형식을 손으로 맞추는 방식과 달리, 트리 순회와 포맷팅을 한 번의 명령으로 끝낸다. 에디터 플러그인이나 IDE 확장이 아니라 단일 바이너리로 동작하므로 편집기 종속성이 없다. 출력 형식이 고정된 도구와 달리 Handlebars 템플릿 파일을 사용자가 직접 교체할 수 있고, 토큰 수도 완성된 프롬프트를 다시 토크나이즈하는 대신 파일 단위 병렬 계산과 템플릿 오버헤드 추정으로 구한다.

어떻게 쓰나

설치는 Cargo, Homebrew, pip(Python SDK) 경로가 있다. 설치 후 대상 디렉터리를 인자로 주면 stdout으로 프롬프트가 나오고, `-c`를 붙이면 클립보드로 들어간다. 파일로 저장하거나 TUI를 띄우는 것도 같은 실행 파일에서 된다. Skills CLI로 코딩 에이전트에 code2prompt 스킬을 설치할 수 있으며, 이 스킬은 `sem-core`로 함수·클래스 목록을 뽑아 저장소 구조를 훑는 절차와 템플릿을 함께 넣는다.

전제와 한계

소스에서 빌드하려면 Git과 Rust, Cargo가 필요하다. Wayland 환경에서 클립보드 연동을 쓰려면 `wayland` 피처 플래그를 켜야 한다. 토큰 수는 추정치이며 렌더링된 전체 프롬프트를 다시 토크나이즈하지 않고, JSON 출력 봉투는 계산에서 빠진다. `entity-map`은 선택 피처라 없으면 디렉터리 맵으로 대체되고, 스킬 설치 프로그램은 템플릿을 가져오기 위해 저장소를 일시적으로 복제한다.

유사 도구