0x55aa
โ† Back to Blog

Hidden Gems: Underrated Open Source Tools That'll Change Your Workflow ๐Ÿ’Ž๐Ÿ› ๏ธ

โ€ข17 min read

Hidden Gems: Underrated Open Source Tools That'll Change Your Workflow ๐Ÿ’Ž๐Ÿ› ๏ธ

Real talk: Everyone knows about VSCode, Docker, and Git. They're everywhere. But you know what's NOT everywhere? The incredibly powerful open source tools that make my daily workflow 10x smoother but somehow have <5K GitHub stars! ๐Ÿ˜ฑ

Plot twist: Some of the best tools are the ones nobody talks about!

As a full-time developer who contributes to open source, I'm constantly exploring the ecosystem. And let me tell you - there are HIDDEN TREASURES out there that deserve way more love than they get!

Let me show you my secret weapons! ๐ŸŽฏ

Why Should You Care About "Unknown" Tools? ๐Ÿค”

Fair question!

The usual advice:

Use VSCode! Use Docker! Use React!
Everyone uses them, so they must be best!

The reality:

Popular โ‰  Best for YOUR workflow
Mainstream tools are compromises
Niche tools solve specific problems REALLY well
Hidden gems are often maintained by passionate experts

Translation: Stop following the herd! The perfect tool for YOU might be one nobody's heard of! ๐Ÿ‘โŒ

Real story: I spent 3 years using mainstream tools. Then I discovered fd (a better find). Saved me 30 minutes EVERY DAY. That's 180+ hours per year! If I'd found it sooner... ๐Ÿ˜ญ

The Hidden Gems (Prepare to Be Amazed) ๐ŸŒŸ

1. just - Make, But Actually Good ๐Ÿ“œ

What it is: Command runner with a better syntax than Makefiles

GitHub stars: ~15K (criminally underrated!)

