github yamadashy/repomix v1.16.0

4 hours ago

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 as output.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 ⚡

  • --compress is 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 .PY or .TS are 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 repomix

As always, if you have any issues or suggestions, please let us know on GitHub issues or our Discord community.

Don't miss a new repomix release

NewReleases is sending notifications on new releases.