Skip to main content
Glama
MIT License
27,120
19,789
  • Linux
  • Apple
configuration.mdโ€ข20 kB
# ์„ค์ • Repomix๋Š” ์„ค์ • ํŒŒ์ผ ๋˜๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์ • ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์ฒ˜๋ฆฌ ๋ฐ ์ถœ๋ ฅ ๋ฐฉ์‹์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ## ์„ค์ • ํŒŒ์ผ ํ˜•์‹ Repomix๋Š” ์œ ์—ฐ์„ฑ๊ณผ ์‚ฌ์šฉ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์„ค์ • ํŒŒ์ผ ํ˜•์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Repomix๋Š” ๋‹ค์Œ ์šฐ์„ ์ˆœ์œ„ ์ˆœ์„œ๋กœ ์„ค์ • ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค: 1. **TypeScript** (`repomix.config.ts`, `repomix.config.mts`, `repomix.config.cts`) 2. **JavaScript/ES Module** (`repomix.config.js`, `repomix.config.mjs`, `repomix.config.cjs`) 3. **JSON** (`repomix.config.json5`, `repomix.config.jsonc`, `repomix.config.json`) ### JSON ์„ค์ • ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์„ค์ • ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค: ```bash repomix --init ``` ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ธฐ๋ณธ ์„ค์ •์ด ํฌํ•จ๋œ `repomix.config.json` ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์„ค์ •์ด ์—†์„ ๋•Œ ๋Œ€์ฒด๋กœ ์‚ฌ์šฉ๋  ์ „์—ญ ์„ค์ • ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค: ```bash repomix --init --global ``` ### TypeScript ์„ค์ • TypeScript ์„ค์ • ํŒŒ์ผ์€ ์™„์ „ํ•œ ํƒ€์ž… ๊ฒ€์‚ฌ ๋ฐ IDE ์ง€์›์œผ๋กœ ์ตœ๊ณ ์˜ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. **์„ค์น˜:** `defineConfig`์™€ ํ•จ๊ป˜ TypeScript ๋˜๋Š” JavaScript ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Repomix๋ฅผ dev dependency๋กœ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: ```bash npm install -D repomix ``` **์˜ˆ์ œ:** ```typescript // repomix.config.ts import { defineConfig } from 'repomix'; export default defineConfig({ output: { filePath: 'output.xml', style: 'xml', removeComments: true, }, ignore: { customPatterns: ['**/node_modules/**', '**/dist/**'], }, }); ``` **์žฅ์ :** - โœ… IDE์—์„œ ์™„์ „ํ•œ TypeScript ํƒ€์ž… ๊ฒ€์‚ฌ - โœ… ํƒ์›”ํ•œ IDE ์ž๋™ ์™„์„ฑ ๋ฐ IntelliSense - โœ… ๋™์  ๊ฐ’ ์‚ฌ์šฉ ๊ฐ€๋Šฅ (ํƒ€์ž„์Šคํƒฌํ”„, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋“ฑ) **๋™์  ๊ฐ’ ์˜ˆ์ œ:** ```typescript // repomix.config.ts import { defineConfig } from 'repomix'; // ํƒ€์ž„์Šคํƒฌํ”„ ๊ธฐ๋ฐ˜ ํŒŒ์ผ๋ช… ์ƒ์„ฑ const timestamp = new Date().toISOString().slice(0, 19).replace(/[:.]/g, '-'); export default defineConfig({ output: { filePath: `output-${timestamp}.xml`, style: 'xml', }, }); ``` ### JavaScript ์„ค์ • JavaScript ์„ค์ • ํŒŒ์ผ์€ TypeScript์™€ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋ฉฐ `defineConfig` ๋ฐ ๋™์  ๊ฐ’์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ## ์„ค์ • ์˜ต์…˜ | ์˜ต์…˜ | ์„ค๋ช… | ๊ธฐ๋ณธ๊ฐ’ | |----------------------------------|------------------------------------------------------------------------------------------------------------------------------|------------------------| | `input.maxFileSize` | ์ฒ˜๋ฆฌํ•  ์ตœ๋Œ€ ํŒŒ์ผ ํฌ๊ธฐ(๋ฐ”์ดํŠธ). ์ด ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ํŒŒ์ผ์€ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ํฐ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์ด๋‚˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ œ์™ธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค | `50000000` | | `output.filePath` | ์ถœ๋ ฅ ํŒŒ์ผ ์ด๋ฆ„. XML, Markdown, ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ˜•์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค | `"repomix-output.xml"` | | `output.style` | ์ถœ๋ ฅ ์Šคํƒ€์ผ(`xml`, `markdown`, `json`, `plain`). ๊ฐ ํ˜•์‹์€ ๋‹ค๋ฅธ AI ๋„๊ตฌ์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค | `"xml"` | | `output.parsableStyle` | ์„ ํƒํ•œ ์Šคํƒ€์ผ ์Šคํ‚ค๋งˆ์— ๋”ฐ๋ผ ์ถœ๋ ฅ์„ ์ด์Šค์ผ€์ดํ”„ํ• ์ง€ ์—ฌ๋ถ€. ๋” ๋‚˜์€ ๊ตฌ๋ฌธ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํ† ํฐ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค | `false` | | `output.compress` | Tree-sitter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ํ† ํฐ ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ง€๋Šฅ์ ์ธ ์ฝ”๋“œ ์ถ”์ถœ์„ ์ˆ˜ํ–‰ํ• ์ง€ ์—ฌ๋ถ€ | `false` | | `output.headerText` | ํŒŒ์ผ ํ—ค๋”์— ํฌํ•จํ•  ์‚ฌ์šฉ์ž ์ •์˜ ํ…์ŠคํŠธ. AI ๋„๊ตฌ์— ์ปจํ…์ŠคํŠธ๋‚˜ ์ง€์นจ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค | `null` | | `output.instructionFilePath` | AI ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ƒ์„ธํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ์ง€์นจ์ด ํฌํ•จ๋œ ํŒŒ์ผ ๊ฒฝ๋กœ | `null` | | `output.fileSummary` | ์ถœ๋ ฅ ์‹œ์ž‘ ๋ถ€๋ถ„์— ํŒŒ์ผ ์ˆ˜, ํฌ๊ธฐ ๋ฐ ๊ธฐํƒ€ ๋ฉ”ํŠธ๋ฆญ์„ ๋ณด์—ฌ์ฃผ๋Š” ์š”์•ฝ ์„น์…˜์„ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€ | `true` | | `output.directoryStructure` | ์ถœ๋ ฅ์— ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€. AI๊ฐ€ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค | `true` | | `output.files` | ์ถœ๋ ฅ์— ํŒŒ์ผ ๋‚ด์šฉ์„ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€. false๋กœ ์„ค์ •ํ•˜๋ฉด ๊ตฌ์กฐ์™€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค | `true` | | `output.removeComments` | ์ง€์›๋˜๋Š” ํŒŒ์ผ ์œ ํ˜•์—์„œ ์ฃผ์„์„ ์ œ๊ฑฐํ• ์ง€ ์—ฌ๋ถ€. ๋…ธ์ด์ฆˆ์™€ ํ† ํฐ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค | `false` | | `output.removeEmptyLines` | ์ถœ๋ ฅ์—์„œ ๋นˆ ์ค„์„ ์ œ๊ฑฐํ•˜์—ฌ ํ† ํฐ ์ˆ˜๋ฅผ ์ค„์ผ์ง€ ์—ฌ๋ถ€ | `false` | | `output.showLineNumbers` | ๊ฐ ์ค„์— ์ค„ ๋ฒˆํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ• ์ง€ ์—ฌ๋ถ€. ์ฝ”๋“œ์˜ ํŠน์ • ๋ถ€๋ถ„์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค | `false` | | `output.truncateBase64` | ํ† ํฐ ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ธด base64 ๋ฐ์ดํ„ฐ ๋ฌธ์ž์—ด(์˜ˆ: ์ด๋ฏธ์ง€)์„ ์ž๋ฅผ์ง€ ์—ฌ๋ถ€ | `false` | | `output.copyToClipboard` | ํŒŒ์ผ ์ €์žฅ ์™ธ์—๋„ ์ถœ๋ ฅ์„ ์‹œ์Šคํ…œ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌํ• ์ง€ ์—ฌ๋ถ€ | `false` | | `output.topFilesLength` | ์š”์•ฝ์— ํ‘œ์‹œํ•  ์ƒ์œ„ ํŒŒ์ผ ์ˆ˜. 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์š”์•ฝ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค | `5` | | `output.includeEmptyDirectories` | ์ €์žฅ์†Œ ๊ตฌ์กฐ์— ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€ | `false` | | `output.includeFullDirectoryStructure` | `include` ํŒจํ„ด ์‚ฌ์šฉ ์‹œ, ํฌํ•จ๋œ ํŒŒ์ผ๋งŒ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ์™„์ „ํ•œ ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ(๋ฌด์‹œ ํŒจํ„ด ์ค€์ˆ˜)๋ฅผ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€. AI ๋ถ„์„์„ ์œ„ํ•œ ์ „์ฒด ์ €์žฅ์†Œ ์ปจํ…์ŠคํŠธ ์ œ๊ณต | `false` | | `output.git.sortByChanges` | Git ๋ณ€๊ฒฝ ํšŸ์ˆ˜๋กœ ํŒŒ์ผ์„ ์ •๋ ฌํ• ์ง€ ์—ฌ๋ถ€. ๋ณ€๊ฒฝ์ด ๋งŽ์€ ํŒŒ์ผ์ด ํ•˜๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค | `true` | | `output.git.sortByChangesMaxCommits` | Git ๋ณ€๊ฒฝ์„ ๋ถ„์„ํ•  ๋•Œ ๋ถ„์„ํ•  ์ตœ๋Œ€ ์ปค๋ฐ‹ ์ˆ˜. ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์ด๋ ฅ ๊นŠ์ด๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค | `100` | | `output.git.includeDiffs` | ์ถœ๋ ฅ์— Git ์ฐจ์ด๋ฅผ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€. ์ž‘์—… ํŠธ๋ฆฌ์™€ ์Šคํ…Œ์ด์ง•๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณ„๋„๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค | `false` | | `output.git.includeLogs` | ์ถœ๋ ฅ์— Git ๋กœ๊ทธ๋ฅผ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€. ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ์˜ ๋‚ ์งœ, ๋ฉ”์‹œ์ง€, ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค | `false` | | `output.git.includeLogsCount` | ํฌํ•จํ•  Git ๋กœ๊ทธ ์ปค๋ฐ‹ ์ˆ˜. ๊ฐœ๋ฐœ ํŒจํ„ด์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ํžˆ์Šคํ† ๋ฆฌ ๊นŠ์ด๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค | `50` | | `include` | ํฌํ•จํ•  ํŒŒ์ผ ํŒจํ„ด([glob ํŒจํ„ด](https://github.com/mrmlnc/fast-glob?tab=readme-ov-file#pattern-syntax) ์‚ฌ์šฉ) | `[]` | | `ignore.useGitignore` | ํ”„๋กœ์ ํŠธ์˜ `.gitignore` ํŒŒ์ผ์˜ ํŒจํ„ด์„ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€ | `true` | | `ignore.useDefaultPatterns` | ๊ธฐ๋ณธ ๋ฌด์‹œ ํŒจํ„ด(node_modules, .git ๋“ฑ)์„ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€ | `true` | | `ignore.customPatterns` | ์ถ”๊ฐ€ ๋ฌด์‹œ ํŒจํ„ด([glob ํŒจํ„ด](https://github.com/mrmlnc/fast-glob?tab=readme-ov-file#pattern-syntax) ์‚ฌ์šฉ) | `[]` | | `security.enableSecurityCheck` | Secretlint๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ• ์ง€ ์—ฌ๋ถ€ | `true` | | `tokenCount.encoding` | OpenAI์˜ [tiktoken](https://github.com/openai/tiktoken) ํ† ํฌ๋‚˜์ด์ €๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํ† ํฐ ์นด์šดํŠธ ์ธ์ฝ”๋”ฉ. GPT-4o๋Š” `o200k_base`, GPT-4/3.5๋Š” `cl100k_base`๋ฅผ ์‚ฌ์šฉ. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [tiktoken model.py](https://github.com/openai/tiktoken/blob/main/tiktoken/model.py#L24) ์ฐธ์กฐ | `"o200k_base"` | ์„ค์ • ํŒŒ์ผ์€ [JSON5](https://json5.org/) ๊ตฌ๋ฌธ์„ ์ง€์›ํ•˜๋ฉฐ, ๋‹ค์Œ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค: - ์ฃผ์„(ํ•œ ์ค„ ๋ฐ ์—ฌ๋Ÿฌ ์ค„) - ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์˜ ํ›„ํ–‰ ์‰ผํ‘œ - ๋”ฐ์˜ดํ‘œ ์—†๋Š” ์†์„ฑ ์ด๋ฆ„ - ๋” ์œ ์—ฐํ•œ ๋ฌธ์ž์—ด ๊ตฌ๋ฌธ ## ์Šคํ‚ค๋งˆ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ `$schema` ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์„ค์ • ํŒŒ์ผ์— ๋Œ€ํ•œ ์Šคํ‚ค๋งˆ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ```json { "$schema": "https://repomix.com/schemas/latest/schema.json", "output": { "filePath": "repomix-output.md", "style": "markdown" } } ``` ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด JSON ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์›ํ•˜๋Š” ํŽธ์ง‘๊ธฐ์—์„œ ์ž๋™ ์™„์„ฑ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ## ์„ค์ • ํŒŒ์ผ ์˜ˆ์‹œ ๋‹ค์Œ์€ ์ „์ฒด ์„ค์ • ํŒŒ์ผ(`repomix.config.json`)์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค: ```json { "$schema": "https://repomix.com/schemas/latest/schema.json", "input": { "maxFileSize": 50000000 }, "output": { "filePath": "repomix-output.xml", "style": "xml", "parsableStyle": false, "compress": false, "headerText": "ํŒจํ‚ค์ง€๋œ ํŒŒ์ผ์˜ ์‚ฌ์šฉ์ž ์ •์˜ ํ—ค๋” ์ •๋ณด", "fileSummary": true, "directoryStructure": true, "files": true, "removeComments": false, "removeEmptyLines": false, "topFilesLength": 5, "showLineNumbers": false, "truncateBase64": false, "copyToClipboard": false, "includeEmptyDirectories": false, "git": { "sortByChanges": true, "sortByChangesMaxCommits": 100, "includeDiffs": false, "includeLogs": false, "includeLogsCount": 50 } }, "include": ["**/*"], "ignore": { "useGitignore": true, "useDefaultPatterns": true, // ํŒจํ„ด์€ .repomixignore์—์„œ๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค "customPatterns": [ "additional-folder", "**/*.log" ], }, "security": { "enableSecurityCheck": true }, "tokenCount": { "encoding": "o200k_base" } } ``` ## ์„ค์ • ํŒŒ์ผ ์œ„์น˜ Repomix๋Š” ๋‹ค์Œ ์ˆœ์„œ๋กœ ์„ค์ • ํŒŒ์ผ์„ ์ฐพ์Šต๋‹ˆ๋‹ค: 1. ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋กœ์ปฌ ์„ค์ • ํŒŒ์ผ (์šฐ์„ ์ˆœ์œ„: TS > JS > JSON) - TypeScript: `repomix.config.ts`, `repomix.config.mts`, `repomix.config.cts` - JavaScript: `repomix.config.js`, `repomix.config.mjs`, `repomix.config.cjs` - JSON: `repomix.config.json5`, `repomix.config.jsonc`, `repomix.config.json` 2. ์ „์—ญ ์„ค์ • ํŒŒ์ผ (์šฐ์„ ์ˆœ์œ„: TS > JS > JSON) - Windows: - TypeScript: `%LOCALAPPDATA%\Repomix\repomix.config.ts`, `.mts`, `.cts` - JavaScript: `%LOCALAPPDATA%\Repomix\repomix.config.js`, `.mjs`, `.cjs` - JSON: `%LOCALAPPDATA%\Repomix\repomix.config.json5`, `.jsonc`, `.json` - macOS/Linux: - TypeScript: `~/.config/repomix/repomix.config.ts`, `.mts`, `.cts` - JavaScript: `~/.config/repomix/repomix.config.js`, `.mjs`, `.cjs` - JSON: `~/.config/repomix/repomix.config.json5`, `.jsonc`, `.json` ๋ช…๋ น์ค„ ์˜ต์…˜์€ ์„ค์ • ํŒŒ์ผ์˜ ์„ค์ •๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ## ํฌํ•จ ํŒจํ„ด Repomix๋Š” [glob ํŒจํ„ด](https://github.com/mrmlnc/fast-glob?tab=readme-ov-file#pattern-syntax)์„ ์‚ฌ์šฉํ•˜์—ฌ ํฌํ•จํ•  ํŒŒ์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋”์šฑ ์œ ์—ฐํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ํŒŒ์ผ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค: - `**/*.js`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  JavaScript ํŒŒ์ผ ํฌํ•จ - `src/**/*`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ `src` ๋””๋ ‰ํ† ๋ฆฌ์™€ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ ๋ชจ๋“  ํŒŒ์ผ ํฌํ•จ - `["src/**/*.js", "**/*.md"]`์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํŒจํ„ด์„ ๊ฒฐํ•ฉํ•˜์—ฌ `src`์˜ JavaScript ํŒŒ์ผ๊ณผ ๋ชจ๋“  Markdown ํŒŒ์ผ ํฌํ•จ ์„ค์ • ํŒŒ์ผ์—์„œ ํฌํ•จ ํŒจํ„ด์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ```json { "include": ["src/**/*", "tests/**/*.test.js"] } ``` ๋˜๋Š” ์ผํšŒ์„ฑ ํ•„ํ„ฐ๋ง์„ ์œ„ํ•ด `--include` ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ## ๋ฌด์‹œ ํŒจํ„ด Repomix๋Š” ํŒจํ‚ค์ง• ํ”„๋กœ์„ธ์Šค ์ค‘์— ํŠน์ • ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ์™ธํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค: - **.gitignore**: ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ์˜ `.gitignore` ํŒŒ์ผ๊ณผ `.git/info/exclude`์— ๋‚˜์—ด๋œ ํŒจํ„ด์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ `ignore.useGitignore` ์„ค์ • ๋˜๋Š” `--no-gitignore` CLI ์˜ต์…˜์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - **๊ธฐ๋ณธ ํŒจํ„ด**: Repomix์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ œ์™ธ๋˜๋Š” ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ธฐ๋ณธ ๋ชฉ๋ก(์˜ˆ: node_modules, .git, ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ)์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ `ignore.useDefaultPatterns` ์„ค์ • ๋˜๋Š” `--no-default-patterns` CLI ์˜ต์…˜์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [defaultIgnore.ts](https://github.com/yamadashy/repomix/blob/main/src/config/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`๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ) ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ์˜ ํ•„์š”์— ๋”ฐ๋ผ ์œ ์—ฐํ•œ ํŒŒ์ผ ์ œ์™ธ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ํŒŒ์ผ๊ณผ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์˜ ์ œ์™ธ๋ฅผ ๋ณด์žฅํ•˜๋ฉด์„œ ๊ธฐ๋ฐ€ ์ •๋ณด ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ์ƒ์„ฑ๋œ ํŒฉ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. **์ฐธ๊ณ :** ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒจํ‚น๋œ ์ถœ๋ ฅ์— ํฌํ•จ๋˜์ง€ ์•Š์ง€๋งŒ, ํ•ด๋‹น ๊ฒฝ๋กœ๋Š” ์ถœ๋ ฅ ํŒŒ์ผ์˜ "์ €์žฅ์†Œ ๊ตฌ์กฐ" ์„น์…˜์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŒฉ ํŒŒ์ผ์„ ํšจ์œจ์ ์ด๊ณ  ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ์ €์žฅ์†Œ ๊ตฌ์กฐ์˜ ์ „์ฒด ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ์ฒ˜๋ฆฌ](#๋ฐ”์ด๋„ˆ๋ฆฌ-ํŒŒ์ผ-์ฒ˜๋ฆฌ)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. `.repomixignore` ์˜ˆ์‹œ: ```text # ์บ์‹œ ๋””๋ ‰ํ† ๋ฆฌ .cache/ tmp/ # ๋นŒ๋“œ ์ถœ๋ ฅ dist/ build/ # ๋กœ๊ทธ *.log ``` ## ๊ธฐ๋ณธ ๋ฌด์‹œ ํŒจํ„ด `ignore.useDefaultPatterns`๊ฐ€ true์ผ ๋•Œ Repomix๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์„ ์ž๋™์œผ๋กœ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค: ```text node_modules/** .git/** coverage/** dist/** ``` ์ „์ฒด ๋ชฉ๋ก์€ [defaultIgnore.ts](https://github.com/yamadashy/repomix/blob/main/src/config/defaultIgnore.ts)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ## ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ์ฒ˜๋ฆฌ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ(์ด๋ฏธ์ง€, PDF, ์ปดํŒŒ์ผ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ, ์•„์นด์ด๋ธŒ ๋“ฑ)์€ ํšจ์œจ์ ์ธ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ถœ๋ ฅ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค: - **ํŒŒ์ผ ๋‚ด์šฉ**: ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์€ ํŒŒ์ผ์„ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ์ง€ํ•˜๊ณ  AI ์ฒ˜๋ฆฌ์— ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŒจํ‚น๋œ ์ถœ๋ ฅ์— **ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค** - **๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ**: ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ **๊ฒฝ๋กœ๋Š” ๋‚˜์—ด๋˜๋ฉฐ** ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์„น์…˜์— ํ‘œ์‹œ๋˜์–ด ์ €์žฅ์†Œ์˜ ์™„์ „ํ•œ ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ AI ์†Œ๋น„์— ์ตœ์ ํ™”๋œ ํšจ์œจ์ ์ธ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ถœ๋ ฅ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ €์žฅ์†Œ ๊ตฌ์กฐ์˜ ์™„์ „ํ•œ ๋ณด๊ธฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. **์˜ˆ์‹œ:** ์ €์žฅ์†Œ์— `logo.png`์™€ `app.jar`๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ: - ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์„น์…˜์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค - ํ•ด๋‹น ๋‚ด์šฉ์€ ํŒŒ์ผ ์„น์…˜์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค **๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์ถœ๋ ฅ:** ``` src/ index.ts utils.ts assets/ logo.png build/ app.jar ``` ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด AI ๋„๊ตฌ๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋‚ด์šฉ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ ๋„ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์— ์ด๋Ÿฌํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์ด ์กด์žฌํ•จ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. **์ฐธ๊ณ :** `input.maxFileSize` ์„ค์ • ์˜ต์…˜(๊ธฐ๋ณธ๊ฐ’: 50MB)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๋Œ€ ํŒŒ์ผ ํฌ๊ธฐ ์ž„๊ณ„๊ฐ’์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ œํ•œ๋ณด๋‹ค ํฐ ํŒŒ์ผ์€ ์™„์ „ํžˆ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ## ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ ### ์ฝ”๋“œ ์••์ถ• ์ฝ”๋“œ ์••์ถ• ๊ธฐ๋Šฅ(`output.compress: true`๋กœ ํ™œ์„ฑํ™”)์€ [Tree-sitter](https://github.com/tree-sitter/tree-sitter)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ œ๊ฑฐํ•˜๋ฉด์„œ ํ•„์ˆ˜ ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ์ง€๋Šฅ์ ์œผ๋กœ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ค‘์š”ํ•œ ๊ตฌ์กฐ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ํ† ํฐ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์ด์ : - ํ† ํฐ ์ˆ˜๋ฅผ ํฌ๊ฒŒ ์ค„์ž„ - ํด๋ž˜์Šค์™€ ํ•จ์ˆ˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์œ ์ง€ - ์ž„ํฌํŠธ์™€ ์ต์ŠคํฌํŠธ ์œ ์ง€ - ํƒ€์ž… ์ •์˜์™€ ์ธํ„ฐํŽ˜์ด์Šค ์œ ์ง€ - ํ•จ์ˆ˜ ๋ณธ๋ฌธ๊ณผ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ ์ œ๊ฑฐ ์ž์„ธํ•œ ์ •๋ณด์™€ ์˜ˆ์‹œ๋Š” [์ฝ”๋“œ ์••์ถ• ๊ฐ€์ด๋“œ](code-compress)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ### Git ํ†ตํ•ฉ `output.git` ์„ค์ •์€ ๊ฐ•๋ ฅํ•œ Git ์ธ์‹ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค: - `sortByChanges`: true๋กœ ์„ค์ •ํ•˜๋ฉด ํŒŒ์ผ์ด Git ๋ณ€๊ฒฝ ํšŸ์ˆ˜(ํ•ด๋‹น ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹ ์ˆ˜)๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์ด ๋งŽ์€ ํŒŒ์ผ์ด ์ถœ๋ ฅ ํ•˜๋‹จ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋” ํ™œ๋ฐœํ•˜๊ฒŒ ๊ฐœ๋ฐœ๋˜๋Š” ํŒŒ์ผ์„ ์šฐ์„ ์‹œํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: `true` - `sortByChangesMaxCommits`: ํŒŒ์ผ ๋ณ€๊ฒฝ ํšŸ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ๋ถ„์„ํ•  ์ตœ๋Œ€ ์ปค๋ฐ‹ ์ˆ˜. ๊ธฐ๋ณธ๊ฐ’: `100` - `includeDiffs`: true๋กœ ์„ค์ •ํ•˜๋ฉด Git ์ฐจ์ด๋ฅผ ์ถœ๋ ฅ์— ํฌํ•จํ•ฉ๋‹ˆ๋‹ค(์ž‘์—… ํŠธ๋ฆฌ์™€ ์Šคํ…Œ์ด์ง•๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณ„๋„๋กœ ํฌํ•จ). ์ด๋ฅผ ํ†ตํ•ด ๋…์ž๋Š” ์ €์žฅ์†Œ์˜ ๋Œ€๊ธฐ ์ค‘์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: `false` - `includeLogs`: true๋กœ ์„ค์ •ํ•˜๋ฉด Git ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅ์— ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ์˜ ๋‚ ์งœ, ๋ฉ”์‹œ์ง€, ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ํ‘œ์‹œ๋˜์–ด AI๊ฐ€ ์–ด๋–ค ํŒŒ์ผ๋“ค์ด ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ๊ป˜ ๋ณ€๊ฒฝ๋˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: `false` - `includeLogsCount`: ํฌํ•จํ•  Git ๋กœ๊ทธ ์ปค๋ฐ‹ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํŒจํ„ด ๋ถ„์„์— ์‚ฌ์šฉ๋˜๋Š” ํžˆ์Šคํ† ๋ฆฌ ๊นŠ์ด๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’: `50` ์„ค์ • ์˜ˆ์‹œ: ```json { "output": { "git": { "sortByChanges": true, "sortByChangesMaxCommits": 100, "includeDiffs": true, "includeLogs": true, "includeLogsCount": 30 } } } ``` ### ๋ณด์•ˆ ๊ฒ€์‚ฌ `security.enableSecurityCheck`๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด Repomix๋Š” [Secretlint](https://github.com/secretlint/secretlint)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์ถœ๋ ฅ์— ํฌํ•จํ•˜๊ธฐ ์ „์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ณด์˜ ์šฐ๋ฐœ์  ๋…ธ์ถœ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค: - API ํ‚ค - ์•ก์„ธ์Šค ํ† ํฐ - ๊ฐœ์ธ ํ‚ค - ๋น„๋ฐ€๋ฒˆํ˜ธ - ๊ธฐํƒ€ ๋ฏผ๊ฐํ•œ ์ž๊ฒฉ ์ฆ๋ช… ### ์ฃผ์„ ์ œ๊ฑฐ `output.removeComments`๋ฅผ `true`๋กœ ์„ค์ •ํ•˜๋ฉด ์ง€์›๋˜๋Š” ํŒŒ์ผ ์œ ํ˜•์—์„œ ์ฃผ์„์ด ์ œ๊ฑฐ๋˜์–ด ์ถœ๋ ฅ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ํ•ต์‹ฌ ์ฝ”๋“œ ๋‚ด์šฉ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค: - ๋งŽ์€ ๋ฌธ์„œํ™”๊ฐ€ ๋œ ์ฝ”๋“œ ์ฒ˜๋ฆฌ - ํ† ํฐ ์ˆ˜ ์ค„์ด๊ธฐ ์‹œ๋„ - ์ฝ”๋“œ ๊ตฌ์กฐ์™€ ๋กœ์ง์— ์ง‘์ค‘ ์ง€์›๋˜๋Š” ์–ธ์–ด์™€ ์ž์„ธํ•œ ์˜ˆ์‹œ๋Š” [์ฃผ์„ ์ œ๊ฑฐ ๊ฐ€์ด๋“œ](comment-removal)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yamadashy/repomix'

If you have feedback or need assistance with the MCP directory API, please join our Discord server