RepoMix เป็นเครื่องมือที่ทรงพลังที่บรรจุพื้นที่เก็บข้อมูลทั้งหมดของคุณลงในไฟล์เดียวที่เป็นมิตรกับ AI
มันสมบูรณ์แบบสำหรับเมื่อคุณต้องการป้อนรหัสฐานของคุณไปยังรุ่นภาษาขนาดใหญ่ (LLMS) หรือเครื่องมือ AI อื่น ๆ เช่น Claude, CHATGPT และราศีเมถุน
บันทึก
เนื่องจากการพิจารณาทางกฎหมายโครงการนี้ได้รับการเปลี่ยนชื่อจาก "repopack" เป็น "repomix" มีเพียงชื่อที่เปลี่ยนไป repomix ฟังก์ชั่นทั้งหมดและผู้ดูแล (@yamadashy) ยังคงเหมือนเดิม เรามุ่งมั่นที่จะสร้างความมั่นใจในการเปลี่ยนแปลงที่ราบรื่นสำหรับผู้ใช้ทุกคน
หากต้องการใช้เครื่องมือต่อไปเพียงติดตั้งแพ็คเกจใหม่:
# Install new package
npm install -g repomix
# Or use directly with npx
npx repomixทางเลือกคุณยังสามารถถอนการติดตั้งแพ็คเกจเก่า:
npm uninstall -g repopack ไฟล์การกำหนดค่าที่มีอยู่ของคุณ ( repopack.config.json และ .repopackignore ) จะทำงานต่อไปในช่วงการเปลี่ยนภาพ
repomix จะตรวจจับไฟล์เหล่านี้โดยอัตโนมัติและเสนอเพื่อโยกย้ายไปยังรูปแบบใหม่ ( repomix.config.json และ .repomixignore )
เราขอขอบคุณความเข้าใจและความร่วมมือของคุณในระหว่างการเปลี่ยนแปลงนี้
คุณสามารถลอง repomix ได้ทันทีในไดเรกทอรีโครงการของคุณโดยไม่ต้องติดตั้ง:
npx repomixหรือติดตั้งทั่วโลกเพื่อใช้ซ้ำ:
# Install using npm
npm install -g repomix
# Alternatively using yarn
yarn global add repomix
# Alternatively using Homebrew (macOS)
brew install repomix
# Then run in any project directory
repomix แค่ไหน! RepoMix จะสร้างไฟล์ repomix-output.txt ในไดเรกทอรีปัจจุบันของคุณซึ่งมีที่เก็บทั้งหมดของคุณในรูปแบบ AI ที่เป็นมิตร
เพื่อแพ็คที่เก็บทั้งหมดของคุณ:
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 หากต้องการเริ่มต้นไฟล์กำหนดค่าใหม่ ( repomix.config.json ):
repomix --initเมื่อคุณสร้างไฟล์ที่บรรจุแล้วคุณสามารถใช้กับเครื่องมือ AI แบบกำเนิดเช่น Claude, Chatgpt และ Gemini
เมื่อคุณสร้างไฟล์ที่บรรจุด้วย repomix แล้วคุณสามารถใช้กับเครื่องมือ AI เช่น Claude, Chatgpt และราศีเมถุน นี่คือตัวอย่างบางส่วนเพื่อให้คุณเริ่มต้น:
สำหรับการตรวจสอบรหัสที่ครอบคลุมและคำแนะนำการปรับโครงสร้าง:
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 ได้ดีขึ้น
Repomix สร้างไฟล์เดียวที่มีตัวคั่นที่ชัดเจนระหว่างส่วนต่าง ๆ ของ codebase ของคุณ
เพื่อเพิ่มความเข้าใจ AI ไฟล์เอาต์พุตเริ่มต้นด้วยคำอธิบาย AI-oriented ทำให้ง่ายขึ้นสำหรับโมเดล AI ที่จะเข้าใจบริบทและโครงสร้างของที่เก็บข้อมูลที่บรรจุ
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
config/
configLoader.ts
(...remaining directories)
================================================================
Repository Files
================================================================
================
File: src/index.js
================
// File contents here
================
File: src/utils.js
================
// File contents here
(...remaining files)
================================================================
Instruction
================================================================
(Custom instructions from `output.instructionFilePath`)
ในการสร้างผลลัพธ์ในรูปแบบ XML ให้ใช้ตัวเลือก --style xml :
repomix --style 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 >
< repository_structure >
src/
cli/
cliOutput.ts
index.ts
(...remaining directories)
</ repository_structure >
< repository_files >
< file path = " src/index.js " >
// File contents here
</ file >
(...remaining files)
</ repository_files >
< instruction >
(Custom instructions from `output.instructionFilePath`)
</ instruction > สำหรับผู้ที่สนใจในศักยภาพของแท็ก XML ในบริบท AI:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags
เมื่อพรอมต์ของคุณเกี่ยวข้องกับส่วนประกอบหลายอย่างเช่นบริบทคำแนะนำและตัวอย่างแท็ก XML อาจเป็นตัวเปลี่ยนเกม พวกเขาช่วยให้ Claude แยกวิเคราะห์ของคุณได้อย่างแม่นยำมากขึ้นนำไปสู่ผลลัพธ์ที่มีคุณภาพสูงกว่า
ซึ่งหมายความว่าเอาต์พุต XML จาก Repomix ไม่ได้เป็นเพียงรูปแบบที่แตกต่างกัน แต่อาจเป็นวิธีที่มีประสิทธิภาพมากขึ้นในการป้อนรหัสฐานของคุณลงในระบบ AI สำหรับการวิเคราะห์การตรวจสอบรหัสหรืองานอื่น ๆ
ในการสร้างผลลัพธ์ในรูปแบบ markdown ให้ใช้ตัวเลือก --style markdown :
repomix --style markdownรูปแบบ 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
-v, --version : แสดงเวอร์ชันเครื่องมือ-o, --output <file> : ระบุชื่อไฟล์เอาต์พุต--include <patterns> : รายการรวมรูปแบบ (คั่นด้วยเครื่องหมายจุลภาค)-i, --ignore <patterns> : รูปแบบที่ไม่สนใจเพิ่มเติม (คั่นด้วยเครื่องหมายจุลภาค)-c, --config <path> : พา ธ ไปยังไฟล์กำหนดค่าที่กำหนดเอง--style <style> : ระบุสไตล์เอาท์พุท ( plain , xml , markdown )--top-files-len <number> : จำนวนไฟล์บนสุดที่จะแสดงในสรุป--output-show-line-numbers : แสดงหมายเลขบรรทัดในเอาต์พุต--copy : นอกจากนี้ยังคัดลอกเอาต์พุตที่สร้างขึ้นไปยังคลิปบอร์ดระบบ--remote <url> : ประมวลผลที่เก็บ Git ระยะไกล--verbose : เปิดใช้งานการบันทึก verboseตัวอย่าง:
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.git
npx repomix srcเพื่ออัปเดต 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/user/repo.gitคุณยังสามารถใช้รูปแบบชวเลขของ GitHub:
repomix --remote user/repo สร้างไฟล์ repomix.config.json ในรูทโครงการของคุณสำหรับการกำหนดค่าที่กำหนดเอง
repomix --initนี่คือคำอธิบายของตัวเลือกการกำหนดค่า:
| ตัวเลือก | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|
output.filePath | ชื่อของไฟล์เอาต์พุต | "repomix-output.txt" |
output.style | รูปแบบของเอาต์พุต ( plain , xml , markdown ) | "plain" |
output.headerText | ข้อความที่กำหนดเองเพื่อรวมไว้ในส่วนหัวไฟล์ | null |
output.instructionFilePath | พา ธ ไปยังไฟล์ที่มีคำแนะนำที่กำหนดเองโดยละเอียด | null |
output.removeComments | ไม่ว่าจะลบความคิดเห็นออกจากประเภทไฟล์ที่รองรับ | false |
output.removeEmptyLines | ไม่ว่าจะลบบรรทัดที่ว่างเปล่าออกจากเอาต์พุต | false |
output.showLineNumbers | ไม่ว่าจะเพิ่มหมายเลขบรรทัดในแต่ละบรรทัดในเอาต์พุต | false |
output.copyToClipboard | ไม่ว่าจะคัดลอกเอาต์พุตไปยังคลิปบอร์ดระบบนอกเหนือจากการบันทึกไฟล์ | false |
output.topFilesLength | จำนวนไฟล์บนสุดที่จะแสดงในบทสรุป หากตั้งค่าเป็น 0 จะไม่มีการสรุปผล | 5 |
output.includeEmptyDirectories | ไม่ว่าจะรวมไดเรกทอรีที่ว่างเปล่าในโครงสร้างที่เก็บ | false |
include | รูปแบบของไฟล์ที่จะรวม (ใช้รูปแบบลูกโลก) | [] |
ignore.useGitignore | ไม่ว่าจะใช้รูปแบบจากไฟล์ .gitignore ของโครงการ | true |
ignore.useDefaultPatterns | ไม่ว่าจะใช้รูปแบบการละเว้นเริ่มต้น | true |
ignore.customPatterns | รูปแบบเพิ่มเติมที่จะเพิกเฉย (โดยใช้รูปแบบลูกโลก) | [] |
security.enableSecurityCheck | ไม่ว่าจะทำการตรวจสอบความปลอดภัยบนไฟล์ | true |
ตัวอย่างการกำหนดค่า:
{
"output" : {
"filePath" : " repomix-output.xml " ,
"style" : " xml " ,
"headerText" : " Custom header information for the packed file. " ,
"removeComments" : false ,
"removeEmptyLines" : false ,
"showLineNumbers" : false ,
"copyToClipboard" : true ,
"topFilesLength" : 5 ,
"includeEmptyDirectories" : false
},
"include" : [ " **/* " ],
"ignore" : {
"useGitignore" : true ,
"useDefaultPatterns" : true ,
"customPatterns" : [ " additional-folder " , " **/*.log " ]
},
"security" : {
"enableSecurityCheck" : true
}
}เพื่อสร้างไฟล์การกำหนดค่าส่วนกลาง:
repomix --init --globalไฟล์การกำหนดค่าส่วนกลางจะถูกสร้างขึ้นใน:
%LOCALAPPDATA%Repomixrepomix.config.json$XDG_CONFIG_HOME/repomix/repomix.config.json หรือ ~/.config/repomix/repomix.config.jsonหมายเหตุ: การกำหนดค่าท้องถิ่น (ถ้ามี) มีความสำคัญกว่าการกำหนดค่าทั่วโลก
ตอนนี้ Repomix รองรับการระบุไฟล์เพื่อรวมการใช้รูปแบบ GLOB สิ่งนี้ช่วยให้การเลือกไฟล์ที่ยืดหยุ่นและทรงพลังยิ่งขึ้น:
**/*.js เพื่อรวมไฟล์ JavaScript ทั้งหมดในไดเรกทอรีใด ๆsrc/**/* เพื่อรวมไฟล์ทั้งหมดภายในไดเรกทอรี src และไดเรกทอรีย่อย["src/**/*.js", "**/*.md"] เพื่อรวมไฟล์ JavaScript ใน src และไฟล์ Markdown ทั้งหมด Repomix เสนอหลายวิธีในการตั้งค่าเพิกเฉยต่อรูปแบบสำหรับการยกเว้นไฟล์หรือไดเรกทอรีเฉพาะระหว่างกระบวนการบรรจุ:
.gitignore ของโครงการของคุณจะถูกใช้ พฤติกรรมนี้สามารถควบคุมได้ด้วยการตั้งค่า ignore.useGitignoreignore.useDefaultPatterns โปรดดู defaultignore.ts สำหรับรายละเอียดเพิ่มเติม.repomixignore ในรูทโครงการของคุณเพื่อกำหนดรูปแบบการละเว้นเฉพาะ repomix ไฟล์นี้เป็นไปตามรูปแบบเดียวกับ .gitignoreignore.customPatterns ในไฟล์การกำหนดค่า คุณสามารถเขียนทับการตั้งค่านี้ด้วยตัวเลือกบรรทัดคำสั่ง -i, --ignoreลำดับความสำคัญ (จากสูงสุดไปต่ำสุด):
ignore.customPatterns.repomixignore.gitignore (ถ้า ignore.useGitignore เป็นจริง)ignore.useDefaultPatterns งาน Patterns เป็นจริง)วิธีการนี้ช่วยให้การกำหนดค่าการยกเว้นไฟล์ที่ยืดหยุ่นตามความต้องการของโครงการของคุณ ช่วยเพิ่มประสิทธิภาพขนาดของไฟล์แพ็คที่สร้างขึ้นโดยมั่นใจว่าการยกเว้นไฟล์ที่ไวต่อความปลอดภัยและไฟล์ไบนารีขนาดใหญ่ในขณะที่ป้องกันการรั่วไหลของข้อมูลที่เป็นความลับ
หมายเหตุ: ไฟล์ไบนารีไม่รวมอยู่ในเอาต์พุตที่บรรจุโดยค่าเริ่มต้น แต่เส้นทางของพวกเขาจะอยู่ในส่วน "โครงสร้างที่เก็บ" ของไฟล์เอาต์พุต สิ่งนี้ให้ภาพรวมที่สมบูรณ์ของโครงสร้างที่เก็บในขณะที่รักษาไฟล์ที่บรรจุอย่างมีประสิทธิภาพและข้อความ
ตัวเลือก output.instructionFilePath ช่วยให้คุณระบุไฟล์แยกต่างหากที่มีคำแนะนำโดยละเอียดหรือบริบทเกี่ยวกับโครงการของคุณ สิ่งนี้ช่วยให้ระบบ AI เข้าใจบริบทและข้อกำหนดเฉพาะของโครงการของคุณซึ่งอาจนำไปสู่การวิเคราะห์หรือข้อเสนอแนะที่เกี่ยวข้องและปรับแต่งมากขึ้น
นี่คือตัวอย่างของวิธีการใช้คุณสมบัตินี้:
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 qualityrepomix.config.json ของคุณเพิ่มตัวเลือก instructionFilePath : {
"output" : {
"instructionFilePath" : "repomix-instruction.md" ,
// other options...
}
} เมื่อ repomix สร้างเอาต์พุตมันจะรวมเนื้อหาของ repomix-instruction.md ในส่วนเฉพาะ
หมายเหตุ: เนื้อหาคำสั่งจะถูกผนวกเข้ากับไฟล์เอาต์พุต ตำแหน่งนี้สามารถมีประสิทธิภาพโดยเฉพาะอย่างยิ่งสำหรับระบบ AI สำหรับผู้ที่สนใจในการทำความเข้าใจว่าทำไมสิ่งนี้อาจเป็นประโยชน์มานุษยวิทยาให้ข้อมูลเชิงลึกในเอกสารของพวกเขา:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips
ใส่ข้อมูลรูปแบบยาวที่ด้านบน: วางเอกสารและอินพุตยาวของคุณ (~ 20K+ โทเค็น) ใกล้กับด้านบนของพรอมต์เหนือแบบสอบถามคำแนะนำและตัวอย่าง สิ่งนี้สามารถปรับปรุงประสิทธิภาพของ 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
}
}เรายินดีต้อนรับการมีส่วนร่วมจากชุมชน! ในการเริ่มต้นโปรดดูที่คู่มือการสนับสนุนของเรา
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT
กลับไปด้านบน