Repomix

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

📦 Repomix는 전체 저장소를 AI 친화적인 단일 파일에 압축해 넣는 강력한 도구입니다.
코드베이스를 대규모 언어 모델(LLM)이나 Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok 등과 같은 다른 AI 도구에 공급해야 할 때 완벽한 솔루션입니다.

🎉 새로운 기능: Repomix 웹사이트 및 Discord 커뮤니티!

  • repomix.com 에서 브라우저로 Repomix를 사용해 보세요.
  • 지원 및 토론을 위해 Discord 서버 에 가입하세요.

여러분을 만나 뵙기를 기대합니다!

🌟 특징

  • AI 최적화 : AI가 이해하고 처리하기 쉬운 방식으로 코드베이스를 포맷합니다.
  • 토큰 계산 : 각 파일과 전체 저장소에 대한 토큰 계산을 제공하며, LLM 컨텍스트 제한에 유용합니다.
  • 사용이 간편합니다 . 저장소 전체를 압축하는 데 필요한 명령어는 단 하나뿐입니다.
  • 사용자 정의 가능 : 포함하거나 제외할 내용을 쉽게 구성합니다.
  • Git-Aware : .gitignore 파일과 .git/info/exclude 자동으로 존중합니다.
  • 보안 중심 : 민감한 정보가 포함되지 않도록 탐지하고 방지하기 위한 강력한 보안 검사를 제공하는 Secretlint를 통합했습니다.
  • 코드 압축 : --compress 옵션은 Tree-sitter를 사용하여 주요 코드 요소를 추출하여 구조를 유지하면서 토큰 수를 줄입니다.

🚀 빠른 시작

CLI 도구 사용 >_

설치 없이 프로젝트 디렉토리에서 Repomix를 즉시 사용해 볼 수 있습니다.

지엑스피1

또는 반복 사용을 위해 전역적으로 설치하세요.

# Install using npm npm install -g repomix # Alternatively using yarn yarn global add repomix # Alternatively using Homebrew (macOS/Linux) brew install repomix # Then run in any project directory repomix

이제 끝입니다! Repomix가 현재 디렉토리에 repomix-output.xml 파일을 생성합니다. 이 파일에는 AI 친화적인 형식으로 전체 저장소가 포함되어 있습니다.

그런 다음 다음과 같은 메시지를 사용하여 이 파일을 AI 비서에게 보낼 수 있습니다.

This file contains all the files in the repository combined into one. I want to refactor the code, so please review it first.

특정 변경 사항을 제안하면 AI가 그에 맞춰 코드를 생성할 수 있습니다. Claude's Artifacts와 같은 기능을 사용하면 여러 파일을 출력하여 상호 의존적인 여러 코드 조각을 생성할 수 있습니다.

즐거운 코딩 되세요! 🚀

웹사이트 사용 🌐

빠르게 사용해 보시고 싶으신가요? repomix.com 공식 웹사이트를 방문하세요. 저장소 이름을 입력하고, 선택 사항을 입력한 후 "Pack" 버튼을 클릭하면 생성된 결과물을 확인할 수 있습니다.

사용 가능한 옵션

이 웹사이트는 여러 가지 편리한 기능을 제공합니다.

  • 사용자 정의 가능한 출력 형식(XML, 마크다운 또는 일반 텍스트)
  • 즉각적인 토큰 수 추정
  • 훨씬 더 많아요!

VSCode 확장 프로그램 사용하기 ⚡️

커뮤니티에서 관리하는 VSCode 확장 프로그램인 Repomix Runner ( massdo 제작)를 사용하면 편집기에서 몇 번의 클릭만으로 Repomix를 바로 실행할 수 있습니다. 어떤 폴더에서든 실행하고, 출력을 원활하게 관리하고, VSCode의 직관적인 인터페이스를 통해 모든 것을 제어할 수 있습니다.

출력을 파일로 저장하고 싶으신가요, 아니면 콘텐츠만 저장하고 싶으신가요? 자동 정리 기능이 필요하신가요? 이 확장 프로그램이 해결해 드립니다. 게다가 기존 repomix.config.json 파일과도 원활하게 연동됩니다.

지금 VSCode Marketplace 에서 사용해 보세요! 소스 코드는 GitHub 에서 확인할 수 있습니다.

대체 도구 🛠️

Python을 사용 중이라면 Python 생태계와 데이터 과학 워크플로에 더 적합한 Gitingest 확인해 보세요: https://github.com/cyclotruc/gitingest

