This release adds per-file inclusion levels via output.patterns for fine-grained control over how each file is packed, a new cwd-relative output path style, and a --skill-project-name option, along with compression-robustness and file-matching fixes.
What's New 🚀
Per-file Inclusion Levels (output.patterns) (#1653, #608)
You can now control the detail level per glob from your configuration file. output.patterns is an ordered array of { pattern, compress?, directoryStructureOnly? } entries; the first matching glob wins and overrides the global output.compress for that file. Each file resolves to one of three levels:
- Full content (default)
- Compressed (
compress: true) — passed through the same Tree-sitter pipeline asoutput.compress - Directory-structure-only (
directoryStructureOnly: true) — listed in the directory structure, but its content is omitted
For example, compress docs/** while reducing website/** to structure only:
{
"output": {
"compress": false,
"patterns": [
{ "pattern": "docs/**/*", "compress": true },
{ "pattern": "website/**/*", "directoryStructureOnly": true }
]
}
}This option is config-file only. See Per-file Inclusion Levels.
Special thanks to @PAMulligan for designing and implementing this feature! 🎉
cwd-relative Output Path Style (#1646)
A new output path style renders file paths relative to the current working directory instead of the target directory — handy for multi-root runs and clearer paths. Set output.filePathStyle: "cwd-relative" in your config, or pass --output-file-path-style cwd-relative (default remains target-relative).
Special thanks to @Samsen879 for this contribution! 🎉
--skill-project-name Option (#1649)
Skill generation now exposes a --skill-project-name option so you can set the project name explicitly.
Special thanks to @WilliamK112 for this contribution! 🎉
Improvements ⚡
--compressis now resilient: a single file that Tree-sitter cannot parse — including pathological files that trigger a WASM runtime abort — no longer aborts the whole pack. It falls back to uncompressed output with a warning, and the rest of the run completes normally (#1679, #1668).- File extensions are now matched case-insensitively when selecting the comment manipulator, so files like
.PYor.TSare handled correctly (#1632). - Split-output files are now copied correctly after remote packing (#1631).
Special thanks to @serhiizghama and @Samsen879 for these fixes! 🎉
How to Update
npm update -g repomixAs always, if you have any issues or suggestions, please let us know on GitHub issues or our Discord community.