pypi / ripgrep
ripgrep
What changed in ripgrep 15, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-25.
2 breaking3 new APIs and options1 performance7 behavior and defaults2 tooling16 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initripgrep 1531 changes
Breaking changes 2
Release artifacts are no longer generated for powerpc64 because the CI release workflow stopped working.
When the file passed to -f is empty, rg -vf now matches everything.
New APIs and options 3
Adds a hyperlink alias for Cursor.
Adds the highlight color type for styling non-matching text in a matching line.
Adds italic to the available style attributes for --color.
Performance 1
Directory traversal is faster on very large corpora.
Behavior and default changes 7
When this option is used, ripgrep no longer checks for the existence of
.jj.The default set of file types available for filtering has been enhanced.
With multithreading, files are now scheduled for search in the order given on the command line.
Fish shell completions now take ripgrep's config file into account.
Globs now support nested curly-brace alternates.
Directories containing .jj are treated as git repositories, so ripgrep respects Jujutsu gitignores.
PCRE2 is statically compiled into macOS release artifacts on aarch64.
Tooling 2
Completions for --hyperlink-format are improved in bash, fish, and zsh.
Release artifacts are now available for aarch64 on Windows.
Fixes and other changes 16
Release binaries are now included for this platform.
ripgrep now respects this Git configuration environment variable.
ripgrep now respects this Git configuration environment variable.
Fixes a matching bug when searching across multiple directories.
Fixes a regression in line buffering that could delay output or cause problems with tail -f.
Fixes the inverted exit code when -q is used with --files-without-match.
A UTF-8 BOM marker at the start of .gitignore and similar files is now ignored.
Fixes a memory usage regression when handling very large gitignore files.
Fixes several gitignore matching bugs, including rules from parent directories, ancestor filters for whitelisted hidden files, and global gitignores when searching absolute paths.
Fixes mishandling of globs that end with a period.
Fixes incorrect summary statistics when using --json.
Fixes a rare panic for some classes of large regexes on large haystacks.
Fixes showing too many matches when --max-count is used with --multiline.
Fixes a panic when --multiline and --replace are used together.
The replacement flag now works with --json and preserves line terminators.
Fixes incorrect bytes-searched output in --stats.