Why nobody talks about it: Make is "good enough" (it's not)

Why it's AMAZING:

# Traditional Makefile - ugly and confusing
.PHONY: test
test:
	@echo "Running tests..."
	pytest tests/
.PHONY: build
build: test
	docker build -t myapp .

# justfile - clean and readable!
test:
  echo "Running tests..."
  pytest tests/

build: test
  docker build -t myapp .

# Works on ANY shell, no tab/space drama!

Getting started:

# Install (one command!)
brew install just  # macOS
cargo install just # Linux/Windows

# Create a justfile
echo 'dev:
  npm run dev

test:
  npm test

deploy: test
  ./deploy.sh' > justfile

# Run commands
just dev
just deploy

# List all commands
just --list

The magic:

  • No .PHONY nonsense
  • Actual error messages (not cryptic Make errors!)
  • Works the same on all platforms
  • Can pass arguments to commands
  • Has variables and conditionals that MAKE SENSE

Real use case: In the security community, we have complex build processes with multiple targets. just lets us organize them without fighting Make's ancient syntax!

Why I love it: I can onboard new contributors by just saying "run just --list and pick what you need!" No Make manual required! ๐Ÿ“šโŒ

2. bat - Cat with Superpowers ๐Ÿฆ‡

What it is: cat clone with syntax highlighting and git integration

GitHub stars: ~48K (more popular but still underused!)

Why people don't know about it: "Why replace cat?"

The answer:

# Old way
$ cat app.js
# *wall of text with no colors*

# New way
$ bat app.js
# *beautiful syntax highlighting*
# *line numbers*
# *git diff indicators*
# *automatic paging for long files*

Setup:

# Install
brew install bat  # macOS
apt install bat   # Ubuntu (command is `batcat`)

# Alias it (add to .bashrc/.zshrc)
alias cat='bat'

# Now `cat` is supercharged! โšก

The features that blow minds:

  1. Automatic syntax highlighting (supports 200+ languages!)
  2. Git integration (shows which lines changed!)
  3. Line numbers by default
  4. Paging for long files (no more terminal scroll!)
  5. Themes! (matches your terminal theme)

My workflow:

# Reading config files
bat nginx.conf  # syntax highlighted!

# Checking API responses
curl api.example.com/users | bat  # formatted JSON!

# Comparing files
bat diff file1.js file2.js  # with git-style diff!

Balancing work and open source taught me this: Small quality-of-life improvements compound. bat seems trivial but I use it 50+ times per day. That's 50 moments of slightly more joy! ๐Ÿ˜Š

3. fd - Find That Actually Works ๐Ÿ”

What it is: A better find command

GitHub stars: ~32K

Why it's not mainstream: "Learn find once, use it forever!" (or fight with it forever...)

The comparison:

# Finding files with `find` (nightmare mode)
find . -name "*.js" -type f -not -path "*/node_modules/*"

# Finding files with `fd` (easy mode!)
fd "\.js$"
# It ignores node_modules by default! ๐ŸŽ‰

Setup:

# Install
brew install fd  # macOS
apt install fd-find  # Ubuntu
cargo install fd-find  # Everywhere else

# Use it
fd pattern  # That's it!

The magic features:

  1. Smart defaults (ignores .gitignore entries automatically!)
  2. Fast as hell (written in Rust ๐Ÿฆ€)
  3. Regex by default (no -regex flag needed!)
  4. Colored output (easy to scan results!)
  5. Parallel execution (searches multiple cores!)

Real examples:

# Find all TypeScript files modified today
fd -e ts -t f --changed-within 1d

# Find large files (>10MB)
fd -S +10m

# Execute command on results
fd "\.log$" -x rm  # Delete all logs

# Search in specific directory
fd password ~/Documents

# Case-insensitive
fd -i readme  # Finds README, readme, ReadMe, etc.

In my AWS projects: I use fd to find configs, logs, and deployment scripts across dozens of microservices. It's SO MUCH FASTER than find! ๐Ÿš€

4. httpie - cURL for Humans ๐ŸŒ

What it is: HTTP client with intuitive syntax

GitHub stars: ~33K (deserves 100K!)

Why people sleep on it: cURL is "industry standard"

The truth:

# cURL - needs a manual
curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer token123" \
  -d '{"name":"Alice","email":"[email protected]"}'

# HTTPie - reads like English!
http POST api.example.com/users \
  Authorization:"Bearer token123" \
  name=Alice \
  [email protected]

Setup:

# Install
brew install httpie  # macOS
pip install httpie   # Everyone

# Use it
http GET https://api.github.com/users/kpanuragh

Why developers love it:

  1. Automatic JSON (no more -H "Content-Type: application/json")
  2. Syntax highlighting in responses
  3. Formatted output (pretty-printed JSON!)
  4. Sessions (save auth tokens!)
  5. Download progress bars ๐Ÿ“Š

Real workflow examples:

# Testing APIs during development
http POST localhost:3000/api/users name=test age:=25

# Following redirects (easy!)
http --follow example.com

# Download with progress
http --download https://example.com/large-file.zip

# Save session (reuse auth!)
http --session=logged-in POST api.example.com/login \
  username=dev password=secret

# Use saved session
http --session=logged-in GET api.example.com/profile

In the security community, we use HTTPie to test API endpoints and check for vulnerabilities. The readable syntax means fewer mistakes when crafting requests! ๐Ÿ”’

5. ripgrep - Grep on Steroids ๐Ÿ’ช

What it is: Blazingly fast search tool

GitHub stars: ~46K (but still underused!)

The stats that matter:

grep: Searches 1GB in 5 seconds
ripgrep: Searches 1GB in 0.3 seconds

Translation: It's 15x FASTER! ๐Ÿƒโ€โ™‚๏ธ๐Ÿ’จ

Setup:

# Install
brew install ripgrep  # macOS
apt install ripgrep   # Ubuntu

# Use as `rg`
rg "function.*async" --type js

The killer features:

  1. Respects .gitignore automatically
  2. Multi-threaded (uses all CPU cores!)
  3. Regex by default
  4. Supports file types (built-in!)
  5. Colored output
  6. Context lines (see surrounding code!)

Real examples:

# Find all TODO comments
rg "TODO|FIXME"

# Search only JavaScript files
rg "import.*React" --type js

# Case-insensitive with context
rg -i "password" -C 3

# Show files without matches
rg --files-without-match "test"

# Search and replace (preview)
rg "oldFunc" --replace "newFunc"

My daily usage: I grep codebases 100+ times per day. Since switching to ripgrep, each search saves 2-3 seconds. That's HOURS saved per week! โฐ

6. jq - JSON Swiss Army Knife ๐Ÿ”ช

What it is: Command-line JSON processor

GitHub stars: ~29K (but used by EVERYONE who knows about it!)

Why newbies don't know it: JSON seems simple until you try to parse it in bash! ๐Ÿ˜…

The use cases:

# API response parsing
curl api.example.com/users | jq '.[] | .name'

# Extract specific fields
cat data.json | jq '.users[0].email'

# Filter arrays
echo '[1,2,3,4,5]' | jq 'map(. * 2)'  # [2,4,6,8,10]

# Complex transformations
cat messy.json | jq '{
  id: .userId,
  fullName: (.firstName + " " + .lastName),
  age: .age
}'

