Show HN: Greppers – fast CLI cheat sheet with instant copy and shareable search

61 shellsteady 21 9/6/2025, 7:18:28 PM greppers.com ↗
I kept re-Googling the same flags, so I built a tiny, fast directory of copy-ready CLI commands. It’s static (vanilla JS), instant search, keyboard nav (↑/↓ + Enter), favorites (localStorage), and linkable queries.

Examples:

• grep errors → https://www.greppers.com/?q=grep%20error%20logs

• list open ports (macOS) → https://www.greppers.com/?q=list%20open%20ports

• show git branch graph → https://www.greppers.com/?q=git%20graph

• tail with colors → https://www.greppers.com/?q=tail%20colors

Tech notes: static site on Netlify, no build system. Data is a JSON file; favorites persist via localStorage. Search is client-side; queries are linkable with ?q= and you can filter favorites with fav=1. Dangerous commands show a confirm before copying. Headers (HSTS, nosniff) + sitemap/robots are set.

Planned next: more commands/recipes (docker, systemctl, networking), offline PWA, and a simple import/export for favorites.

Suggest a missing command: https://www.greppers.com/submit.html

I’m looking for gaps and better real-world examples. Feedback welcome.

Comments (21)

ProofHouse · 18h ago
UX tip, reduce SIGNIFICANTLY or reposition the suggest a command box. At least on mobile the actual search results are way under it (which shouldn’t be), and it takes a ton of space for a rare use item
pluc · 16h ago
henrebotha · 18h ago
Please move the "Help grow the community!" banner below the search results. I thought all my searches were coming up blank. On mobile, that banner takes up an enormous amount of space.
shellsteady · 17h ago
Good call. I moved the “Help grow the community!” banner below the results and collapsed it on mobile so it doesn’t crowd search. Thanks for the heads-up—refresh and it should feel a lot cleaner.
wingmanjd · 18h ago
Neat resource!

On FF Linux, when I click on a copy command (e.g. `Grep errors in syslog`, the clipboard only contains "grep ", including those two spaces.

shellsteady · 18h ago
Thanks for the heads-up. I pushed a fix so the Copy button pulls from the data model (not DOM) and added a clipboard fallback for stricter browsers. Can you try a hard refresh and see if it still truncates?

If it still reproduces for them, we’ll grab their FF version and distro, but this should squash the “grep ” symptom.

coxmi · 18h ago
rsync needs some love on this.

The most memorable args for me are `-mrchivas`, because together they sound somewhat like a name (“Mister Chivas”)

(I drop the -a depending on whether archive is needed, Mr. Chivs sounds fun too)

shellsteady · 18h ago
Great comment, and it’s a nice on-ramp to add rsync properly.

Paste-ready reply for HN

Good call. I just added a handful of rsync recipes: • rsync -avh --progress SRC/ DEST/ (archive, human sizes, progress) • rsync -azP -e ssh SRC/ user@host:/path/ (SSH, compress, resume) • rsync -avh --delete SRC/ DEST/ (mirror with delete — ) • rsync -avh --checksum SRC/ DEST/ (checksum verify; slower) • rsync -avh --exclude='.git' --exclude='node_modules' SRC/ DEST/ (exclude patterns) • rsync -azP --bwlimit=2m -e ssh … (bandwidth limit) • bonus mnemonic: rsync -mrchivas … → m prune-empty, r recursive, c checksum, h human, i itemize, v verbose, a archive, s safe (note: -a already implies -r, and -c slows it down)

If there’s a specific rsync you reach for, drop it and I’ll add it too.

foreslion · 17h ago
You left the LLM response in the second paragraph.
wangbang · 16h ago
Would focus more development on ensuring a responsive front end. On mobile, the website is quite difficult to navigate due to overlapping elements. Such as the search bar.
mxuribe · 16h ago
This is very neat!

One small nit: Recipes and Favorites seems to not work (at all)...on firefox 142.0.1 nor ungoogled chromium version 139.0.7258.154 - both via fedora 41. ;-)

crashabr · 18h ago
Nice job. Though it would be more useful to me as a cli app. A different take on tldr with live filtering of results based on what you're typing
shellsteady · 18h ago
Thanks! A full CLI is on my list, but you can use Greppers as a terminal app today with fzf:

   # add to ~/.bashrc or ~/.zshrc
   gpr() {
     curl -fsSL https://www.greppers.com/data/commands.json |
       jq -r '.[] | [.title, .command, (.tags|join(","))] | @tsv' |
       fzf --with-nth=1,3 --delimiter='\t' \
           --header='type to filter • Enter=copy' \
           --preview='printf "⟪ %s ⟫\n\n%s\n" {1} {2}' \
           --bind 'enter:execute-silent(echo -n {2} | (pbcopy || xclip -selection clipboard || wl-copy || xsel -ib || clip.exe))+accept'
  }
  # usage: run `gpr`, type to filter, Enter copies the command
rancar2 · 15h ago
You may be looking for do thing like this tool: https://github.com/closedloop-technologies/autocomplete-sh
kiitos · 18h ago
is this not just `tldr`? https://github.com/tldr-pages/tldr
shellsteady · 18h ago
Great pointer—love tldr. Greppers is a different slice: • Copy-first & tiny: one or two opinionated incantations with sensible flags, not an exhaustive page. • Instant search & links: live filtering, ?q= deep links, favorites (local), and keyboard nav; easy to share a specific query. • Curation over coverage: mixes cross-tool “recipes” (e.g., lsof + networking, systemd log views) rather than a page per command. • Safety: “dangerous” commands prompt before copying.

They’re complementary: tldr is a great reference with multiple examples per command; Greppers is for the 2–3 commands you re-google at 1am with the exact flags you want to copy. If there’s a command where the tldr example is clearly better, I’ll happily mirror it or link out.

kiitos · 16h ago
huh?

there is no concept of any single "default incantation" of any command -- every command always has multiple "incantations" depending on what you want to do with it

nobody would ever directly copy and execute any "exact flags" for any command based on a query string, surely this is not what you are suggesting?

I can get on board with a tool that's like tldr but broader-scoped, returning sets of commands that you could choose to run based on input query, but isn't this just claude?

anon7000 · 15h ago
That’s exactly what this is though, it’s giving you the precise “incantation” you need based on what you’re trying to do. Like “list 20 biggest files in current directory”
defrost · 16h ago
> better real-world examples

Simon Sheppard's CLI Command notes and forums* - https://ss64.com/

* Now regrettably read-only thanks to the UK safety Act: https://ss64.org/viewtopic.php?f=4&t=587

shellsteady · 19h ago
Tech notes: static site on Netlify, no build system. Data is a JSON file; favorites persist via localStorage. Search is client-side; queries are linkable with ?q= and you can filter favorites with fav=1. Dangerous commands show a confirm before copying. Headers (HSTS, nosniff) + sitemap/robots are set.

Planned next: more commands/recipes (docker, systemctl, networking), offline PWA, and a simple import/export for favorites.

If something’s obviously missing, drop it here or via the form: https://www.greppers.com/submit.html

dang · 18h ago
I've added this to the text at the top, so more people will see it.

Btw - if you're replying to other commenters, can you do so by clicking the 'reply' link at the end of their comment? That will place your response underneath the comment you're referencing, which will make the thread much more readable.

Currently, your comments are all going to the top level, where it's hard to connect them with the other posts you're replying to. I'm going to try to move them manually to the right places, but it's not clear what those are!