📊 사용법

저장소 전체를 압축하려면:

repomix

특정 디렉토리를 압축하려면:

repomix path/to/directory

Glob 패턴을 사용하여 특정 파일이나 디렉토리를 압축하려면 다음을 수행합니다.

repomix --include "src/**/*.ts,**/*.md"

특정 파일이나 디렉토리를 제외하려면:

repomix --ignore "**/*.log,tmp/"

원격 저장소를 압축하려면:

repomix --remote https://github.com/yamadashy/repomix # You can also use GitHub shorthand: repomix --remote yamadashy/repomix # You can specify the branch name, tag, or commit hash: repomix --remote https://github.com/yamadashy/repomix --remote-branch main # Or use a specific commit hash: repomix --remote https://github.com/yamadashy/repomix --remote-branch 935b695 # Another convenient way is specifying the branch's URL repomix --remote https://github.com/yamadashy/repomix/tree/main # Commit's URL is also supported repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1

출력을 압축하려면:

repomix --compress # You can also use it with remote repositories: repomix --remote yamadashy/repomix --compress

새 구성 파일( repomix.config.json )을 초기화하려면:

repomix --init

압축된 파일을 생성하면 ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok 등의 생성 AI 도구와 함께 사용할 수 있습니다.

Docker 사용법 🐳

Docker를 사용하여 Repomix를 실행할 수도 있습니다.
이 기능은 격리된 환경에서 Repomix를 실행하거나 컨테이너를 사용하는 것을 선호하는 경우에 유용합니다.

기본 사용법(현재 디렉토리):

docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix

특정 디렉토리를 압축하려면:

docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix path/to/directory

원격 저장소를 처리하고 output 디렉토리에 출력합니다.

docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix --remote https://github.com/yamadashy/repomix

프롬프트 예시

Repomix로 패키징된 파일을 생성하면 ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok 등의 AI 도구와 함께 사용할 수 있습니다. 다음은 시작하는 데 도움이 되는 몇 가지 프롬프트 예시입니다.

코드 검토 및 리팩토링

포괄적인 코드 검토 및 리팩토링 제안을 원하시면:

This file contains my entire codebase. Please review the overall structure and suggest any improvements or refactoring opportunities, focusing on maintainability and scalability.

문서 생성

프로젝트 문서를 생성하려면:

Based on the codebase in this file, please generate a detailed README.md that includes an overview of the project, its main features, setup instructions, and usage examples.

테스트 케이스 생성

테스트 케이스를 생성하려면:

Analyze the code in this file and suggest a comprehensive set of unit tests for the main functions and classes. Include edge cases and potential error scenarios.

코드 품질 평가

코드 품질과 모범 사례 준수 여부를 평가합니다.

Review the codebase for adherence to coding best practices and industry standards. Identify areas where the code could be improved in terms of readability, maintainability, and efficiency. Suggest specific changes to align the code with best practices.

도서관 개요

도서관에 대한 높은 수준의 이해를 얻으세요

This file contains the entire codebase of library. Please provide a comprehensive overview of the library, including its main purpose, key features, and overall architecture.

귀하의 특정 요구 사항과 사용 중인 AI 도구의 기능에 따라 이러한 프롬프트를 자유롭게 수정하세요.

커뮤니티 토론

사용자들이 공유하는 커뮤니티 토론을 확인해 보세요.

  • Repomix와 함께 어떤 AI 도구를 사용하고 있나요?
  • 그들이 발견한 효과적인 프롬프트
  • Repomix가 그들에게 어떻게 도움이 되었는가
  • AI 코드 분석을 최대한 활용하기 위한 팁과 요령

토론에 참여하여 여러분의 경험을 공유해 주세요! 여러분의 통찰력은 다른 사람들이 Repomix를 더 효과적으로 활용하는 데 도움이 될 수 있습니다.

출력 파일 형식

Repomix는 코드베이스의 여러 부분 사이에 명확한 구분 기호가 있는 단일 파일을 생성합니다.
AI 이해력을 높이기 위해 출력 파일은 AI 중심 설명으로 시작하여 AI 모델이 압축된 저장소의 컨텍스트와 구조를 더 쉽게 이해할 수 있도록 합니다.

XML 형식(기본값)

XML 형식은 계층적 방식으로 콘텐츠를 구조화합니다.

