Repomix هي أداة قوية تقوم بتعبئة مستودعك بالكامل في ملف واحد ملائم لمنظمة العفو الدولية.
إنه مثالي عندما تحتاج إلى إطعام قاعدة الشفرة الخاصة بك إلى نماذج اللغة الكبيرة (LLMs) أو أدوات AI الأخرى مثل Claude و ChatGPT و Gemini.
ملحوظة
بسبب الاعتبارات القانونية ، تمت إعادة تسمية هذا المشروع من "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 في الدليل الحالي الخاص بك ، يحتوي على مستودعك بالكامل بتنسيق مناسب للني الذكاء.
لحزم مستودعك بالكامل:
repomixلحزم دليل معين:
repomix path/to/directoryلحزم ملفات أو أدلة محددة باستخدام أنماط الكرة الأرضية:
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 Generative مثل Claude و ChatGpt و Gemini.
بمجرد إنشاء الملف المعبأ مع Repomix ، يمكنك استخدامه مع أدوات الذكاء الاصطناعى مثل Claude و ChatGpt و Gemini. فيما يلي بعض المطالبات مثال لتبدأ:
للحصول على اقتراحات شاملة لمراجعة الكود وإعادة بيعها:
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.
لا تتردد في تعديل هذه المطالبات بناءً على احتياجاتك المحددة وقدرات أداة الذكاء الاصطناعى التي تستخدمها.
تحقق من مناقشة مجتمعنا حيث يشارك المستخدمون:
لا تتردد في الانضمام إلى المناقشة ومشاركة خبراتك الخاصة! يمكن أن تساعد رؤيتك الآخرين على الاستفادة بشكل أفضل من repomix.
يقوم Repomix بإنشاء ملف واحد يحتوي على فواصل واضحة بين أجزاء مختلفة من قاعدة كودك.
لتعزيز فهم الذكاء الاصطناعى ، يبدأ ملف الإخراج بتفسير AI-Ordive ، مما يجعل من السهل على نماذج الذكاء الاصطناعي فهم سياق وهيكل المستودع المعبأ.
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 في سياقات الذكاء الاصطناعي:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags
عندما تتضمن المطالبات الخاصة بك مكونات متعددة مثل السياق ، والتعليمات ، والأمثلة ، يمكن أن تكون علامات XML بمثابة تغيير في اللعبة. إنها تساعد كلود في تحليل مطالبك بشكل أكثر دقة ، مما يؤدي إلى مخرجات عالية الجودة.
هذا يعني أن إخراج XML من Repomix ليس مجرد تنسيق مختلف ، ولكن من المحتمل أن يكون وسيلة أكثر فاعلية لتغذية قاعدة بياناتك في أنظمة الذكاء الاصطناعي للتحليل أو مراجعة الكود أو المهام الأخرى.
لإنشاء الإخراج بتنسيق 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 ` )يوفر هذا التنسيق هيكلًا نظيفًا وقابل للقراءة على حد سواء صديق للبشر ويمكن تحليله بسهولة بواسطة أنظمة الذكاء الاصطناعى.
-v, --version : show tool إصدار-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 : تمكين تسجيل مطوّلأمثلة:
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يمكنك أيضًا استخدام تنسيق اختصار جيثب:
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 أنماط متعددة مثل ["src/**/*.js", "**/*.md"] يوفر Repomix طرقًا متعددة لتعيين أنماط تجاهل لاستبعاد الملفات أو الدلائل المحددة أثناء عملية التعبئة:
.gitignore لمشروعك. يمكن السيطرة على هذا السلوك مع ignore.useGitignore . UseGitignore.ignore.useDefaultPatterns . يرجى الاطلاع على defaultignore.ts لمزيد من التفاصيل..repomixignore في جذر مشروعك لتحديد أنماط تجاهل repomix الخاصة. يتبع هذا الملف نفس التنسيق مثل .gitignore .ignore.customPatterns في ملف التكوين. يمكنك الكتابة فوق هذا الإعداد باستخدام خيار سطر الأوامر -i, --ignore .ترتيب الأولوية (من الأعلى إلى الأدنى):
ignore.customPatterns الأنماط المخصصة.repomixignore.gitignore ignore.useGitignoreignore.useDefaultPatterns usedefaultpatterns صحيح)يتيح هذا النهج تكوين استبعاد الملف المرن بناءً على احتياجات مشروعك. يساعد في تحسين حجم ملف الحزمة الذي تم إنشاؤه من خلال ضمان استبعاد الملفات الحساسة للأمان والملفات الثنائية الكبيرة ، مع منع تسرب المعلومات السرية.
ملاحظة: لا يتم تضمين الملفات الثنائية في الإخراج المعبأ بشكل افتراضي ، ولكن يتم سرد مساراتها في قسم "هيكل المستودع" في ملف الإخراج. يوفر هذا نظرة عامة كاملة على بنية المستودع مع الحفاظ على الملف المعبأ كفاءة ومعتمد على النص.
يتيح لك خيار output.instructionFilePath . يتيح ذلك أنظمة الذكاء الاصطناعى لفهم السياق والمتطلبات المحددة لمشروعك ، مما قد يؤدي إلى تحليل أو اقتراحات أكثر ملاءمة ومصممة خصيصًا.
إليك مثال على كيفية استخدام هذه الميزة:
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 في قسم مخصص.
ملاحظة: يتم إلحاق محتوى التعليمات في نهاية ملف الإخراج. يمكن أن يكون هذا الموضع فعالًا بشكل خاص لأنظمة الذكاء الاصطناعي. للراغبين في فهم سبب هذا قد يكون مفيدًا ، توفر الأنثروبور بعض الأفكار في وثائقهم:
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips
ضع بيانات طويلة الشكل في الأعلى: ضع المستندات والمدخلات الطويلة (~ 20k+ الرموز) بالقرب من أعلى مطالبك ، فوق استعلامك ، التعليمات ، والأمثلة. هذا يمكن أن يحسن أداء كلود بشكل كبير في جميع النماذج. يمكن أن تحسن الاستعلامات في النهاية جودة الاستجابة بنسبة تصل إلى 30 ٪ في الاختبارات ، خاصة مع المدخلات المعقدة متعددة الوصول.
عندما يتم تعيين output.removeComments على true ، ستحاول Repomix إزالة التعليقات من أنواع الملفات المدعومة. يمكن أن تساعد هذه الميزة في تقليل حجم ملف الإخراج والتركيز على محتوى الكود الأساسي.
تشمل اللغات المدعومة:
HTML ، CSS ، JavaScript ، TypeScript ، Vue ، Svelte ، Python ، PHP ، Ruby ، C ، C#، Java ، Go ، Rust ، Swift ، Kotlin ، Dart ، Shell ، and 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. false تعطيله عن طريق تعيين security.enableSecurityCheck .
{
"security" : {
"enableSecurityCheck" : false
}
}نرحب بالمساهمات من المجتمع! للبدء ، يرجى الرجوع إلى دليل المساهمة لدينا.
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.
العودة إلى الأعلى