Setup:

# Install
brew install jq  # macOS
apt install jq   # Ubuntu

# Test it
echo '{"name":"Alice","age":30}' | jq '.name'
# Output: "Alice"

Real-world examples:

# AWS: Get all running instances
aws ec2 describe-instances | jq '.Reservations[].Instances[] | select(.State.Name=="running") | .InstanceId'

# GitHub: Get all repo names
gh api /user/repos | jq '.[].name'

# Package.json: List all dependencies
jq '.dependencies | keys[]' package.json

# Filter logs
cat app.log | jq 'select(.level == "error")'

In my Laravel work: I use jq to parse API responses, debug JSON configs, and process deployment manifests. Can't live without it! ๐Ÿ™

7. tmux - Terminal Multiplexer Magic ๐Ÿ–ฅ๏ธ

What it is: Multiple terminals in one window + session persistence

GitHub stars: It's too old for GitHub stars, but LEGENDARY status! ๐Ÿ‘‘

Why people don't use it: Seems complicated (it's not!)

What you're missing:

# One terminal window, multiple panes
tmux new -s dev

# Split horizontally
Ctrl+b "

# Split vertically
Ctrl+b %

# Navigate panes
Ctrl+b [arrow keys]

# Detach (session keeps running!)
Ctrl+b d

# Reattach later
tmux attach -t dev

# Your work is EXACTLY as you left it! ๐ŸŽ‰

The killer feature: Sessions persist even if terminal closes!

My workflow:

# Morning: Start work session
tmux new -s work

# Top pane: Code editor
# Bottom left: Dev server
# Bottom right: Git commands

# Lunch: Detach
Ctrl+b d

# Afternoon: Reattach (everything still running!)
tmux attach -t work

# No need to restart anything! โšก

For remote servers:

# SSH into server
ssh myserver

# Start tmux
tmux new -s deployment

# Run long deployment
./deploy.sh

# Detach (deployment keeps running!)
Ctrl+b d

# Disconnect SSH (deployment STILL running!)
exit

# Next day: Check on it
ssh myserver
tmux attach -t deployment
# See complete logs! ๐Ÿ“œ

Balancing work and open source taught me this: Context switching kills productivity. tmux lets me maintain multiple contexts without mental overhead! ๐Ÿง 

8. fzf - Fuzzy Finder Heaven ๐Ÿ”ฎ

What it is: Interactive fuzzy finder for everything

GitHub stars: ~62K (more popular but still not mainstream!)

The magic: Search ANYTHING with fuzzy matching!

Setup:

# Install
brew install fzf  # macOS
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

# Now it's everywhere!

The transformation:

# Old way: Find file in history
Ctrl+R  # *scroll through 1000 commands* ๐Ÿ˜ญ

# New way with fzf
Ctrl+R  # *type few letters*
# *instantly narrows to matching commands* ๐ŸŽฏ

# Old way: cd to project
cd ~/projects/work/backend/api/src/...

# New way with fzf
cd **<TAB>
# *type "api"*
# *instant fuzzy search through all subdirectories!*

Real examples:

# Fuzzy find and edit file
vim $(fzf)

# Kill process interactively
kill $(ps aux | fzf | awk '{print $2}')

# Checkout git branch
git checkout $(git branch | fzf)

# SSH to server
ssh $(grep "Host " ~/.ssh/config | fzf | awk '{print $2}')

# Browse command history
history | fzf

The productivity boost: No more typing full paths! No more scrolling through history! Just type a few letters and GO! ๐Ÿš€

9. lazygit - Git UI in Terminal ๐ŸŽจ

What it is: Terminal UI for git commands

GitHub stars: ~48K (growing fast!)

Why people stick with git commands: "GUIs are for beginners!" (wrong!)

The truth:

# Traditional git workflow
git status
git add src/components/Button.tsx
git add src/styles/button.css
git commit -m "feat: add button component"
git push

