HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Genivia
ugrep
C++2020–2026
Genivia / ugrep

ugrep

🔍 ugrep 7.8 file pattern searcher -- a user-friendly, faster, more capable grep replacement. Includes a TUI, Google-like Boolean search with AND/OR/NOT, fuzzy search, hexdumps, searches (nested) archives (zip, 7z, tar, pax, cpio), compressed files (gz, Z, bz2, lzma, xz, lz4, zstd, brotli), pdfs, docs, and more

15Distinct people
18Mentions
1Explicit recommenders
3.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

🔍 ugrep 7.8 file pattern searcher -- a user-friendly, faster, more capable grep replacement. Includes a TUI, Google-like Boolean search with AND/OR/NOT, fuzzy search, hexdumps, searches (nested) archives (zip, 7z, tar, pax, cpio), compressed files (gz, Z, bz2, lzma, xz, lz4, zstd, brotli), pdfs, docs, and more

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

When I need a faster grep, I love ugrep (https://github.com/Genivia/ugrep - especially when I am searching compressed logs for debugging).

infocollector used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year18 dated mentions

Observed mentions: 2020-08-09 01:40:15 UTC to 2026-06-09 15:57:51 UTC.

012342020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 3 mentions; 2 submissions, 1 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC422
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC211
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC321
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC211
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

What Hacker News says

18 sources
try ugrep https://github.com/Genivia/ugrep ... if you don't switch over in a day, I'll eat my shoe. It supports all the common grep options and you can split view in the -Q mode and it is smart enough to open your $editor at the line number it's talking about. Try it, this is the workflow I've been waiting for. Also lf. https://github.com/gokcehan/lf You've been wanting this for years as well. No really. Just scroll: https://github.com/gokcehan/lf/wiki/Integrations ... https://github.com/chmouel/zsh-select-with-lf these things will change your life. I promise.
In fd: A simple, fast and user-friendly alternative to 'find'
My current secrets: * cht.sh is a great way to avoid a lot of this stuff - there's a commandline tool as well * usable cli ai setup: simonw's llm (https://github.com/simonw/llm) + openrouter (https://github.com/simonw/llm-openrouter) + free models (https://openrouter.ai/models?max_price=0) + glow (https://github.com/charmbracelet/glow) + adding this to your .rc file: function lm { local input="$*" llm -s 'Answer as short and concise as possible' ${input} | glow } Here's an example, $ lm "ssh command to forward the port 5050 on user@remote to my localhost:7001" ssh -L 7001:localhost:5050 user@remote $ Now for a sophisticated use-case I have a small tmux program where I can capture what's on the pane, enter a prompt and it will query
Read the rest
an llm so I can say things like "How do I fix this error" or "what debian package do I need to get this to run right?" ... both these are recent patterns I've started and they've been real game changers Some lesser game-changers: * tmux extrakto - opens an "fzf" like search of all the text on the screen. So after a "git status", I can do git add (run extracto - enter partial path, press tab) and continue: https://github.com/laktak/extrakto * mcfly history: https://github.com/cantino/mcfly just watch the demo, you'll see * ugrep: grep with a powerful tui: https://github.com/Genivia/ugrep - I became an instant convert. * batcat: https://github.com/sharkdp/bat ... you really need to use some of its other features to leverage it. It's really nice.
In Some terminal frustrations
Disclosure: I am the author of ugrep. Here are my 2 cents. So what is going on with the new ugrep tool? https://github.com/Genivia/ugrep As a small organization specializing in open source software we needed a search tool like grep but updated to handle many compression formats including tarballs, with filters to search PDF, DOCX, and other formats. And narrowing down the file type of the archive contents to source code when necessary. Why? For example to look for differences that explain bugs, for finding potential vulnerabilities in older software that is archived, and to check for open source licenses/violations. OK. But what about performance? At the same time, I worked on designing a new fast pattern matching method that in simple wording uses logic/hashing to detect possible matches fast, before performing a regex match that is more
Read the rest
CPU expensive. This method is extensively tested with many configurations of parameters to find the optimal parameterization as tested on several machines. This was then compared to the best-known algorithms I could find and implemented in C (tested in memory, not on files and not reported in the ugrep project). I will gladly share this method publicly eventually in a technical paper. For a while I contemplated filing a utility patent, but did not move forward on that because I want this technology to be freely available to everyone and not proprietary. Of course, it would be nice to receive some recognition and not get ripped off. Most of the grep tools just use what is already available publicly and aren't doing something new that is clever, with the possible exception of hyperscan. Secondly, I am glad to see that ugrep is useful to many others. In my conversations with ugrep users, performance is not their top concern but having these new features that ugrep offers that other grep lack. As long as ugrep is very fast, they are more than happy. They also suggested that ugrep should be compatible with GNU grep's options and not try to be "too clever" to skip files and directories, at least not out-of-the-box. None of the ugrep perf tests skip files or directories and includes all hidden files/directories, binary files, and compressed files. Combining all these requirements and suggestions by users into ugrep wasn't trivial. But I believe we accomplished that goal reasonably well. Having said that, ugrep is relatively new and still evolving. There are a lot of opinionated folks when it comes to performance. Many in my domain of expertise realized already over a decade ago that it is a folly to pursue "the best performance" when the variety of architectures is vast and hardware and software are still evolving, even when slowly. There is no set of perfect benchmarks. There are always assumptions and requirements that affect the results wildly (I am a professor in CS and spent my entire career as a researcher, including in the area of high-performance computing.) I enjoy working now and then on deep and challenging coding projects, such as ugrep. It's a crazy fun project to work on when I have time. Cheers!
In Ugrep: Faster Fuzzy Interactive Grep

Showing the 15 most recent of 18 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.