npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@light-merlin-dark/smart-find

v1.1.0

Published

Intelligent find wrapper that auto-excludes noise directories. CLI tool. Zero deps, pure bash.

Downloads

11

Readme

 (smart)
 ███████╗██╗███╗   ██╗██████╗
 ██╔════╝██║████╗  ██║██╔══██╗
 █████╗  ██║██╔██╗ ██║██║  ██║
 ██╔══╝  ██║██║╚██╗██║██║  ██║
 ██║     ██║██║ ╚████║██████╔╝
 ╚═╝     ╚═╝╚═╝  ╚═══╝╚═════╝

Intelligent wrapper for the native find command

Drop-in replacement • Auto-excludes build artifacts • Works with BSD & GNU find

What It Replaces

The native find command that ships with your OS:

  • macOS: BSD find (/usr/bin/find)
  • Linux: GNU findutils find (/usr/bin/find)

This wrapper intercepts find calls and intelligently filters out build artifacts and dependency directories that waste time and pollute results.

Why?

The standard find command wastes time searching massive directories you almost never want:

  • node_modules (can contain 100k+ files)
  • .git, dist, build, .next, .cache, etc.

Impact:

  • Manual terminal commands slow down
  • AI assistant tools waste time (Claude Code, etc.)
  • Scripts search through irrelevant files
  • Results buried in noise

Solution: Auto-excludes noise directories while being intelligent enough to include them when explicitly requested.

Key features:

  • Drop-in replacement (no syntax changes)
  • User-configurable ignore list
  • Intelligent detection (explicit paths bypass filters)
  • Multiple bypass options
  • Zero configuration required

Features

Automatic Exclusion

find . -name "*.ts"          # Excludes node_modules automatically
find . -type f               # Excludes node_modules automatically
find .                       # Excludes node_modules automatically

Intelligent Detection

find ./node_modules -name "*.js"  # INCLUDES node_modules (you asked for it!)
find ./dist -type f              # INCLUDES dist (explicit path)

Multiple Bypass Options

find . --raw -name "*.ts"        # Include everything
SMART_FIND=0 find . -name "*.ts" # Include everything
/usr/bin/find . -name "*.ts"     # Use original find directly

Default Excluded Directories

  • node_modules
  • .git
  • dist
  • build
  • out
  • .next
  • .nuxt
  • target (Rust/Java)
  • vendor (Go/PHP)
  • .turbo
  • .cache
  • coverage
  • __pycache__ (Python)

Configuration Management

Customize your ignore list with simple commands:

# View current configuration
find --config          # or --list-ignored

# Add custom directories to ignore
find --add-ignore tmp
find --add-ignore .venv

# Remove custom ignores
find --remove-ignore tmp

Configuration stored at: ~/.config/smart-find/config

How it works:

  • Built-in directories are always excluded (cannot be removed)
  • User additions are persistent across sessions
  • Config file is simple text (one directory per line)
  • Comments supported (lines starting with #)

Example config file:

# User-defined ignored directories
tmp
.venv
.pytest_cache

Installation

# Install globally
npm install -g @light-merlin-dark/smart-find

# Run setup to intercept find command
smart-find-setup

# Reload your shell
exec zsh  # or: exec bash

This will:

  1. Copy smart-find to ~/.local/bin/find
  2. Add ~/.local/bin to your PATH in ~/.zshrc and ~/.bashrc
  3. Create a backup at ~/.local/bin/find.backup if one already exists

Uninstall

# Remove find interception
find --uninstall

# Remove npm package (optional)
npm uninstall -g @light-merlin-dark/smart-find

Verification

After installation:

which find  # Should show: ~/.local/bin/find
find . -name "*.ts" | grep -c node_modules  # Should be 0
find ./node_modules -type f | head -5       # Should show results

How It Works

This is a drop-in replacement that intercepts find commands:

  1. Wrapper script installed at ~/.local/bin/find
  2. ~/.local/bin prepended to your PATH (higher priority than /usr/bin)
  3. When you type find, the shell finds our wrapper first
  4. Wrapper analyzes your command:
    • Explicit paths to excluded dirs → pass through to native find
    • General searches → add exclusion filters automatically
  5. Native find at /usr/bin/find does the actual work
  6. You get faster, cleaner results with zero syntax changes

Rollback

Use the built-in uninstall command:

find --uninstall

Or manually delete the wrapper:

rm ~/.local/bin/find
# Original find at /usr/bin/find takes over immediately

OS Compatibility

Works anywhere the native find command exists:

| OS | Find Version | Status | |---|---|---| | macOS | BSD find | ✓ Tested | | Linux (Debian/Ubuntu) | GNU findutils | ✓ Tested | | Linux (RHEL/Fedora/Arch) | GNU findutils | ✓ Compatible | | Unix-like systems | BSD/GNU find | ✓ Should work |

Requirements:

  • Bash shell
  • Native find command at /usr/bin/find
  • ~/.local/bin in your PATH (setup script handles this)

License

MIT License - see LICENSE file for details.


Built by Robert E. Beckner III (Merlin)