███████╗███████╗███████╗██╗ ██╗██████╗ ███████╗
██╔════╝██╔════╝██╔════╝██║ ██╔╝██╔══██╗██╔════╝
███████╗█████╗ █████╗ █████╔╝ ██████╔╝███████╗
╚════██║██╔══╝ ██╔══╝ ██╔═██╗ ██╔══██╗╚════██║
███████║███████╗███████╗██║ ██╗██║ ██║███████║
╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝
A blazing-fast, colorful file search tool — built in Rust.
Installation · Features · Usage · Examples · Contributing
seekrs is a command-line file search tool that goes far beyond basic find or ls. It combines fuzzy matching, content search, regex, duplicate detection, and a beautiful directory tree — all with colorized, emoji-rich terminal output.
Think of it as find + grep + fzf + tree, rolled into one fast Rust binary.
| Feature | Flag | Description |
|---|---|---|
| 🔤 Name search | --name |
Search by filename with wildcard support (*.rs) |
| 🌀 Fuzzy matching | --fuzzy |
Finds close matches even with typos or misspellings |
| 📜 Regex search | --regex |
Match filenames against a regular expression |
| 🔍 Content search | --content |
Search inside file contents (like grep) |
| 🧩 Content regex | --content-regex |
Use regex when searching inside files |
| 👁️ File preview | --preview |
Show the first N lines of matched files inline |
| 📂 Type filter | --ext |
Filter by one or more file extensions |
| 📌 Files only | --files-only |
Exclude directories from results |
| 📁 Dirs only | --dirs-only |
Show only directories |
| 📦 Size filter | --size-min / --size-max |
Filter by file size (e.g. 10KB, 1MB) |
| 📅 Date filter | --after / --before |
Filter by last modified date |
| 🌳 Directory tree | --tree |
Print a beautiful Unicode directory tree |
| 👯 Duplicate finder | --duplicates |
Detect identical files by content hash (MD5) |
| ✏️ Open in editor | --open |
Open the first result in any editor |
| 📊 Sort results | --sort |
Sort by name, size, or date |
| 🔢 Limit output | --limit |
Cap the number of results shown |
- Go to the Releases page
- Download
seekrs-x86_64-pc-windows-msvc.zip - Extract the
.zip— you'll getseekrs.exe - Open PowerShell or Command Prompt in the folder where
seekrs.exeis:- Hold
Shift+Right-clickinside the folder - Select "Open PowerShell window here"
- Hold
- Run it:
.\seekrs.exe --help
.\seekrs.exe --name "main"
.\seekrs.exe --treeTo use
seekrsfrom any folder (recommended):
- Move
seekrs.exeto a permanent location e.g.C:\Tools\- Search "Environment Variables" in the Start menu
- Click "Edit the system environment variables" → Environment Variables
- Under System variables, select
Path→ Edit → New- Add
C:\Tools\→ click OK- Restart your terminal — now you can run
seekrsfrom anywhere
# Download and extract
curl -L https://github.com/DTS-11/seekrs/releases/latest/download/seekrs-aarch64-apple-darwin.tar.gz | tar -xz
# Make executable and move to PATH
chmod +x seekrs
sudo mv seekrs /usr/local/bin/
# Run
seekrs --helpUse
seekrs-x86_64-apple-darwin.tar.gzif you have an older Intel Mac.
Note: On first run macOS may block it. Go to System Settings → Privacy & Security and click "Allow Anyway".
# Download and extract
curl -L https://github.com/DTS-11/seekrs/releases/latest/download/seekrs-x86_64-unknown-linux-gnu.tar.gz | tar -xz
# Make executable and move to PATH
chmod +x seekrs
sudo mv seekrs /usr/local/bin/
# Run
seekrs --helpcargo install seekrsgit clone https://github.com/DTS-11/seekrs
cd seekrs
cargo build --release
./target/release/seekrs --helpseekrs [OPTIONS]
-d, --dir <DIR> Root directory to search in [default: .]
-n, --name <NAME> File name to search for (supports wildcards)
-z, --fuzzy Enable fuzzy matching for typos/misspellings
-r, --regex <REGEX> Regex pattern to match against file names
-c, --content <TEXT> Search inside file contents
--content-regex Use regex when searching file contents
-p, --preview <N> Preview first N lines of matched files
-e, --ext <EXT>... Filter by file extension(s)
--files-only Only show files
--dirs-only Only show directories
--size-min <SIZE> Minimum file size (e.g. 10KB, 1MB)
--size-max <SIZE> Maximum file size (e.g. 100MB, 1GB)
--after <YYYY-MM-DD> Files modified after this date
--before <YYYY-MM-DD> Files modified before this date
-t, --tree Display a directory tree
--duplicates Detect duplicate files by content hash
-o, --open <EDITOR> Open first result in an editor
--sort <FIELD> Sort by: name | size | date [default: name]
--limit <N> Max results to show (0 = unlimited)
-h, --help Print help
-V, --version Print version
Windows users: prefix with
.\seekrs.exeif seekrs isn't in your PATH yet, or justseekrsif you've added it to your PATH.
All examples below work on Linux and macOS as-is. On Windows, replace seekrs with .\seekrs.exe (or just seekrs if it's in your PATH), and replace paths like ~/Downloads with C:\Users\YourName\Downloads.
# Linux / macOS
seekrs --name "config"
# Windows (before adding to PATH)
.\seekrs.exe --name "config"
# Windows (after adding to PATH)
seekrs --name "config"# Linux / macOS
seekrs --dir ~/projects --name "main"
# Windows
seekrs --dir "C:\Users\YourName\projects" --name "main"seekrs --name "mian" --fuzzy
# → finds main.rs, main.py, etc.seekrs --content "TODO" --ext rsseekrs --regex "^test_.*\.py$"seekrs --content "async fn \w+" --content-regex --ext rsseekrs --size-min 1MB --size-max 50MBseekrs --after 2025-01-01 --before 2025-12-31seekrs --name "README" --preview 10seekrs --tree --ext rs# Linux / macOS
seekrs --duplicates --dir ~/Downloads
# Windows
seekrs --duplicates --dir "C:\Users\YourName\Downloads"# Linux / macOS
seekrs --name "main.rs" --open vim
seekrs --name "main.rs" --open nano
# Windows — use notepad, or any editor in your PATH
seekrs --name "main.rs" --open notepad
seekrs --name "main.rs" --open code # VS Codeseekrs --ext log --sort size --limit 20seekrs --name "server" --fuzzy --ext rs --content "async fn" --sort size
seekrs --dir ~/projects --ext ts --content "useEffect" --after 2025-06-01
seekrs --size-min 10MB --sort size --files-only --limit 10seekrs produces colorized, emoji-rich output designed to be fast to scan:
╔══════════════════════════════════════════════════════╗
║ ║
║ 🔍 S E E K R S — v0.2.0 ║
║ blazing fast · colorful · feature-rich ║
╚══════════════════════════════════════════════════════╝
🔍 Searching
────────────────────────────────────────────────
1. 🦀 ./src/main.rs [791B] 📅 2025-04-18 12:32
2. 🦀 ./src/search.rs [8.4KB] 📅 2025-04-18 12:32
↳ L41: pub fn run_search(args: &Args) {
✅ Found 2 results in 312 files ⏱ 94ms
File type icons are automatically assigned — 🦀 for Rust, 🐍 for Python, ⚡ for JS/TS, 🌐 for HTML, 🎨 for CSS, 📝 for Markdown, and more.
seekrs is built in Rust and compiled to a native binary with no runtime overhead. On typical project directories (thousands of files), searches complete in under 200ms. Content search scales linearly with file sizes — binary and very large files (>50MB) are skipped automatically.
- ✅ Linux (x86_64)
- ✅ macOS (Intel + Apple Silicon)
- ✅ Windows 10/11
| Crate | Purpose |
|---|---|
| clap | CLI argument parsing |
| colored | Terminal colors and styling |
| fuzzy-matcher | Fuzzy matching (Skim algorithm) |
| walkdir | Recursive directory traversal |
| regex | Regular expression engine |
| chrono | Date parsing and comparison |
| md5 | File hashing for duplicate detection |
| open | Cross-platform file opening |
Contributions are welcome! To get started:
git clone https://github.com/DTS-11/seekrs
cd seekrs
cargo build
cargo testPlease open an issue before submitting a large pull request so we can discuss the approach first.
MIT © Deon