This file is a merged representation of the entire codebase, combining all repository files into a single document. <file_summary> (Metadata and usage AI instructions) </file_summary> <directory_structure> src/ cli/ cliOutput.ts index.ts (...remaining directories) </directory_structure> <files> <file path="src/index.js"> // File contents here </file> (...remaining files) </files> <instruction> (Custom instructions from `output.instructionFilePath`) </instruction>

AI 컨텍스트에서 XML 태그의 잠재력에 관심이 있는 분들을 위해:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags

프롬프트에 맥락, 설명, 예시 등 여러 요소가 포함되어 있는 경우 XML 태그는 매우 중요한 역할을 할 수 있습니다. XML 태그는 클로드가 프롬프트를 더욱 정확하게 분석하여 더 높은 품질의 결과물을 얻을 수 있도록 도와줍니다.

즉, Repomix의 XML 출력은 단순히 형식이 다른 것이 아니라 코드베이스를 분석, 코드 검토 또는 기타 작업을 위해 AI 시스템에 공급하는 더 효과적인 방법일 수 있습니다.

마크다운 형식

Markdown 형식으로 출력을 생성하려면 --style markdown 옵션을 사용하세요.

repomix --style markdown

마크다운 형식은 콘텐츠를 계층적 방식으로 구성합니다.

This file is a merged representation of the entire codebase, combining all repository files into a single document. # File Summary (Metadata and usage AI instructions) # Repository Structure ``` src/ cli/ cliOutput.ts index.ts ``` (...remaining directories) # Repository Files ## File: src/index.js ``` // File contents here ``` (...remaining files) # Instruction (Custom instructions from `output.instructionFilePath`)

이 형식은 인간에게 친화적이고 AI 시스템이 쉽게 구문 분석할 수 있는 깔끔하고 읽기 쉬운 구조를 제공합니다.

일반 텍스트 형식

일반 텍스트 형식으로 출력을 생성하려면 --style plain 옵션을 사용하세요.

repomix --style plain
This file is a merged representation of the entire codebase, combining all repository files into a single document. ================================================================ File Summary ================================================================ (Metadata and usage AI instructions) ================================================================ Directory Structure ================================================================ src/ cli/ cliOutput.ts index.ts config/ configLoader.ts (...remaining directories) ================================================================ Files ================================================================ ================ File: src/index.js ================ // File contents here ================ File: src/utils.js ================ // File contents here (...remaining files) ================================================================ Instruction ================================================================ (Custom instructions from `output.instructionFilePath`)

명령줄 옵션

기본 옵션

  • -v, --version : 도구 버전 표시

출력 옵션

  • -o, --output <file> : 출력 파일 이름을 지정합니다.
  • --style <style> : 출력 스타일( xml , markdown , plain )을 지정합니다.
  • --parsable-style : 선택한 스타일 스키마에 따라 구문 분석 가능한 출력을 활성화합니다. 이 경우 토큰 수가 증가할 수 있습니다.
  • --compress : 토큰 수를 줄이기 위해 필수 함수 및 클래스 시그니처에 초점을 맞춰 지능형 코드 추출을 수행합니다.
  • --output-show-line-numbers : 출력에 줄 번호를 표시합니다.
  • --copy : 생성된 출력을 시스템 클립보드에 추가로 복사합니다.
  • --no-file-summary : 파일 요약 섹션 출력을 비활성화합니다.
  • --no-directory-structure : 디렉토리 구조 섹션 출력을 비활성화합니다.
  • --remove-comments : 지원되는 파일 유형에서 주석을 제거합니다.
  • --remove-empty-lines : 출력에서 빈 줄을 제거합니다.
  • --header-text <text> : 파일 헤더에 포함할 사용자 정의 텍스트
  • --instruction-file-path <path> : 자세한 사용자 정의 지침이 포함된 파일의 경로
  • --include-empty-directories : 출력에 빈 디렉토리를 포함합니다.
  • --no-git-sort-by-changes : git 변경 횟수에 따른 파일 정렬을 비활성화합니다(기본적으로 활성화됨)

필터 옵션

  • --include <patterns> : 포함 패턴 목록(쉼표로 구분)
  • -i, --ignore <patterns> : 추가 무시 패턴(쉼표로 구분)
  • --no-gitignore : .gitignore 파일 사용을 비활성화합니다.
  • --no-default-patterns : 기본 패턴을 비활성화합니다.

원격 저장소 옵션

  • --remote <url> : 원격 Git 저장소를 처리합니다.
  • --remote-branch <name> : 원격 브랜치 이름, 태그 또는 커밋 해시를 지정합니다(기본값은 저장소 기본 브랜치).

