{"slug": "ripgrep", "name": "ripgrep", "category": "terminal", "category_name": "Terminal and shell", "description": "Fast recursive command-line search tool (rg) that respects .gitignore, written in Rust.", "recommenders": 15, "commenters": 26, "warners": 0, "score": 16.394, "rising": 3.05, "first": "2025-11-16", "latest": "2026-10-12", "why": "Commenters like it for very fast plain-text search across large codebases and note collections, and as a building block for scripts and AI agent tooling.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 15, "neutral": 9, "compare": 2, "warn": 0}, "spark": [1, 1, 1, 0, 2, 1, 1, 0, 2, 1, 4, 1], "listed": true, "loved": ["Speed", "Agent tooling"], "caveat": "Not preinstalled", "short_quote": "after switching to rg everything was plain sailing and I've been happy with it since.", "icon": true, "domain": null, "github_repo": "github.com/burntsushi/ripgrep", "official_url": "https://github.com/BurntSushi/ripgrep", "pricing": "open source", "aliases": ["ripgrep"], "verdict": [{"text": "Commenters like it for very fast plain-text search across large codebases and note collections", "cites": [{"id": 800913776, "item_id": 50057111, "url": "https://news.ycombinator.com/item?id=50057111", "by": "ltbarcly3", "date": "2026-10-12", "stance": "recommend", "quote": "Here I use ripgrep to search every piece of code I have checked out, around 11GB of data (more or less) in 0.2s", "excerpt": "In general, in my experience, grep is better than almost anything else you can use. It's very very fast and efficient, very flexible, and does not require any indexing pass, is never out of date, and doesn't require you to guess ahead of time what files you might want to search or how to process search tokens. \"Search your files, repos and agent sessions, locally, and give your agents the best context for the job. On", "context": "", "use_case": "searching code", "switched_from": "", "story": "Local Indexing to reduce tool calling and token usage"}, {"id": 789093936, "item_id": 49318371, "url": "https://news.ycombinator.com/item?id=49318371", "by": "cben", "date": "2026-08-16", "stance": "recommend", "quote": "what I really like is how fast it is", "excerpt": "That's just one half of it: Intelligent defaults + configurability of what files/dirs to skip. That part has been iterated on in prior tools like `ack` and `ag` and `git grep` for like a decade, and ripgrep was informed by that tradition. The other part is extreme optimizations, from I/O and OS aspects to CPU, both asymptotic complexity (from scratch NFA regex engine), concrete complexity (rust, SIMD) and ad-hoc opit", "context": "", "use_case": "fast code search", "switched_from": "", "story": "\"Code was never the hard part\" is an insult to all programmers"}, {"id": 796074241, "item_id": 49754640, "url": "https://news.ycombinator.com/item?id=49754640", "by": "smilliken", "date": "2026-09-18", "stance": "recommend", "quote": "plenty fast even with years of history and ripgrep, and comes in handy often", "excerpt": "I've been using histre.com for years, which builds a personal search engine for the pages you visit by adding a browser extension. It's freed me from the habit of compulsively bookmarking everything in case I might need it again. I also keep a local text index for grepping which is plenty fast even with years of history and ripgrep, and comes in handy often.", "context": "", "use_case": "grepping local text index", "switched_from": "", "story": "Hister: A private search engine for the pages you visit and the files you keep"}]}, {"text": ", and as a building block for scripts and AI agent tooling.", "cites": [{"id": 735180960, "item_id": 45948810, "url": "https://news.ycombinator.com/item?id=45948810", "by": "zby", "date": "2025-11-16", "stance": "recommend", "quote": "ripgrep is already showing how much more usable it is this way.", "excerpt": "LLMs were trained on the how we use text interfaces. You don't need to adopt command line for an LLM to use. You don't really need RAG - just connect the LLM to the shell tools we are using for search. And ultimately it would be much more useful if the language servers had good cli commands and LLMs were using them instead of going via MCP or some other internal path - ripgrep is already showing how much more usable ", "context": "", "use_case": "search tool for LLMs", "switched_from": "", "story": "What if you don't need MCP at all?"}, {"id": 749665440, "item_id": 46854090, "url": "https://news.ycombinator.com/item?id=46854090", "by": "dgoldstein0", "date": "2026-02-02", "stance": "neutral", "quote": "a metrics script which primarily uses ripgrep to search for matches of configured regexes", "excerpt": "I built something like this that we use both for migrations and disallowing new instances of bad patterns for my mid sized tech company and maintain it. Ours is basically a configuration layer, a metrics script which primarily uses ripgrep to search for matches of configured regexes, a linter that uses the same configuration and shows any configured lint messages on the matches, a CI job that asserts that the matches", "context": "built internal tool at mid-sized tech company", "use_case": "searching code for patterns", "switched_from": "", "story": "Ratchets in Software Development"}, {"id": 747780114, "item_id": 46736257, "url": "https://news.ycombinator.com/item?id=46736257", "by": "juanpabloaj", "date": "2026-01-23", "stance": "neutral", "quote": "They use command-line tools (find, ripgrep) to analyze your vault", "excerpt": "Inbox Processing Workflow - GTD-style system to keep your inbox at zero, with AI classification of notes to projects, resources, or someday/maybe lists. Incomplete Tasks Review Workflow - weekly review that analyzes your tasks, identifies gaps, detects duplicates, and generates a focused \"plan of attack\" with your highest-priority actions. Both workflows combine classic productivity principles (GTD, weekly reviews) w", "context": "", "use_case": "analyzing note vault", "switched_from": "", "story": "Show HN: Obsidian Workflows with Gemini: Inbox Processing and Task Review"}]}, {"text": " Complaints are rare; one commenter went back to plain grep because rg is often missing on servers they SSH into.", "cites": [{"id": 760078000, "item_id": 47504875, "url": "https://news.ycombinator.com/item?id=47504875", "by": "ventana", "date": "2026-03-24", "stance": "neutral", "quote": "I tried switching to the latest and greatest replacements, such as ack or ripgrep for grep, or httpie for curl, just to always return to the default options.", "excerpt": "One thing I learned over the years is that the closer my setup is to the default one, the better. I tried switching to the latest and greatest replacements, such as ack or ripgrep for grep, or httpie for curl, just to always return to the default options. Often, the return was caused by a frustration of not having the new tools installed on the random server I sshed to. It's probably just me being unable to persevere", "context": "", "use_case": "code search", "switched_from": "", "story": "Ripgrep is faster than {grep, ag, Git grep, ucg, pt, sift}"}]}], "praise": [{"label": "Speed", "summary": "Commenters single out how fast it searches, even across many gigabytes of code.", "quotes": [{"id": 800913776, "item_id": 50057111, "url": "https://news.ycombinator.com/item?id=50057111", "by": "ltbarcly3", "date": "2026-10-12", "stance": "recommend", "quote": "Here I use ripgrep to search every piece of code I have checked out, around 11GB of data (more or less) in 0.2s", "excerpt": "In general, in my experience, grep is better than almost anything else you can use. It's very very fast and efficient, very flexible, and does not require any indexing pass, is never out of date, and doesn't require you to guess ahead of time what files you might want to search or how to process search tokens. \"Search your files, repos and agent sessions, locally, and give your agents the best context for the job. On", "context": "", "use_case": "searching code", "switched_from": "", "story": "Local Indexing to reduce tool calling and token usage"}, {"id": 789093936, "item_id": 49318371, "url": "https://news.ycombinator.com/item?id=49318371", "by": "cben", "date": "2026-08-16", "stance": "recommend", "quote": "what I really like is how fast it is", "excerpt": "That's just one half of it: Intelligent defaults + configurability of what files/dirs to skip. That part has been iterated on in prior tools like `ack` and `ag` and `git grep` for like a decade, and ripgrep was informed by that tradition. The other part is extreme optimizations, from I/O and OS aspects to CPU, both asymptotic complexity (from scratch NFA regex engine), concrete complexity (rust, SIMD) and ad-hoc opit", "context": "", "use_case": "fast code search", "switched_from": "", "story": "\"Code was never the hard part\" is an insult to all programmers"}, {"id": 769797729, "item_id": 48112358, "url": "https://news.ycombinator.com/item?id=48112358", "by": "giancarlostoro", "date": "2026-05-12", "stance": "recommend", "quote": "stop using grep, RIPGREP IS FASTER!", "excerpt": "Interesting, I built a ticketing system similar to Beads which has yielded more predictable results with Claude and other models, and I'm currently building a custom harness, I'm able to use offline models though my GPU ram bandwidth is much lower, but I'm also planning on doing something similar to what you've built, namely the editing tools and what not, I hate how long it takes for Claude to look for files, it fee", "context": "", "use_case": "file searching", "switched_from": "grep", "story": "Show HN: Statewright \u2013 Visual state machines that make AI agents reliable"}]}, {"label": "Agent tooling", "summary": "Used as the text-search layer that LLM agents and AI harnesses call directly.", "quotes": [{"id": 735180960, "item_id": 45948810, "url": "https://news.ycombinator.com/item?id=45948810", "by": "zby", "date": "2025-11-16", "stance": "recommend", "quote": "ripgrep is already showing how much more usable it is this way.", "excerpt": "LLMs were trained on the how we use text interfaces. You don't need to adopt command line for an LLM to use. You don't really need RAG - just connect the LLM to the shell tools we are using for search. And ultimately it would be much more useful if the language servers had good cli commands and LLMs were using them instead of going via MCP or some other internal path - ripgrep is already showing how much more usable ", "context": "", "use_case": "search tool for LLMs", "switched_from": "", "story": "What if you don't need MCP at all?"}, {"id": 772693729, "item_id": 48293358, "url": "https://news.ycombinator.com/item?id=48293358", "by": "danielcasper", "date": "2026-05-27", "stance": "neutral", "quote": "FTS5 + BM25 + Ripgrep for text search", "excerpt": "Hello HN! Decades long lurker, first time posting and here to hock my OSS project - https://github.com/mrdanielcasper/coretex. I\u2019ve spent the last ~30 days and 364 commits getting to the pre-alpha of CoreTex, an open source, Unix-inspired, biomimetic, text-only, portable, local, AI harness and knowledge engine. Breaking that down, my guiding principles and purpose were: Purpose: I built CoreTex out of my personal nee", "context": "author of CoreTex", "use_case": "text search", "switched_from": "", "story": "Show HN: CoreTex \u2013 An Open-Source, Unix-like, biomimetic, flat-file AI Harness"}, {"id": 747780114, "item_id": 46736257, "url": "https://news.ycombinator.com/item?id=46736257", "by": "juanpabloaj", "date": "2026-01-23", "stance": "neutral", "quote": "They use command-line tools (find, ripgrep) to analyze your vault", "excerpt": "Inbox Processing Workflow - GTD-style system to keep your inbox at zero, with AI classification of notes to projects, resources, or someday/maybe lists. Incomplete Tasks Review Workflow - weekly review that analyzes your tasks, identifies gaps, detects duplicates, and generates a focused \"plan of attack\" with your highest-priority actions. Both workflows combine classic productivity principles (GTD, weekly reviews) w", "context": "", "use_case": "analyzing note vault", "switched_from": "", "story": "Show HN: Obsidian Workflows with Gemini: Inbox Processing and Task Review"}]}, {"label": "Core CLI kit", "summary": "Listed among the modern command-line tools people install alongside fd, fzf and fish.", "quotes": [{"id": 795807010, "item_id": 49737938, "url": "https://news.ycombinator.com/item?id=49737938", "by": "hiAndrewQuinn", "date": "2026-09-17", "stance": "recommend", "quote": "ripgrep, fdfind", "excerpt": "A lot of these tricks come down to knowing there is a better alternative program somewhere out there in the universe, and then installing it. I happen to keep a shell script handy for these situations, which automatically installs most of the options listed here: https://github.com/hiAndrewQuinn/shell-bling-ubuntu More readable presentation: https://hiandrewquinn.github.io/shell-bling-ubuntu/ Among other things, fzf ", "context": "", "use_case": "code search", "switched_from": "", "story": "Small programming tricks"}, {"id": 762176276, "item_id": 47636017, "url": "https://news.ycombinator.com/item?id=47636017", "by": "Curiositry", "date": "2026-04-03", "stance": "recommend", "quote": "Fish, zoxide, tmux, helix, ripgrep, fd-find, htop. There are many more, but these are the ones that I enjoy using.", "excerpt": "Fish, zoxide, tmux, helix, ripgrep, fd-find, htop. There are many more, but these are the ones that I enjoy using. (Other than tmux.)", "context": "", "use_case": "searching files", "switched_from": "", "story": "Ask HN: Which CLI tools do you use daily?"}, {"id": 740140965, "item_id": 46258810, "url": "https://news.ycombinator.com/item?id=46258810", "by": "pxc", "date": "2025-12-13", "stance": "recommend", "quote": "like `rg` instead of GNU grep or `fd` instead of GNU findutils", "excerpt": "> If a script is simple - I use posix sh + awk, sed, etc. > But if a script I write needs to use arrays, sets, hashtable or processes many files One option that I sometimes use at work (in addition to writing some Python CLIs) that is a pretty nice next step on this spectrum is Bash-with-all-the-fixins'. I use a Nix-based dependency resolver for shell scripts called resholve\u00b9 to parse scripts so that it can identify ", "context": "", "use_case": "searching in scripts", "switched_from": "", "story": "Using Python for Scripting"}]}, {"label": "Notes search", "summary": "Used to grep personal text indexes, snippets and note vaults.", "quotes": [{"id": 796074241, "item_id": 49754640, "url": "https://news.ycombinator.com/item?id=49754640", "by": "smilliken", "date": "2026-09-18", "stance": "recommend", "quote": "plenty fast even with years of history and ripgrep, and comes in handy often", "excerpt": "I've been using histre.com for years, which builds a personal search engine for the pages you visit by adding a browser extension. It's freed me from the habit of compulsively bookmarking everything in case I might need it again. I also keep a local text index for grepping which is plenty fast even with years of history and ripgrep, and comes in handy often.", "context": "", "use_case": "grepping local text index", "switched_from": "", "story": "Hister: A private search engine for the pages you visit and the files you keep"}, {"id": 744628499, "item_id": 46539281, "url": "https://news.ycombinator.com/item?id=46539281", "by": "forgotpwd16", "date": "2026-01-08", "stance": "recommend", "quote": "then fd/rg to find what you're looking for", "excerpt": "If can still edit, may want to add \"Show HN:\" at title's start. >prompt memory tool We used to call this a snippet manager. For Firefox will recommend Clippings. Simple design, folders/search. But if you're on Linux (or even Windows), just make snippets/ directory and drop 'em in there, then fd/rg to find what you're looking for. (Or use a comprehensive tool like @mattn/memo.) But your tool nice too. Is like more org", "context": "", "use_case": "searching snippets", "switched_from": "", "story": "I kept losing good AI prompts, so I built a prompt memory tool"}, {"id": 784522246, "item_id": 49032640, "url": "https://news.ycombinator.com/item?id=49032640", "by": "treetalker", "date": "2026-07-24", "stance": "neutral", "quote": "easily searchable later (nvALT/Obsidian, ripgrep, etc.)", "excerpt": "I\u2019m a dictaphone fan. Even better than the kind shown in the article are the ones with sliding switches. I have an Olympus model. Mine has both internal memory and SD card capability. And similar to what the author aspires to, I record bits and bobs throughout the day and then use the SD card to transfer them to my Mac. From there, they automatically get added to a MacWhisper watch folder and then automatically trans", "context": "", "use_case": "searching archived notes", "switched_from": "", "story": "Calm technologies that excite me"}]}, {"label": "Smart defaults", "summary": "Sensible defaults and file filtering cut noise from searches.", "quotes": [{"id": 789093936, "item_id": 49318371, "url": "https://news.ycombinator.com/item?id=49318371", "by": "cben", "date": "2026-08-16", "stance": "recommend", "quote": "what I really like is how fast it is", "excerpt": "That's just one half of it: Intelligent defaults + configurability of what files/dirs to skip. That part has been iterated on in prior tools like `ack` and `ag` and `git grep` for like a decade, and ripgrep was informed by that tradition. The other part is extreme optimizations, from I/O and OS aspects to CPU, both asymptotic complexity (from scratch NFA regex engine), concrete complexity (rust, SIMD) and ad-hoc opit", "context": "", "use_case": "fast code search", "switched_from": "", "story": "\"Code was never the hard part\" is an insult to all programmers"}, {"id": 795674849, "item_id": 49729678, "url": "https://news.ycombinator.com/item?id=49729678", "by": "ahmedhossamdev", "date": "2026-09-16", "stance": "recommend", "quote": "Two I use daily: rg --hidden -g '!*.lock' to skip noise", "excerpt": "+1 for git log -S. Two I use daily: rg --hidden -g '!*.lock' to skip noise, and python3 -m json.tool to pretty-print API responses.", "context": "", "use_case": "code search", "switched_from": "", "story": "Small programming tricks"}]}, {"label": "Documentation", "summary": "The author's writing and documentation on how ripgrep works are praised.", "quotes": [{"id": 760025248, "item_id": 47501578, "url": "https://news.ycombinator.com/item?id=47501578", "by": "drob518", "date": "2026-03-24", "stance": "recommend", "quote": "it doesn\u2019t just describe how ripgrep works but also how all the other tools work", "excerpt": "I\u2019ve read this multiple times over the years and this post is still the most interesting and informative piece describing the problem of making a fast grep-like tool. I love that it doesn\u2019t just describe how ripgrep works but also how all the other tools work and then compares the various techniques. It\u2019s simultaneously a tutorial and an expert deep dive. Just a beautiful piece of writing. In a perfect world, all cod", "context": "", "use_case": "fast code search", "switched_from": "", "story": "Ripgrep is faster than {grep, ag, Git grep, ucg, pt, sift}"}, {"id": 794576882, "item_id": 49661055, "url": "https://news.ycombinator.com/item?id=49661055", "by": "Rendello", "date": "2026-09-11", "stance": "recommend", "quote": "High level: ripgrep [3].", "excerpt": "I like burntsushi's string-searching work because it's well documented, split modularly into libraries/applications, and runs the gamut from low- to high-level (his blog posts and comments online are extremely helpful too). I use these three tools which he maintains: Low level: memchr [1]; Medium level: Regex (Rust crate) [2]; High level: ripgrep [3]. Other names to look out for are the previously aforementioned Wojc", "context": "", "use_case": "code searching", "switched_from": "", "story": "Bitap: My favorite string matching algorithm"}]}], "caveats": [{"label": "Not preinstalled", "summary": "One commenter returned to grep because rg is often missing on remote servers.", "quotes": [{"id": 760078000, "item_id": 47504875, "url": "https://news.ycombinator.com/item?id=47504875", "by": "ventana", "date": "2026-03-24", "stance": "neutral", "quote": "I tried switching to the latest and greatest replacements, such as ack or ripgrep for grep, or httpie for curl, just to always return to the default options.", "excerpt": "One thing I learned over the years is that the closer my setup is to the default one, the better. I tried switching to the latest and greatest replacements, such as ack or ripgrep for grep, or httpie for curl, just to always return to the default options. Often, the return was caused by a frustration of not having the new tools installed on the random server I sshed to. It's probably just me being unable to persevere", "context": "", "use_case": "code search", "switched_from": "", "story": "Ripgrep is faster than {grep, ag, Git grep, ucg, pt, sift}"}]}, {"label": "Reimplements grep", "summary": "One commenter objected that it reimplements grep logic rather than wrapping system grep.", "quotes": [{"id": 784888865, "item_id": 49055554, "url": "https://news.ycombinator.com/item?id=49055554", "by": "m-manu", "date": "2026-07-26", "stance": "compare", "quote": "source-code-aware search tools like ripgrep (rg), ack etc. - But these tools reimplement grep logic!", "excerpt": "grep is great. It comes pre-installed on your OS. In fact, a search using grep is faster than the search on your IDE when there is no code index! But, one key pain when using grep for searching in your source code or configuration files? A `grep -r` command scans all files (including binary files ) and not just source code files, making it slow. Sometimes, terribly slow. Yes, I'm aware of source-code-aware search too", "context": "", "use_case": "source code search", "switched_from": "", "story": "Source Code Grep: Use your own grep, but make it source code aware"}]}, {"label": "Speed rarely matters", "summary": "One commenter only reaches for rg over grep on very large files.", "quotes": [{"id": 760648512, "item_id": 47540532, "url": "https://news.ycombinator.com/item?id=47540532", "by": "1a527dd5", "date": "2026-03-27", "stance": "neutral", "quote": "I use grep a lot in an ad hoc manner on really large files I switch to rg.", "excerpt": "I appreciate performance as much as the next person; but I see this endless battle to measure things in ns/us/ms as performative. Sure there are 0.000001% edge cases where that MIGHT be the next big bottleneck. I see the same thing repeated in various front end tooling too. They all claim to be _much_ faster than their counterpart. 9/10 whatever tooling you are using now will be perfectly fine. Example; I use grep a ", "context": "", "use_case": "searching large files", "switched_from": "", "story": "A Faster Alternative to Jq"}]}], "who": [{"by": "vinhnx", "context": "author of VT Code", "url": "https://news.ycombinator.com/item?id=48332763", "date": "2026-05-29"}, {"by": "danielcasper", "context": "author of CoreTex", "url": "https://news.ycombinator.com/item?id=48293358", "date": "2026-05-27"}, {"by": "dgoldstein0", "context": "built internal tool at mid-sized tech company", "url": "https://news.ycombinator.com/item?id=46854090", "date": "2026-02-02"}], "tags": ["for code search", "for AI agent tooling", "for searching notes", "for Emacs and Vim users", "for scripts and CI checks"], "use_cases": ["code search", "fast code search", "searching code", "grepping local text index", "code searching", "source code search"], "compared": [{"slug": "grep", "name": "grep", "co": 7, "switched_from": 1, "switched_to": 1}, {"slug": "fd", "name": "fd", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "ag", "name": "ag", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "ack", "name": "ack", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "fzf", "name": "fzf", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "jq", "name": "jq", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "obsidian", "name": "Obsidian", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=47499245", "title": "Ripgrep is faster than {grep, ag, Git grep, ucg, pt, sift}", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=49729000", "title": "Small programming tricks", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50049508", "title": "Local Indexing to reduce tool calling and token usage", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49743097", "title": "Hister: A private search engine for the pages you visit and the files you keep", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49609195", "title": "Bitap: My favorite string matching algorithm", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49222189", "title": "\"Code was never the hard part\" is an insult to all programmers", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {"recommend": 1}, "2026-01": {"recommend": 1, "neutral": 1}, "2026-02": {"neutral": 1}, "2026-03": {"recommend": 2, "neutral": 2}, "2026-04": {"compare": 1, "recommend": 1, "neutral": 2}, "2026-05": {"recommend": 1, "neutral": 2}, "2026-06": {}, "2026-07": {"recommend": 2, "neutral": 1, "compare": 1}, "2026-08": {"recommend": 1}, "2026-09": {"recommend": 4}, "2026-10": {"recommend": 1}}, "quotes": [{"id": 800913776, "item_id": 50057111, "url": "https://news.ycombinator.com/item?id=50057111", "by": "ltbarcly3", "date": "2026-10-12", "stance": "recommend", "quote": "Here I use ripgrep to search every piece of code I have checked out, around 11GB of data (more or less) in 0.2s", "excerpt": "In general, in my experience, grep is better than almost anything else you can use. It's very very fast and efficient, very flexible, and does not require any indexing pass, is never out of date, and doesn't require you to guess ahead of time what files you might want to search or how to process search tokens. \"Search your files, repos and agent sessions, locally, and give your agents the best context for the job. On", "context": "", "use_case": "searching code", "switched_from": "", "story": "Local Indexing to reduce tool calling and token usage"}, {"id": 796074241, "item_id": 49754640, "url": "https://news.ycombinator.com/item?id=49754640", "by": "smilliken", "date": "2026-09-18", "stance": "recommend", "quote": "plenty fast even with years of history and ripgrep, and comes in handy often", "excerpt": "I've been using histre.com for years, which builds a personal search engine for the pages you visit by adding a browser extension. It's freed me from the habit of compulsively bookmarking everything in case I might need it again. I also keep a local text index for grepping which is plenty fast even with years of history and ripgrep, and comes in handy often.", "context": "", "use_case": "grepping local text index", "switched_from": "", "story": "Hister: A private search engine for the pages you visit and the files you keep"}, {"id": 795807010, "item_id": 49737938, "url": "https://news.ycombinator.com/item?id=49737938", "by": "hiAndrewQuinn", "date": "2026-09-17", "stance": "recommend", "quote": "ripgrep, fdfind", "excerpt": "A lot of these tricks come down to knowing there is a better alternative program somewhere out there in the universe, and then installing it. I happen to keep a shell script handy for these situations, which automatically installs most of the options listed here: https://github.com/hiAndrewQuinn/shell-bling-ubuntu More readable presentation: https://hiandrewquinn.github.io/shell-bling-ubuntu/ Among other things, fzf ", "context": "", "use_case": "code search", "switched_from": "", "story": "Small programming tricks"}, {"id": 795674849, "item_id": 49729678, "url": "https://news.ycombinator.com/item?id=49729678", "by": "ahmedhossamdev", "date": "2026-09-16", "stance": "recommend", "quote": "Two I use daily: rg --hidden -g '!*.lock' to skip noise", "excerpt": "+1 for git log -S. Two I use daily: rg --hidden -g '!*.lock' to skip noise, and python3 -m json.tool to pretty-print API responses.", "context": "", "use_case": "code search", "switched_from": "", "story": "Small programming tricks"}, {"id": 794576882, "item_id": 49661055, "url": "https://news.ycombinator.com/item?id=49661055", "by": "Rendello", "date": "2026-09-11", "stance": "recommend", "quote": "High level: ripgrep [3].", "excerpt": "I like burntsushi's string-searching work because it's well documented, split modularly into libraries/applications, and runs the gamut from low- to high-level (his blog posts and comments online are extremely helpful too). I use these three tools which he maintains: Low level: memchr [1]; Medium level: Regex (Rust crate) [2]; High level: ripgrep [3]. Other names to look out for are the previously aforementioned Wojc", "context": "", "use_case": "code searching", "switched_from": "", "story": "Bitap: My favorite string matching algorithm"}, {"id": 789093936, "item_id": 49318371, "url": "https://news.ycombinator.com/item?id=49318371", "by": "cben", "date": "2026-08-16", "stance": "recommend", "quote": "what I really like is how fast it is", "excerpt": "That's just one half of it: Intelligent defaults + configurability of what files/dirs to skip. That part has been iterated on in prior tools like `ack` and `ag` and `git grep` for like a decade, and ripgrep was informed by that tradition. The other part is extreme optimizations, from I/O and OS aspects to CPU, both asymptotic complexity (from scratch NFA regex engine), concrete complexity (rust, SIMD) and ad-hoc opit", "context": "", "use_case": "fast code search", "switched_from": "", "story": "\"Code was never the hard part\" is an insult to all programmers"}, {"id": 784888865, "item_id": 49055554, "url": "https://news.ycombinator.com/item?id=49055554", "by": "m-manu", "date": "2026-07-26", "stance": "compare", "quote": "source-code-aware search tools like ripgrep (rg), ack etc. - But these tools reimplement grep logic!", "excerpt": "grep is great. It comes pre-installed on your OS. In fact, a search using grep is faster than the search on your IDE when there is no code index! But, one key pain when using grep for searching in your source code or configuration files? A `grep -r` command scans all files (including binary files ) and not just source code files, making it slow. Sometimes, terribly slow. Yes, I'm aware of source-code-aware search too", "context": "", "use_case": "source code search", "switched_from": "", "story": "Source Code Grep: Use your own grep, but make it source code aware"}, {"id": 784536914, "item_id": 49033557, "url": "https://news.ycombinator.com/item?id=49033557", "by": "thejosh", "date": "2026-07-24", "stance": "recommend", "quote": "use ripgrep (Can't beat good ol' plain text search)", "excerpt": "I would love to use something that isn't GitHub for code hosting. Codeberg sounds great, but from using it day-to-day, it's really slow sometimes, and frequently times out (from Perth, AU, if it matters). This is not just the SSH protocol for git pushes, but also for browsing. (I do have a self-hosted forgejo (came from gitea), it's great, Postgres database backs up, files are easy to backup, it's also git so I can j", "context": "", "use_case": "code search", "switched_from": "", "story": "I Regret Migrating to Codeberg"}, {"id": 784522246, "item_id": 49032640, "url": "https://news.ycombinator.com/item?id=49032640", "by": "treetalker", "date": "2026-07-24", "stance": "neutral", "quote": "easily searchable later (nvALT/Obsidian, ripgrep, etc.)", "excerpt": "I\u2019m a dictaphone fan. Even better than the kind shown in the article are the ones with sliding switches. I have an Olympus model. Mine has both internal memory and SD card capability. And similar to what the author aspires to, I record bits and bobs throughout the day and then use the SD card to transfer them to my Mac. From there, they automatically get added to a MacWhisper watch folder and then automatically trans", "context": "", "use_case": "searching archived notes", "switched_from": "", "story": "Calm technologies that excite me"}, {"id": 780782289, "item_id": 48798893, "url": "https://news.ycombinator.com/item?id=48798893", "by": "skydhash", "date": "2026-07-05", "stance": "recommend", "quote": "With no Emacs, I use `ripgrep` (sometimes with fd for the file candidates) and `less`.", "excerpt": "I use Emacs and ripgrep with the deadgrep plugin[0]. Emacs does have the `rgrep` command but the plugin presents a nicer interface. With no Emacs, I use `ripgrep` (sometimes with fd for the file candidates) and `less`. I only bother with LSP for projects I'm currently working on. Even then, I sometimes use `project-find-regexp` for whole codebase search. In Vim, I had the fzf plugin[1] with the command `:RG` bound to", "context": "", "use_case": "code search", "switched_from": "", "story": "Ask HN: Good fast IDE for reading and navigating code in multiple languages"}, {"id": 773324211, "item_id": 48332763, "url": "https://news.ycombinator.com/item?id=48332763", "by": "vinhnx", "date": "2026-05-29", "stance": "neutral", "quote": "ripgrep + tree-sitter implementation", "excerpt": "Thank you for checking out VT Code! \u201cLLM-native code understanding\u201d refers to VT Code's approach of using LLM as the primary mechanism for semantic code analysis rather than relying solely on traditional static analysis tools. I have tried using ast-grep for structured code parsing understanding as a ground truth before/after the agent executes a code analysis or does a code edit/write operation and code context unde", "context": "author of VT Code", "use_case": "code search", "switched_from": "", "story": "Show HN: VT Code \u2013 open-source terminal coding agent in Rust"}, {"id": 772693729, "item_id": 48293358, "url": "https://news.ycombinator.com/item?id=48293358", "by": "danielcasper", "date": "2026-05-27", "stance": "neutral", "quote": "FTS5 + BM25 + Ripgrep for text search", "excerpt": "Hello HN! Decades long lurker, first time posting and here to hock my OSS project - https://github.com/mrdanielcasper/coretex. I\u2019ve spent the last ~30 days and 364 commits getting to the pre-alpha of CoreTex, an open source, Unix-inspired, biomimetic, text-only, portable, local, AI harness and knowledge engine. Breaking that down, my guiding principles and purpose were: Purpose: I built CoreTex out of my personal nee", "context": "author of CoreTex", "use_case": "text search", "switched_from": "", "story": "Show HN: CoreTex \u2013 An Open-Source, Unix-like, biomimetic, flat-file AI Harness"}, {"id": 769797729, "item_id": 48112358, "url": "https://news.ycombinator.com/item?id=48112358", "by": "giancarlostoro", "date": "2026-05-12", "stance": "recommend", "quote": "stop using grep, RIPGREP IS FASTER!", "excerpt": "Interesting, I built a ticketing system similar to Beads which has yielded more predictable results with Claude and other models, and I'm currently building a custom harness, I'm able to use offline models though my GPU ram bandwidth is much lower, but I'm also planning on doing something similar to what you've built, namely the editing tools and what not, I hate how long it takes for Claude to look for files, it fee", "context": "", "use_case": "file searching", "switched_from": "grep", "story": "Show HN: Statewright \u2013 Visual state machines that make AI agents reliable"}, {"id": 763908450, "item_id": 47744278, "url": "https://news.ycombinator.com/item?id=47744278", "by": "boyter", "date": "2026-04-12", "stance": "neutral", "quote": "there was a post about how ripgrep worked", "excerpt": "I reimagined https://searchcode.com/ since I realised LLMs have issues when it comes to understanding code you want to integrate. It\u2019s useful for looking though any codebase, or multiple without having to clone it. I use it when I have candidate libraries to solve a problem, or I just want to find out how things work. Most recently I pointed it at fzf and was able to pull the insensitive SIMD matching it uses and spe", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (April 2026)"}, {"id": 762692145, "item_id": 47668259, "url": "https://news.ycombinator.com/item?id=47668259", "by": "kator", "date": "2026-04-06", "stance": "neutral", "quote": "using jq, ripgrep, and the messages[2] flagged in the stop guard script", "excerpt": "I put together a quick audit to check for \"early landing\" messages[1] using jq, ripgrep, and the messages[2] flagged in the stop guard script. I have noticed a trend in these sessions asking more and more about calling it a day, \"it's getting late,\" and other phrases. I sort of assumed it was some kind of \"load shedding\" on Anthropic's side. My audit of 80 sessions was interesting. Sorry, I won't share details, but I", "context": "", "use_case": "auditing Claude Code sessions", "switched_from": "", "story": "Claude Code is unusable for complex engineering tasks with the Feb updates"}, {"id": 762176276, "item_id": 47636017, "url": "https://news.ycombinator.com/item?id=47636017", "by": "Curiositry", "date": "2026-04-03", "stance": "recommend", "quote": "Fish, zoxide, tmux, helix, ripgrep, fd-find, htop. There are many more, but these are the ones that I enjoy using.", "excerpt": "Fish, zoxide, tmux, helix, ripgrep, fd-find, htop. There are many more, but these are the ones that I enjoy using. (Other than tmux.)", "context": "", "use_case": "searching files", "switched_from": "", "story": "Ask HN: Which CLI tools do you use daily?"}, {"id": 761644337, "item_id": 47602771, "url": "https://news.ycombinator.com/item?id=47602771", "by": "fragmede", "date": "2026-04-01", "stance": "compare", "quote": "and then ag (silver surfer) and then rg (ripgrep).", "excerpt": "and then ag (silver surfer) and then rg (ripgrep).", "context": "", "use_case": "code search", "switched_from": "", "story": "Ask HN: What dev tools do you rely on that nobody talks about?"}, {"id": 760648512, "item_id": 47540532, "url": "https://news.ycombinator.com/item?id=47540532", "by": "1a527dd5", "date": "2026-03-27", "stance": "neutral", "quote": "I use grep a lot in an ad hoc manner on really large files I switch to rg.", "excerpt": "I appreciate performance as much as the next person; but I see this endless battle to measure things in ns/us/ms as performative. Sure there are 0.000001% edge cases where that MIGHT be the next big bottleneck. I see the same thing repeated in various front end tooling too. They all claim to be _much_ faster than their counterpart. 9/10 whatever tooling you are using now will be perfectly fine. Example; I use grep a ", "context": "", "use_case": "searching large files", "switched_from": "", "story": "A Faster Alternative to Jq"}, {"id": 760078000, "item_id": 47504875, "url": "https://news.ycombinator.com/item?id=47504875", "by": "ventana", "date": "2026-03-24", "stance": "neutral", "quote": "I tried switching to the latest and greatest replacements, such as ack or ripgrep for grep, or httpie for curl, just to always return to the default options.", "excerpt": "One thing I learned over the years is that the closer my setup is to the default one, the better. I tried switching to the latest and greatest replacements, such as ack or ripgrep for grep, or httpie for curl, just to always return to the default options. Often, the return was caused by a frustration of not having the new tools installed on the random server I sshed to. It's probably just me being unable to persevere", "context": "", "use_case": "code search", "switched_from": "", "story": "Ripgrep is faster than {grep, ag, Git grep, ucg, pt, sift}"}, {"id": 760034464, "item_id": 47502154, "url": "https://news.ycombinator.com/item?id=47502154", "by": "mijoharas", "date": "2026-03-24", "stance": "recommend", "quote": "after switching to rg everything was plain sailing and I've been happy with it since.", "excerpt": "I was just trying to remember why I switched _to_ rg. It's nice and everything, but I remember being happy with the tools before (I think i moved from grep to ack, then jumped due to perf to ag and for unremembered reasons to pt.) It took me a while, but I remembered I ran into an issue with pt incorrectly guessing the encoding of some files[0]. I can't remember whether rg suffered from the same issue or not, but I d", "context": "", "use_case": "code search", "switched_from": "pt", "story": "Ripgrep is faster than {grep, ag, Git grep, ucg, pt, sift}"}, {"id": 760025248, "item_id": 47501578, "url": "https://news.ycombinator.com/item?id=47501578", "by": "drob518", "date": "2026-03-24", "stance": "recommend", "quote": "it doesn\u2019t just describe how ripgrep works but also how all the other tools work", "excerpt": "I\u2019ve read this multiple times over the years and this post is still the most interesting and informative piece describing the problem of making a fast grep-like tool. I love that it doesn\u2019t just describe how ripgrep works but also how all the other tools work and then compares the various techniques. It\u2019s simultaneously a tutorial and an expert deep dive. Just a beautiful piece of writing. In a perfect world, all cod", "context": "", "use_case": "fast code search", "switched_from": "", "story": "Ripgrep is faster than {grep, ag, Git grep, ucg, pt, sift}"}, {"id": 749665440, "item_id": 46854090, "url": "https://news.ycombinator.com/item?id=46854090", "by": "dgoldstein0", "date": "2026-02-02", "stance": "neutral", "quote": "a metrics script which primarily uses ripgrep to search for matches of configured regexes", "excerpt": "I built something like this that we use both for migrations and disallowing new instances of bad patterns for my mid sized tech company and maintain it. Ours is basically a configuration layer, a metrics script which primarily uses ripgrep to search for matches of configured regexes, a linter that uses the same configuration and shows any configured lint messages on the matches, a CI job that asserts that the matches", "context": "built internal tool at mid-sized tech company", "use_case": "searching code for patterns", "switched_from": "", "story": "Ratchets in Software Development"}, {"id": 747780114, "item_id": 46736257, "url": "https://news.ycombinator.com/item?id=46736257", "by": "juanpabloaj", "date": "2026-01-23", "stance": "neutral", "quote": "They use command-line tools (find, ripgrep) to analyze your vault", "excerpt": "Inbox Processing Workflow - GTD-style system to keep your inbox at zero, with AI classification of notes to projects, resources, or someday/maybe lists. Incomplete Tasks Review Workflow - weekly review that analyzes your tasks, identifies gaps, detects duplicates, and generates a focused \"plan of attack\" with your highest-priority actions. Both workflows combine classic productivity principles (GTD, weekly reviews) w", "context": "", "use_case": "analyzing note vault", "switched_from": "", "story": "Show HN: Obsidian Workflows with Gemini: Inbox Processing and Task Review"}, {"id": 744628499, "item_id": 46539281, "url": "https://news.ycombinator.com/item?id=46539281", "by": "forgotpwd16", "date": "2026-01-08", "stance": "recommend", "quote": "then fd/rg to find what you're looking for", "excerpt": "If can still edit, may want to add \"Show HN:\" at title's start. >prompt memory tool We used to call this a snippet manager. For Firefox will recommend Clippings. Simple design, folders/search. But if you're on Linux (or even Windows), just make snippets/ directory and drop 'em in there, then fd/rg to find what you're looking for. (Or use a comprehensive tool like @mattn/memo.) But your tool nice too. Is like more org", "context": "", "use_case": "searching snippets", "switched_from": "", "story": "I kept losing good AI prompts, so I built a prompt memory tool"}, {"id": 740140965, "item_id": 46258810, "url": "https://news.ycombinator.com/item?id=46258810", "by": "pxc", "date": "2025-12-13", "stance": "recommend", "quote": "like `rg` instead of GNU grep or `fd` instead of GNU findutils", "excerpt": "> If a script is simple - I use posix sh + awk, sed, etc. > But if a script I write needs to use arrays, sets, hashtable or processes many files One option that I sometimes use at work (in addition to writing some Python CLIs) that is a pretty nice next step on this spectrum is Bash-with-all-the-fixins'. I use a Nix-based dependency resolver for shell scripts called resholve\u00b9 to parse scripts so that it can identify ", "context": "", "use_case": "searching in scripts", "switched_from": "", "story": "Using Python for Scripting"}, {"id": 735180960, "item_id": 45948810, "url": "https://news.ycombinator.com/item?id=45948810", "by": "zby", "date": "2025-11-16", "stance": "recommend", "quote": "ripgrep is already showing how much more usable it is this way.", "excerpt": "LLMs were trained on the how we use text interfaces. You don't need to adopt command line for an LLM to use. You don't really need RAG - just connect the LLM to the shell tools we are using for search. And ultimately it would be much more useful if the language servers had good cli commands and LLMs were using them instead of going via MCP or some other internal path - ripgrep is already showing how much more usable ", "context": "", "use_case": "search tool for LLMs", "switched_from": "", "story": "What if you don't need MCP at all?"}]}