Show HN: Repogather – LLM 코딩 워크플로우를 위해 관련 파일을 클립보드에 복사
요약
Repogather는 저장소 내의 관련 파일을 클립보드에 복사하는 명령줄 도구입니다. 이 도구는 LLM 코드 이해 및 생성 워크플로우를 위해 설계되었으며, GPT 모델을 사용하여 파일 간의 관련성을 판단합니다. 사용자는 다양한 필터링 옵션을 통해 원하는 범위의 코드를 효율적으로 추출할 수 있습니다.
핵심 포인트
- LLM 기반으로 저장소 내 관련 파일을 식별하여 클립보드에 복사합니다.
- GPT-4o-mini 등을 사용하여 파일 간의 논리적 관련성을 평가합니다.
- 테스트, 설정 파일 포함 여부 및 .gitignore 규칙 준수 등 다양한 필터링 옵션을 제공합니다.
- LLM 분석 없이 모든 파일을 강제로 반환하는 `--all` 모드를 지원합니다.
repogather
repogather는 저장소 내의 모든 관련 파일(상대 경로 포함)을 클립보드에 복사하는 명령줄 도구입니다. 이는 LLM 코드 이해 또는 코드 생성 워크플로우에서 사용하도록 의도되었습니다. 이 도구는 파일 관련성을 결정하기 위해 gpt-4o-mini (설정 가능)를 사용하지만, 비(非) AI 필터(예: 테스트 파일이나 설정 파일 제외)를 사용하여 모든 파일을 반환할 수도 있으며 LLM 없이 사용할 수 있습니다.
기능
- 저장소 내의 코드 파일을 필터링하고 분석합니다
- 기본적으로 테스트 및 설정 파일을 제외하며 (포함 옵션 제공)
- 일반적인 생태계별 디렉토리와 파일(예: node_modules, venv)을 필터링합니다
- .gitignore 규칙을 준수합니다 (무시된 파일을 포함하는 옵션 제공)
- 필요한 경우 콘텐츠를 여러 요청으로 분할하여 모든 크기의 저장소를 처리합니다
- 처리 전에 토큰 수와 API 사용 비용을 추정합니다
- 파일 관련성 평가에 OpenAI의 GPT 모델을 사용합니다
- OpenAI API 키를 제공하는 다양한 방법을 지원합니다
- 관련 파일과 그 내용을 클립보드에 복사합니다
- LLM 분석 없이 모든 파일을 반환할 수 있습니다
- 파일 또는 디렉토리를 사용자 지정으로 제외할 수 있습니다.
설치
pip을 사용하여 repogather를 설치하세요:
pip install repogather
설정
다음 방법 중 하나를 사용하여 OpenAI API 키를 설정하세요:
- 환경 변수로:
export OPENAI_API_KEY=your_api_key_here - 현재 작업 디렉토리의 .env 파일에:
OPENAI_API_KEY=your_api_key_here - 도구 실행 시 명령줄 인수로 제공합니다 (사용법 섹션 참조)
사용법
설치 후, 명령줄에서 repogather를 실행할 수 있습니다:
repogather [QUERY] [OPTIONS]
옵션
옵션
--include-test: 테스트 파일을 분석에 포함합니다.--include-config: 설정 파일을 분석에 포함합니다.--include-ecosystem: 생태계별 파일 및 디렉터리(예: node_modules, venv)를 포함합니다.--include-gitignored: gitignore된 파일을 포함합니다.--exclude PATTERN: 지정된 경로 조각을 포함하는 파일을 제외합니다 (여러 번 사용할 수 있습니다).--relevance-threshold THRESHOLD: 관련성 임계값을 설정합니다 (0-100, 기본값: 50).--model MODEL: 사용할 OpenAI 모델을 지정합니다 (기본값: gpt-4o-mini-2024-07-18).--openai-key KEY: OpenAI API 키를 직접 제공합니다.--all: LLM 분석 없이 모든 파일을 반환합니다.
예시
- 쿼리로 파일 분석하기:
repogather "user authentication과 관련된 파일을 찾기" --include-config --relevance-threshold 70 --model gpt-4o-2024-08-06
이 명령어는 다음을 수행합니다:
-
사용자 인증과 관련된 파일을 검색합니다.
-
검색에 설정 파일을 포함합니다.
-
관련성 점수가 70 이상인 파일만 반환합니다.
-
분석에 2024년 8월의 GPT-4o 모델을 사용합니다.
-
LLM 분석 없이 모든 파일 반환하기 (생태계 파일 포함, 특정 디렉터리 제외):
repogather --all --include-test --include-config --include-ecosystem --include-gitignored --exclude "legacy_code"
이 명령어는 다음을 수행합니다:
- 저장소의 모든 코드 파일을 수집합니다.
- 테스트, 설정 및 생태계별 파일을 출력에 포함합니다.
- .gitignore에 의해 일반적으로 무시되는 파일도 포함합니다.
- 경로에 "legacy_code"를 포함하는 모든 파일이나 디렉터리를 제외합니다.
- LLM 분석을 사용하지 않고 수집된 모든 파일을 클립보드에 복사합니다.
작동 방식
repogather는 다음 단계를 수행합니다:
작동 방식
repogather는 다음 단계를 수행합니다:
- 현재 디렉터리 및 하위 디렉터리에서 코드 파일을 스캔합니다.
- 테스트, 설정, 생태계별, 그리고 gitignore된 파일(옵션을 통해 포함하는 경우 제외)을 필터링합니다.
- 모든 사용자 지정 제외 패턴을 적용합니다.
--all옵션이 사용되면, 필터링된 모든 파일을 반환합니다.- 그렇지 않은 경우:
a. 필터링된 파일의 토큰 수를 계산하고 API 사용 비용을 추정합니다.
b. 대용량 파일(>30,000 토큰) 및 디렉터리(>100,000 토큰)에 대한 정보를 표시합니다.
c. 진행하기 전에 사용자 확인을 요청합니다.
d. 총 토큰이 모델의 제한을 초과하면, 내용을 여러 요청으로 분할합니다.
e. 파일 내용과 쿼리를 지정된 OpenAI 모델로 전송합니다.
f. 모델의 응답을 처리하여 관련성에 따라 파일을 순위화합니다.
g. 지정된 관련성 임계값에 따라 파일을 필터링합니다. - 관련 파일 경로와 내용을 클립보드에 복사합니다.
참고 사항
repogather는 LLM 분석을 사용할 때 활성화된 OpenAI API 키를 필요로 합니다. 진행하기 전에 쿼리의 예상 비용(입력 토큰 기준)을 확인하도록 요청할 것입니다. --all 옵션을 사용할 때는 API 키가 필요하지 않습니다.
repogather는 필요한 경우 내용을 여러 요청으로 분할하여 모든 크기의 리포지토리를 처리합니다. 이를 통해 API 토큰 제한에 도달하지 않고 대규모 코드베이스를 분석할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기