구성 옵션

  • -c, --config <path> : 사용자 정의 구성 파일 경로
  • --init : 구성 파일 생성
  • --global : 글로벌 구성을 사용합니다

보안 옵션

  • --no-security-check : 보안 검사를 비활성화합니다.

토큰 카운트 옵션

  • --token-count-encoding <encoding> : OpenAI의 tiktoken 토크나이저에서 사용하는 토큰 카운트 인코딩을 지정합니다(예: GPT-4o의 경우 o200k_base , GPT-4/3.5의 경우 cl100k_base ). 인코딩에 대한 자세한 내용은 tiktoken model.py를 참조하세요.

엠씨피

기타 옵션

  • --top-files-len <number> : 요약에 표시할 상위 파일 수
  • --verbose : 자세한 로깅을 활성화합니다.
  • --quiet : stdout에 대한 모든 출력을 비활성화합니다.

예:

repomix -o custom-output.txt repomix -i "*.log,tmp" -v repomix -c ./custom-config.json repomix --style xml repomix --remote https://github.com/user/repo npx repomix src

Repomix 업데이트

글로벌하게 설치된 Repomix를 업데이트하려면:

# Using npm npm update -g repomix # Using yarn yarn global upgrade repomix

npx repomix 사용하면 항상 최신 버전을 사용하므로 일반적으로 더 편리합니다.

원격 저장소 처리

Repomix는 수동 복제 없이 원격 Git 저장소를 처리할 수 있도록 지원합니다. 이 기능을 사용하면 단일 명령으로 모든 공개 Git 저장소를 빠르게 분석할 수 있습니다.

원격 저장소를 처리하려면 --remote 옵션 뒤에 저장소 URL을 사용합니다.

repomix --remote https://github.com/yamadashy/repomix

GitHub의 약어 형식을 사용할 수도 있습니다.

repomix --remote yamadashy/repomix

브랜치 이름, 태그 또는 커밋 해시를 지정할 수 있습니다.

# Using --remote-branch option repomix --remote https://github.com/yamadashy/repomix --remote-branch main # Using branch's URL repomix --remote https://github.com/yamadashy/repomix/tree/main

또는 특정 커밋 해시를 사용하세요.

# Using --remote-branch option repomix --remote https://github.com/yamadashy/repomix --remote-branch 935b695 # Using commit's URL repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1

코드 압축

--compress 옵션은 Tree-sitter를 활용하여 지능적인 코드 추출을 수행합니다. 구현 세부 정보는 제거하면서 필수 함수 및 클래스 시그니처에 집중합니다. 이를 통해 중요한 구조 정보는 유지하면서 토큰 개수를 줄일 수 있습니다.

repomix --compress

예를 들어, 이 코드는 다음과 같습니다.

import { ShoppingItem } from './shopping-item'; /** * Calculate the total price of shopping items */ const calculateTotal = ( items: ShoppingItem[] ) => { let total = 0; for (const item of items) { total += item.price * item.quantity; } return total; } // Shopping item interface interface Item { name: string; price: number; quantity: number; }

압축됩니다:

