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

50 shellsteady 15 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 (15)

defrost · 2m 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

ProofHouse · 2h 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
henrebotha · 1h 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 · 1h 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 · 2h 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 · 1h 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 · 1h 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 · 1h 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 · 1h ago
You left the LLM response in the second paragraph.
crashabr · 2h 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 · 2h 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
kiitos · 1h ago
is this not just `tldr`? https://github.com/tldr-pages/tldr
shellsteady · 1h 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.

shellsteady · 2h 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 · 1h 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!