# lazygit workflow
lazygit
# *visual interface*
# *stage files with space*
# *write commit message in editor*
# *push with P*
# *done in 10 seconds!*

Setup:

# Install
brew install lazygit  # macOS
go install github.com/jesseduffield/lazygit@latest

# Run in any git repo
lazygit

The features:

  1. Visual file staging (see diffs before staging!)
  2. Interactive rebase (no more git rebase -i confusion!)
  3. Branch management (create, switch, delete visually!)
  4. Stash management (see what's in your stashes!)
  5. Commit graph (visualize history!)
  6. Cherry-pick with ease

My workflow:

# Working on feature
# Made lots of changes
# Need to commit logically

lazygit
# *stage related files together*
# *make multiple focused commits*
# *rebase interactively if needed*
# *push*

# All without memorizing git flags! ๐ŸŽ‰

Real story: I used to mess up interactive rebases ALL THE TIME. Since switching to lazygit, I haven't screwed up a rebase once! ๐Ÿ’ช

10. tldr - Man Pages for Humans ๐Ÿ“–

What it is: Simplified, example-based man pages

GitHub stars: ~49K

The problem it solves:

# Traditional approach
$ man tar
# *20 pages of dense documentation* ๐Ÿ˜ต

# tldr approach
$ tldr tar
# *practical examples in 30 seconds* โœ…

tar

Extract, create, and manipulate archive files.

- Extract a .tar file:
  tar -xf file.tar

- Create a .tar file:
  tar -cf target.tar file1 file2

- Extract a .tar.gz file:
  tar -xzf file.tar.gz

Setup:

# Install
npm install -g tldr
# or
brew install tldr

# Use it
tldr command

Real examples:

# Never remember curl flags?
tldr curl

# What was that rsync syntax?
tldr rsync

# How do I use sed again?
tldr sed

# ffmpeg is confusing!
tldr ffmpeg

# Quick reference for anything
tldr git-rebase

Why I love it: I don't want to read a novel to find one command! tldr gives me the 80/20 - the 20% of info I need 80% of the time! ๐ŸŽฏ

The Combo Workflow (How They Work Together) ๐ŸŽผ

Here's my actual daily workflow using these tools:

Morning: Start work

# Start tmux session
tmux new -s work

# Find project
cd $(fd -t d "project-name" ~/projects | fzf)

# Check status
lazygit

# Search for TODOs
rg "TODO" | bat

# Run dev server
just dev

During development:

# Find file to edit
vim $(fd ".tsx$" | fzf)

# Test API endpoint
http POST localhost:3000/api/users name=test

# Check logs
tail -f logs/app.log | jq

# Search for function
rg "function handleSubmit" -A 10 | bat

End of day:

# Check git status
lazygit

# Make commits
# (visual interface!)

# Detach tmux (keeps everything running!)
Ctrl+b d

Next morning:

# Reattach to yesterday's session
tmux attach -t work

# Everything is exactly as I left it! ๐ŸŽ‰

The result: I'm EASILY 2x more productive than when I used standard tools! โšกโšก

How to Discover More Hidden Gems ๐Ÿ—บ๏ธ

My sources:

  1. GitHub trending (filtered):

    • Look at trending repos with <10K stars
    • These are rising gems!
  2. HackerNews "Show HN":

    • Developers sharing their tools
    • Honest feedback in comments
  3. r/commandline on Reddit:

    • CLI enthusiasts sharing gems
    • Weekly "What do you use?" threads
  4. Command Line Magic (@climagic on Twitter):

    • Daily CLI tips and tools
    • Hidden gem goldmine!
  5. Other developers' dotfiles:

    • GitHub search: "dotfiles"
    • See what experts use!
  6. "Awesome" lists on GitHub:

    • awesome-cli
    • awesome-shell
    • awesome-rust (Rust tools are often amazing!)

My process:

# 1. Discover tool
# 2. Read GitHub README
# 3. Install in isolated environment
# 4. Try for ONE specific task
# 5. If it solves problem better -> keep it!
# 6. If not -> uninstall (no guilt!)

The Honest Downsides โš ๏ธ

Let's be real:

Downside #1: Learning curve

  • Each tool takes 30-60 minutes to learn
  • Might feel slower at first
  • Counter: The time investment pays off within a week!

Downside #2: Not installed everywhere

  • SSH into server? Tools aren't there!
  • Pairing with teammate? They don't have your tools!
  • Counter: Most of these work on personal machines where you spend 90% of time!

Downside #3: Muscle memory

  • You'll forget standard commands
  • "How do I use regular find again?" ๐Ÿค”
  • Counter: Keep tldr handy for reference!

Downside #4: Evangelism fatigue

  • You'll want to tell EVERYONE
  • They'll think you're a CLI snob
  • Counter: Let your productivity speak for itself! ๐Ÿ˜Ž

The Bottom Line ๐Ÿ’ก

Hidden gem open source tools can TRANSFORM your workflow!

What you learned today:

  1. Popular โ‰  best for YOUR needs
  2. Niche tools solve specific problems amazingly
  3. Small improvements compound daily
  4. The CLI doesn't have to be painful!
  5. These tools are maintained by passionate experts
  6. Most have better docs than mainstream alternatives
  7. They're all FREE and open source! ๐ŸŽ‰

The reality:

Using mainstream tools:

  • โœ… Everyone knows them
  • โœ… Lots of Stack Overflow answers
  • โŒ Often compromised for mass appeal
  • โŒ May not fit YOUR workflow
  • โŒ Can be slow/clunky for specific tasks

Using hidden gem tools:

  • โœ… Purpose-built for specific problems
  • โœ… Usually faster and more ergonomic
  • โœ… Maintained by passionate experts
  • โœ… Makes you MORE productive
  • โš ๏ธ Requires learning time
  • โš ๏ธ Not always installed everywhere

My take: Invest 1 hour learning these tools. Save 1 hour EVERY WEEK forever! ๐Ÿ“ˆ

Your Action Plan ๐Ÿš€

This week (start small!):

  1. Pick ONE tool from this list
  2. Install it: brew install [tool]
  3. Use it for ONE task you do daily
  4. Give it 3 days of practice
  5. Notice the difference!

This month:

  1. Add 2-3 more tools
  2. Replace standard commands with better ones
  3. Alias common commands in .bashrc/.zshrc
  4. Share your favorites with teammates

This year:

  1. Build a toolkit that fits YOUR workflow
  2. Contribute to these projects (report bugs, improve docs!)
  3. Discover more hidden gems
  4. Become the productivity wizard on your team! ๐Ÿง™โ€โ™‚๏ธ

Resources & Links ๐Ÿ“š

The tools:

Discovery resources:

  • HackerNews Show HN
  • r/commandline subreddit
  • GitHub trending repos
  • Command Line Magic Twitter
  • awesome-cli GitHub lists

My dotfiles: Check my GitHub for my actual dotfiles with all these tools configured!

Final Thoughts ๐Ÿ’ญ

The uncomfortable truth:

Most developers use the same tools everyone else uses, not because they're the best, but because they're the most visible.

Meanwhile: There are brilliant open source developers building AMAZING tools that solve real problems... and almost nobody knows about them!

5 hours spent exploring hidden gems can save you 100 hours per year. Maybe more!

The best part? All of these tools are:

  • ๐Ÿ†“ Free
  • ๐ŸŒ Open source
  • ๐Ÿš€ Actively maintained
  • ๐Ÿ’š Built with passion
  • ๐ŸŽฏ Solving real problems

So here's my challenge:

Right now, pick ONE tool from this list. Install it. Try it for one specific task. See if you like it better than what you're currently using.

Your workflow might never be the same! (In a good way!)

Questions to ask yourself:

  • Am I using tools out of habit or because they're best?
  • Could I save time with purpose-built tools?
  • Have I explored the CLI tooling ecosystem lately?
  • Am I willing to invest 1 hour to save 100?

Your move! โ™Ÿ๏ธ


Found a hidden gem I missed? Connect with me on LinkedIn - I'm always hunting for new tools!

Want to see these tools in action? Check out my GitHub for dotfiles and configs!

Now go discover some gems! ๐Ÿ’Ž๐Ÿ› ๏ธโœจ


P.S. The developers maintaining these "small" projects deserve WAY more recognition. Star their repos! Sponsor them! Report bugs! Write docs! Every bit of support helps these gems shine brighter! ๐ŸŒŸ

P.P.S. If you try these tools and love them, don't gatekeep! Share them with your team! The whole community wins when we use better tools! ๐ŸŽ‰