import { ShoppingItem } from './shopping-item'; ⋮---- /** * Calculate the total price of shopping items */ const calculateTotal = ( items: ShoppingItem[] ) => { ⋮---- // Shopping item interface interface Item { name: string; price: number; quantity: number; }

[!NOTE] 이것은 사용자 피드백과 실제 사용을 기반으로 적극적으로 개선할 실험적 기능입니다.

MCP 서버 통합

Repomix는 모델 컨텍스트 프로토콜(MCP)을 지원하여 AI 어시스턴트가 코드베이스와 직접 상호 작용할 수 있도록 합니다. MCP 서버로 실행되는 경우, Repomix는 AI 어시스턴트가 수동 파일 준비 없이도 로컬 또는 원격 저장소를 패키징하여 분석할 수 있는 도구를 제공합니다.

repomix --mcp

MCP 서버 구성

Claude와 같은 AI 도우미와 함께 Repomix를 MCP 서버로 사용하려면 MCP 설정을 구성해야 합니다.

VS 코드의 경우:

다음 방법 중 하나를 사용하여 VS Code에 Repomix MCP 서버를 설치할 수 있습니다.

  1. 설치 배지 사용:
  2. 명령줄 사용:
    code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'
    VS Code Insider를 위한:
    code-insiders --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'

Cline(VS Code 확장)의 경우:

cline_mcp_settings.json 파일을 편집합니다.

{ "mcpServers": { "repomix": { "command": "npx", "args": [ "-y", "repomix", "--mcp" ] } } }

커서의 경우:

커서에서 Cursor Settings > MCP > + Add new global MCP server .

Claude Desktop의 경우:

Cline의 config와 비슷한 구성으로 claude_desktop_config.json 파일을 편집합니다.

구성이 완료되면 AI 어시스턴트는 Repomix의 기능을 직접 사용하여 수동 파일 준비 없이 코드베이스를 분석할 수 있으므로 코드 분석 워크플로의 효율성이 높아집니다.

사용 가능한 MCP 도구

MCP 서버로 실행할 경우 Repomix는 다음과 같은 도구를 제공합니다.

  1. pack_codebase : AI 분석을 위해 로컬 코드 디렉토리를 통합 파일로 패키징합니다.
  • 매개변수:
    • directory : 압축할 디렉토리의 절대 경로
    • compress : (선택 사항, 기본값: true) 지능형 코드 추출을 수행할지 여부
    • includePatterns : (선택 사항) 쉼표로 구분된 포함 패턴 목록
    • ignorePatterns : (선택 사항) 무시 패턴의 쉼표로 구분된 목록
  1. pack_remote_repository : GitHub 저장소 가져오기, 복제 및 패키징
  • 매개변수:
    • remote : GitHub 저장소 URL 또는 사용자/저장소 형식(예: yamadashy/repomix)
    • compress : (선택 사항, 기본값: true) 지능형 코드 추출을 수행할지 여부
    • includePatterns : (선택 사항) 쉼표로 구분된 포함 패턴 목록
    • ignorePatterns : (선택 사항) 무시 패턴의 쉼표로 구분된 목록
  1. read_repomix_output : 직접 파일 접근이 불가능한 환경에서 Repomix 출력 파일의 내용을 읽습니다.
  • 매개변수:
    • outputId : 읽을 Repomix 출력 파일의 ID
  • 특징:
    • 웹 기반 환경이나 샌드박스 애플리케이션을 위해 특별히 설계되었습니다.
    • ID를 사용하여 이전에 생성된 출력의 내용을 검색합니다.
    • 파일 시스템 액세스가 필요 없이 압축된 코드베이스에 대한 보안 액세스를 제공합니다.
  1. file_system_read_file : 보안 검증을 통해 절대 경로를 사용하여 파일을 읽습니다.
  • 매개변수:
    • path : 읽을 파일의 절대 경로
  • 보안 기능:
    • Secretlint를 사용하여 보안 검증을 구현합니다.
    • 민감한 정보가 포함된 파일에 대한 액세스를 방지합니다.
    • 디렉토리 탐색 공격을 방지하기 위해 절대 경로를 검증합니다.
  1. file_system_read_directory : 절대 경로를 사용하여 디렉토리의 내용을 나열합니다.
  • 매개변수:
    • path : 나열할 디렉토리의 절대 경로
  • 특징:
    • 명확한 표시기( [FILE] 또는 [DIR] )로 파일 및 디렉터리를 표시합니다.
    • 적절한 오류 처리를 통해 안전한 디렉토리 탐색을 제공합니다.
    • 경로를 검증하고 절대 경로인지 확인합니다.

⚙️ 구성

사용자 정의 구성을 위해 프로젝트 루트에 repomix.config.json 파일을 만듭니다.

repomix --init

구성 옵션에 대한 설명은 다음과 같습니다.

옵션설명기본
output.filePath출력 파일의 이름"repomix-output.xml"
output.style출력 스타일( xml , markdown , plain )"xml"
output.parsableStyle선택한 스타일 스키마에 따라 출력을 이스케이프할지 여부입니다. 이 경우 토큰 수가 증가할 수 있습니다.false
output.compress토큰 수를 줄이기 위해 지능형 코드 추출을 수행할지 여부false
output.headerText파일 헤더에 포함할 사용자 정의 텍스트null
output.instructionFilePath자세한 사용자 정의 지침이 포함된 파일의 경로null
output.fileSummary출력 시작 부분에 요약 섹션을 포함할지 여부true
output.directoryStructure출력에 디렉토리 구조를 포함할지 여부true
output.removeComments지원되는 파일 형식에서 주석을 제거할지 여부false
output.removeEmptyLines출력에서 빈 줄을 제거할지 여부false
output.showLineNumbers출력의 각 줄에 줄 번호를 추가할지 여부false
output.copyToClipboard파일을 저장하는 것 외에도 출력을 시스템 클립보드에 복사할지 여부false
output.topFilesLength요약에 표시할 상위 파일 수입니다. 0으로 설정하면 요약이 표시되지 않습니다.5
output.includeEmptyDirectories저장소 구조에 빈 디렉토리를 포함할지 여부false
output.git.sortByChangesgit 변경 횟수에 따라 파일을 정렬할지 여부(변경 사항이 많은 파일은 맨 아래에 표시됨)true
output.git.sortByChangesMaxCommitsgit 변경 사항을 분석하기 위한 최대 커밋 수100
include포함할 파일 패턴( glob 패턴 사용)[]
ignore.useGitignore프로젝트의 .gitignore 파일에서 패턴을 사용할지 여부true
ignore.useDefaultPatterns기본 무시 패턴을 사용할지 여부true
ignore.customPatterns무시할 추가 패턴( glob 패턴 사용)[]
security.enableSecurityCheck파일에 대한 보안 검사를 수행할지 여부true
tokenCount.encodingOpenAI의 tiktoken 토크나이저에서 사용하는 토큰 카운트 인코딩(예: GPT-4o의 경우 o200k_base , GPT-4/3.5의 경우 cl100k_base ). 인코딩에 대한 자세한 내용은 tiktoken model.py를 참조하세요."o200k_base"

구성 파일은 JSON5 구문을 지원하여 다음을 허용합니다.

  • 주석(단일 줄 및 다중 줄 모두)
  • 객체 및 배열의 후행 쉼표
  • 따옴표 없는 속성 이름
  • 더욱 편안한 문자열 구문

구성 예:

{ "output": { "filePath": "repomix-output.xml", "style": "xml", "parsableStyle": true, "compress": false, "headerText": "Custom header information for the packed file.", "fileSummary": true, "directoryStructure": true, "removeComments": false, "removeEmptyLines": false, "showLineNumbers": false, "copyToClipboard": true, "topFilesLength": 5, "includeEmptyDirectories": false, "git": { "sortByChanges": true, "sortByChangesMaxCommits": 100 } }, "include": [ "**/*" ], "ignore": { "useGitignore": true, "useDefaultPatterns": true, // Patterns can also be specified in .repomixignore "customPatterns": [ "additional-folder", "**/*.log" ], }, "security": { "enableSecurityCheck": true }, "tokenCount": { "encoding": "o200k_base" }, }

글로벌 구성

글로벌 구성 파일을 만들려면:

repomix --init --global

글로벌 구성 파일은 다음 위치에 생성됩니다.

  • Windows: %LOCALAPPDATA%\Repomix\repomix.config.json
  • macOS/Linux: $XDG_CONFIG_HOME/repomix/repomix.config.json 또는 ~/.config/repomix/repomix.config.json

참고: 로컬 구성(있는 경우)은 글로벌 구성보다 우선합니다.

포함 및 무시

패턴 포함

Repomix는 이제 glob 패턴을 사용하여 포함할 파일을 지정할 수 있도록 지원합니다. 이를 통해 더욱 유연하고 강력한 파일 선택이 가능해졌습니다.

  • **/*.js 사용하여 모든 디렉토리의 모든 JavaScript 파일을 포함합니다.
  • src/**/* 사용하여 src 디렉토리와 하위 디렉토리 내의 모든 파일을 포함합니다.
  • ["src/**/*.js", "**/*.md"] 와 같은 여러 패턴을 결합하여 src 및 모든 Markdown 파일에 JavaScript 파일을 포함합니다.

패턴 무시

Repomix는 패킹 프로세스 중에 특정 파일이나 디렉토리를 제외하기 위한 무시 패턴을 설정하는 여러 가지 방법을 제공합니다.

  • .gitignore : 기본적으로 프로젝트의 .gitignore 파일과 .git/info/exclude 에 나열된 패턴이 사용됩니다. 이 동작은 ignore.useGitignore 설정이나 --no-gitignore CLI 옵션을 사용하여 제어할 수 있습니다.
  • 기본 패턴 : Repomix에는 일반적으로 제외되는 파일 및 디렉터리(예: node_modules, .git, 바이너리 파일)의 기본 목록이 포함되어 있습니다. 이 기능은 ignore.useDefaultPatterns 설정 또는 --no-default-patterns CLI 옵션을 사용하여 제어할 수 있습니다. 자세한 내용은 defaultIgnore.ts 파일을 참조하세요.
  • .repomixignore : 프로젝트 루트에 .repomixignore 파일을 생성하여 Repomix 관련 무시 패턴을 정의할 수 있습니다. 이 파일은 .gitignore 와 동일한 형식을 따릅니다.
  • 사용자 지정 패턴 : 구성 파일의 ignore.customPatterns 옵션을 사용하여 추가 무시 패턴을 지정할 수 있습니다. -i, --ignore 명령줄 옵션을 사용하여 이 설정을 덮어쓸 수 있습니다.

우선순위 순서(가장 높은 것부터 가장 낮은 것까지):

  1. 사용자 정의 패턴은 ignore.customPatterns 를 사용합니다.
  2. .repomixignore
  3. .gitignore.git/info/exclude ( ignore.useGitignore 가 true이고 --no-gitignore 사용되지 않는 경우)
  4. 기본 패턴( ignore.useDefaultPatterns 가 true이고 --no-default-patterns 사용되지 않는 경우)

이 접근 방식을 사용하면 프로젝트 요구 사항에 따라 유연한 파일 제외 구성을 사용할 수 있습니다. 보안에 민감한 파일과 대용량 바이너리 파일을 제외하여 생성된 팩 파일의 크기를 최적화하는 동시에 기밀 정보 유출을 방지할 수 있습니다.

참고: 바이너리 파일은 기본적으로 압축된 출력에 포함되지 않지만, 해당 경로는 출력 파일의 "저장소 구조" 섹션에 나열됩니다. 이를 통해 압축된 파일의 효율성을 높이고 텍스트 기반을 유지하면서 저장소 구조에 대한 전체적인 개요를 확인할 수 있습니다.

맞춤형 지침

output.instructionFilePath 옵션을 사용하면 프로젝트에 대한 자세한 지침이나 컨텍스트가 포함된 별도의 파일을 지정할 수 있습니다. 이를 통해 AI 시스템은 프로젝트의 구체적인 컨텍스트와 요구 사항을 이해하여 더욱 관련성 높고 맞춤화된 분석이나 제안을 제공할 수 있습니다.

이 기능을 사용하는 방법의 예는 다음과 같습니다.

  1. 프로젝트 루트에 repomix-instruction.md 라는 파일을 만듭니다.
# Coding Guidelines - Follow the Airbnb JavaScript Style Guide - Suggest splitting files into smaller, focused units when appropriate - Add comments for non-obvious logic. Keep all text in English - All new features should have corresponding unit tests # Generate Comprehensive Output - Include all content without abbreviation, unless specified otherwise - Optimize for handling large codebases while maintaining output quality
  1. repomix.config.jsoninstructionFilePath 옵션을 추가합니다.
{ "output": { "instructionFilePath": "repomix-instruction.md", // other options... } }

Repomix가 출력을 생성할 때 전용 섹션에 repomix-instruction.md 의 내용이 포함됩니다.

참고: 지침 내용은 출력 파일 끝에 추가됩니다. 이 배치는 특히 AI 시스템에 효과적일 수 있습니다. 이러한 배치가 어떻게 도움이 될 수 있는지 알고 싶으신 분들을 위해 Anthropic은 자사 문서에서 몇 가지 유용한 정보를 제공합니다.
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips

긴 형식의 데이터를 맨 위에 배치하세요. 긴 문서와 입력(약 2만 개 이상의 토큰)을 프롬프트 상단, 쿼리, 지침, 예시 위에 배치하세요. 이렇게 하면 모든 모델에서 Claude의 성능을 크게 향상시킬 수 있습니다. 맨 끝에 쿼리를 배치하면 테스트에서 응답 품질을 최대 30%까지 향상시킬 수 있으며, 특히 복잡한 여러 문서 입력의 경우 더욱 그렇습니다.

댓글 삭제

output.removeComments true 로 설정하면 Repomix는 지원되는 파일 형식에서 주석을 제거하려고 시도합니다. 이 기능을 사용하면 출력 파일 크기를 줄이고 핵심 코드 내용에 집중할 수 있습니다.

지원되는 언어는 다음과 같습니다.
HTML, CSS, JavaScript, TypeScript, Vue, Svelte, Python, PHP, Ruby, C, C#, Java, Go, Rust, Swift, Kotlin, Dart, Shell, YAML.

참고: 주석 제거 과정은 실수로 코드를 삭제하는 것을 방지하기 위해 신중하게 진행됩니다. 복잡한 경우 일부 주석이 유지될 수 있습니다.

🔍 보안 검사

Repomix에는 Secretlint를 사용하여 파일에서 잠재적으로 민감한 정보를 감지하는 보안 검사 기능이 포함되어 있습니다. 이 기능을 사용하면 압축된 저장소를 공유하기 전에 잠재적인 보안 위험을 식별할 수 있습니다.

보안 검사 결과는 패킹 프로세스가 완료된 후 CLI 출력에 표시됩니다. 의심스러운 파일이 감지되면 해당 파일 목록과 경고 메시지가 표시됩니다.

출력 예:

🔍 Security Check: ────────────────── 2 suspicious file(s) detected: 1. src/utils/test.txt 2. tests/utils/secretLintUtils.test.ts Please review these files for potentially sensitive information.

기본적으로 Repomix의 보안 검사 기능은 활성화되어 있습니다. 설정 파일에서 security.enableSecurityCheck false 로 설정하여 비활성화할 수 있습니다.

{ "security": { "enableSecurityCheck": false } }

또는 --no-security-check 명령줄 옵션을 사용합니다.

repomix --no-security-check

[!참고] 보안 검사를 비활성화하면 민감한 정보가 노출될 수 있습니다. 이 옵션은 테스트 파일이나 예시 자격 증명이 포함된 문서 작업 등 꼭 필요한 경우에만 신중하게 사용하십시오.

🤝 기여

커뮤니티 여러분의 참여를 환영합니다! 시작하려면 기여 가이드 를 참조하세요.

기여자

🔒 개인정보 보호정책

Repomix CLI 도구

  • 데이터 수집 : Repomix CLI 도구는 사용자 데이터, 원격 측정 또는 저장소 정보를 수집, 전송 또는 저장하지 않습니다 .
  • 네트워크 사용 : Repomix CLI는 설치 후 완전히 오프라인으로 작동합니다. 인터넷 연결이 필요한 경우는 다음과 같습니다.
    • npm/yarn을 통해 설치.
    • --remote 플래그를 사용하여 원격 저장소를 처리합니다.
    • 업데이트 확인(수동으로 실행).
  • 보안 고려 사항 : 모든 처리가 로컬에서 이루어지므로 Repomix CLI는 비공개 및 내부 저장소에서 안전하게 사용할 수 있습니다.

리포믹스 웹사이트( repomix.com )

  • 데이터 수집 : Repomix 웹사이트는 Google 애널리틱스를 사용하여 페이지 뷰 및 사용자 상호작용과 같은 사용 데이터를 수집합니다. 이를 통해 웹사이트 사용 방식을 파악하고 사용자 경험을 개선할 수 있습니다.

면책 조항

Repomix(CLI 도구와 웹사이트 모두)는 어떠한 보증이나 보장 없이 "있는 그대로" 제공됩니다.
생성된 결과물이 어떻게 사용되는지에 대해서는 정확성, 합법성, 결과물 사용으로 인해 발생할 수 있는 잠재적 결과를 포함하되 이에 국한되지 않고 책임을 지지 않습니다.

📜 라이센스

이 프로젝트는 MIT 라이선스 에 따라 라이선스가 부여되었습니다.

-
security - not tested
A
license - permissive license
-
quality - not tested

Repomix MCP Server를 사용하면 AI 모델이 로컬 또는 원격 저장소를 최적화된 단일 파일로 패키징하여 코드베이스를 효율적으로 분석할 수 있으며, Tree-sitter를 통한 지능형 압축을 통해 코드 구조와 필수 서명을 보존하면서 토큰 사용량을 크게 줄일 수 있습니다.

  1. 🌟 Features
    1. 🚀 Quick Start
      1. Using the CLI Tool >_
      2. Using The Website 🌐
      3. Using The VSCode Extension ⚡️
      4. Alternative Tools 🛠️
    2. 📊 Usage
      1. Docker Usage 🐳
      2. Prompt Examples
      3. Community Discussion
      4. Output File Format
      5. Command Line Options
      6. Updating Repomix
      7. Remote Repository Processing
      8. Code Compression
      9. MCP Server Integration
    3. ⚙️ Configuration
      1. Global Configuration
      2. Include and Ignore
      3. Custom Instruction
      4. Comment Removal
    4. 🔍 Security Check
      1. 🤝 Contribution
        1. Contributors
      2. 🔒 Privacy Policy
        1. Repomix CLI Tool
        2. Repomix Website (repomix.com)
        3. Liability Disclaimer
      3. 📜 License
        ID: lczqcx54uv