v1.18.1
macro-inc/macrov1.18.1Sep 21, 2026by yamadashy
Upgrading?
AI Summary
A security patch addressing repository-level git config execution and fixes for Windows crashes, shell/YAML comment handling, and output splitting.
Key Highlights
- Repository-level git config is no longer executed (security fix)
- Fixed Windows crash on `.gitignore` with backslash escapes
- Fixed `--remove-comments` corruption of shell and YAML files
- Fixed split output directory tree display
Full Release Notes
This patch release fixes a security issue in the CLI's git handling, along with the Windows `.gitignore` crash and a set of contributor bug fixes!
## Security Fix 🔒
### Repository-Level Git Config Is No Longer Executed (GHSA-4p5g-gh74-q524)
Repomix runs `git log` in the target directory to sort files by change frequency, and `git diff` / `git log` for `--include-diffs` / `--include-logs`. Git honors settings from the repository's own `.git/config` that name an executable, such as `gpg.program`, `diff.external`, textconv drivers, and `core.fsmonitor`. A directory shipped with a crafted `.git` (for example inside a zip archive) could therefore run arbitrary commands when Repomix was invoked inside it. A normal `git clone` does not carry the remote's `.git/config`, and `--remote` removes the clone's `.git` before processing, so those paths were not affected.
All git commands Repomix runs in a target directory now disable these settings. Output for a normal repository is unchanged.
See the security advisory for details. Thanks to @kinehoo77-debug for the report! 🙏
https://github.com/yamadashy/repomix/security/advisories/GHSA-4p5g-gh74-q524
## Bug Fixes 🐛
### Windows Crash on `.gitignore` with Backslash Escapes (#1765, #1775)
On Windows, packing failed with ``path should be a `path.relative()`d string`` when a `.gitignore` mixed a backslash-escaped rule with a negation rule. The bug was in globby and is fixed in globby 16.2.3, which this release picks up. Thanks to @iki for the report and for sticking with it! 🙏
### `--remove-comments` No Longer Corrupts Shell and YAML Files (#1752)
Shell and YAML files were stripped with the Perl profile, which treats every unquoted `#` as a comment. In these languages `#` only starts a comment at the beginning of a line or after whitespace, so constructs like `${name##*/}`, `$#`, and URL fragments were being cut. Shell and YAML now use a dedicated handler that respects this rule, heredocs, and block scalars. Thanks @serhiizghama!
### `--include-full-directory-structure` Keeps Non-Included Files (#1749)
When combined with `--include`, the Directory Structure section is meant to show the whole repository tree while packing only the included files' contents. Non-included files were being dropped from the tree. Thanks @serhiizghama!
### Split Output Shows Each Part's Own Directory Tree (#1815, #1822)
With `--split-output`, every part listed the directory tree of the entire output instead of the files in that part. Each part now renders only its own files. Thanks @Elioooon!
### Remote URLs Whose Repository Name Starts with a Dot (#1772)
`https://github.com/microsoft/.github` and similar org profile repositories were rejected as invalid. Thanks @serhiizghama!
### Data URI Parameters Preserved When Truncating Base64 (#1819, #1820)
Truncating long base64 payloads kept only the last `;param` before `;base64,`, dropping the others. Thanks @cyphercodes!
### Small CLI Fixes (#1808, #1809, #1810)
- `--split-output` sizes that round down to zero bytes (such as `0.5b`) are now rejected instead of looping forever.
- Output and skill paths are classified by real directory boundaries, so a sibling directory with a matching prefix is no longer treated as inside the base.
- Remote skill names are derived from the owner and repository of GitHub URLs.
Thanks @Whxuan0701!
## How to Update
```bash
npm update -g repomix
```
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one