{"id":29820889,"url":"https://github.com/corezen/seek","last_synced_at":"2026-05-15T20:04:53.140Z","repository":{"id":306674366,"uuid":"1026895090","full_name":"CoreZen/seek","owner":"CoreZen","description":"🔍 High-performance file search with: • Glob \u0026 regex pattern support • Live search animation • Full path \u0026 name-only search • File/directory filtering • Permission error handling • Colored, user-friendly output","archived":false,"fork":false,"pushed_at":"2025-07-26T23:02:55.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-27T02:13:14.334Z","etag":null,"topics":["blazingly-fast","cli","command-line","cross-platform","file-finder","file-search","filesystem","find","glob","parallel","performance","regex","rust","search","search-tool","terminal","utility"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CoreZen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-26T21:06:20.000Z","updated_at":"2025-07-26T23:02:59.000Z","dependencies_parsed_at":"2025-07-27T02:15:21.828Z","dependency_job_id":"1cfac33c-08d7-4415-9195-3263d9f21ad6","html_url":"https://github.com/CoreZen/seek","commit_stats":null,"previous_names":["corezen/seek"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/CoreZen/seek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreZen%2Fseek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreZen%2Fseek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreZen%2Fseek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreZen%2Fseek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CoreZen","download_url":"https://codeload.github.com/CoreZen/seek/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreZen%2Fseek/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33078009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blazingly-fast","cli","command-line","cross-platform","file-finder","file-search","filesystem","find","glob","parallel","performance","regex","rust","search","search-tool","terminal","utility"],"created_at":"2025-07-28T23:12:00.117Z","updated_at":"2026-05-15T20:04:53.105Z","avatar_url":"https://github.com/CoreZen.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Seek\n\nA blazingly fast file search utility written in Rust with a friendly, animated interface.\n\n## Features\n\n- **Fast Parallel Searches**: Uses multi-threading to speed up file searches in large directories\n- **Live Search Animation**: Shows real-time progress with an animated spinner while searching\n- **Multiple Search Patterns**:\n  - **Glob Patterns** (default): Use wildcards like `*.rs` or `**/*.json`\n  - **Regex Patterns**: Use powerful regular expressions with the `-r` flag\n- **Flexible Search Options**:\n  - Search in filenames or full paths (`-p/--path` flag)\n  - Filter by file type (files-only with `-f` or directories-only with `-d`)\n  - Control search depth with `-D/--max-depth`\n- **Safety Features**:\n  - File count limits to prevent excessive searches\n  - Timeout mechanism to prevent hanging on large directories\n  - Automatic permission error skipping with optional reporting\n- **User Experience**:\n  - Real-time directory tracking to see what's being searched\n  - Live results printing as matches are found\n  - Smart progress tracking with remaining file count display\n  - Helpful suggestions when permission issues are encountered\n- **Clean, Colored Output**: Results are displayed in a user-friendly format with live updates\n\n## Installation\n\n### Using Cargo (All Platforms)\n\nIf you have Rust installed, you can install Seek via Cargo directly from GitHub:\n\n```bash\ncargo install --git https://github.com/CoreZen/seek.git\n```\n\nNote: This project is not yet published on crates.io.\n\n### Platform-Specific Installation\n\n#### macOS\n\n**Option 1: Using Homebrew**\n```bash\n# Add my tap\nbrew tap CoreZen/tap\n\n# Install seek\nbrew install CoreZen/tap/seek\n```\n\n**Option 2: Manual Installation**\n```bash\ngit clone https://github.com/CoreZen/seek.git\ncd seek\ncargo build --release\nsudo cp target/release/seek /usr/local/bin/\n```\n\n#### Linux\n\n**Ubuntu/Debian**\n```bash\n# Install Rust if needed\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\nsource $HOME/.cargo/env\n\n# Clone and build Seek\ngit clone https://github.com/CoreZen/seek.git\ncd seek\ncargo build --release\nsudo cp target/release/seek /usr/local/bin/\n```\n\n**Fedora/RHEL/CentOS**\n```bash\n# Install Rust if needed\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\nsource $HOME/.cargo/env\n\n# Clone and build Seek\ngit clone https://github.com/CoreZen/seek.git\ncd seek\ncargo build --release\nsudo cp target/release/seek /usr/local/bin/\n```\n\n**Arch Linux**\n```bash\n# Install Rust if needed\nsudo pacman -S rust\n\n# Clone and build Seek\ngit clone https://github.com/CoreZen/seek.git\ncd seek\ncargo build --release\nsudo cp target/release/seek /usr/local/bin/\n```\n\n#### Windows\n\n**Option 1: Using Cargo**\n```powershell\ncargo install --git https://github.com/CoreZen/seek.git\n```\n\n**Option 2: Manual Installation**\n```powershell\n# Clone the repository\ngit clone https://github.com/CoreZen/seek.git\ncd seek\n\n# Build the release binary\ncargo build --release\n\n# Copy to a location in your PATH (optional)\n# For example, to your user's bin directory:\ncopy target\\release\\seek.exe C:\\Users\\YourUsername\\bin\\\n\n# Or add to system PATH\n# - Right-click \"This PC\" \u003e Properties \u003e Advanced system settings \u003e Environment Variables\n# - Add the path to the directory containing seek.exe\n```\n\n## Usage\n\n### Basic Examples\n\n```bash\n# Search for all Rust files in current directory\nseek \"*.rs\"\n\n# Search in a specific directory\nseek /path/to/dir \"*.txt\"\n\n# Use regex mode\nseek . \"^README.*\\.md$\" -r\n\n# Search full paths instead of just filenames\nseek /src \"test\" -p\n\n# Only search for directories\nseek . \"*config*\" -d\n\n# Only search for files with max depth of 3\nseek /project \"*.json\" -f -D 3\n\n# Show permission errors and set file limit\nseek /usr \"*.conf\" -e -n 200000\n\n# Set custom timeout for large directory searches\nseek / \"important.txt\" -t 60\n```\n\n### Platform-Specific Examples\n\n#### macOS\n\n```bash\n# Search for system configuration files\nseek /etc \"*.conf\"\n\n# Search your Documents folder for PDFs\nseek ~/Documents \"*.pdf\"\n\n# Search for application property lists\nseek /Applications \"*.plist\"\n\n# Search system directories (requires sudo)\nsudo seek /System \"*.plist\"\n\n# Search Time Machine backups (requires permissions)\nseek /Volumes/TimeMachine \"*.jpg\"\n```\n\n#### Linux\n\n```bash\n# Search for configuration files\nseek /etc \"*.conf\"\n\n# Find all shell scripts in your home directory\nseek ~ \"*.sh\"\n\n# Search system logs (may require sudo)\nsudo seek /var/log \"*.log\"\n\n# Find executable files\nseek /usr/bin -f\n\n# Search mounted filesystems\nseek /mnt \"*.csv\"\n```\n\n#### Windows\n\n```powershell\n# Search for text files in Documents folder\nseek C:\\Users\\YourUsername\\Documents \"*.txt\"\n\n# Find all executable files in Program Files\nseek \"C:\\Program Files\" \"*.exe\"\n\n# Search the Windows directory\nseek C:\\Windows \"*.dll\"\n\n# Find configuration files\nseek C:\\ \"*.config\" -D 4\n\n# Search for user data\nseek \"C:\\Users\" \"*.dat\" -p\n```\n\n## Command-Line Options\n\n```\nUSAGE:\n  seek [OPTIONS] [PATH] [PATTERN]\n\nARGS:\n  \u003cPATH\u003e      Path to search in (default: current directory)\n  \u003cPATTERN\u003e   Pattern to search for (glob by default)\n\nOPTIONS:\n  -r, --regex        Enable regex mode instead of glob\n  -p, --path         Search full path instead of just filename\n  -f, --files-only   Only show files (not directories)\n  -d, --dirs-only    Only show directories (not files)\n  -D, --max-depth \u003cDEPTH\u003e   Maximum search depth\n  -e, --show-permission-errors   Show permission errors (skipped automatically)\n  -n, --max-files \u003cCOUNT\u003e   Maximum number of files to scan (default: 500000)\n  -t, --timeout \u003cSECONDS\u003e   Search timeout in seconds (default: 600)\n  -h, --help         Print help\n  -V, --version      Print version\n```\n\n## Performance\n\nSeek is designed to be fast and efficient:\n\n- Uses Rayon for parallel file traversal\n- Shows live progress with animated spinner during search\n- Displays current directory being searched in real-time\n- Prints results immediately as they're found (no waiting until search completes)\n- Avoids unnecessary string allocations\n- Efficiently filters results during traversal\n- Safe handling of large directories with limits, timeouts, and automatic permission error skipping\n\n## Permission Issues\n\nWhen searching system directories or protected files, you may encounter permission errors:\n\n```\nSearch complete! Found 24 matches in /etc (2.3s, 1542 files, 8 permission errors)\n```\n\n### Solutions for Permission Issues:\n\n#### All Platforms\n- Show permission errors with the `-e` flag to see what's being skipped:\n  ```bash\n  seek /Library \"*.plist\" -e\n  ```\n\n#### macOS\n- **Use sudo** for system directories:\n  ```bash\n  sudo seek /System \"*.plist\"\n  ```\n- **System Integrity Protection (SIP)** may prevent access to some directories even with sudo\n- For searching user data directories (Mail, Messages, etc.), grant Terminal \"Full Disk Access\" in:\n  - System Preferences → Privacy \u0026 Security → Full Disk Access\n- Time Machine backups might have special permissions that require sudo\n\n#### Linux\n- **Use sudo** for system directories:\n  ```bash\n  sudo seek /var/log \"*.log\"\n  ```\n- Some mounted filesystems may have special permissions or ACLs\n- Consider using root permissions cautiously and only when necessary\n\n#### Windows\n- **Run as Administrator** for system directories:\n  - Right-click on Command Prompt or PowerShell and select \"Run as Administrator\"\n  - Then run your seek command\n- Use proper escaping for Windows paths with spaces:\n  ```powershell\n  seek \"C:\\Program Files\" \"*.dll\"\n  ```\n- Some directories may be protected by Windows security features and remain inaccessible\n\n## Troubleshooting\n\n### Search is Too Slow\n- Limit the search depth: `seek ~/Documents \"*.pdf\" -D 3`\n- Add a shorter timeout: `seek /usr \"*.conf\" -t 30`\n- Limit the file count: `seek / \"important.txt\" -n 100000`\n\n### Too Many Permission Errors\n- Skip permission error reporting: remove the `-e` flag\n- Run with elevated privileges (see platform-specific instructions above)\n- Narrow your search to directories you have access to\n\n### No Results Found\n- Check your pattern syntax (glob vs regex mode)\n- Verify path exists and is accessible\n- Try searching with broader patterns first, then narrow down\n- Use `-p` flag to search in full paths, not just filenames\n\n## Development\n\n### GitHub Actions Workflows\n\nThis project uses GitHub Actions for automation:\n\n1. **CI Workflow**: Runs on every push and pull request to main\n   - Tests the code on Ubuntu, macOS, and Windows\n   - Runs clippy and formatting checks\n   - Ensures the project builds correctly\n\n2. **Release Workflow**: Triggered when a new tag is pushed\n   - Builds binaries for:\n     - Linux (x86_64 and ARM64)\n     - macOS (Intel, Apple Silicon, and Universal)\n     - Windows (x86_64)\n   - Creates a GitHub release with all the binaries\n   - Generates SHA256 checksums for verification\n\n3. **Homebrew Update Workflow**: Runs when a new release is published\n   - Automatically updates the Homebrew formula in CoreZen/homebrew-tap\n   - Updates the version, URL, and SHA256 checksum\n\n### Making a New Release\n\nTo create a new release:\n\n1. Update the version in `Cargo.toml`\n2. Commit your changes: `git commit -am \"Bump version to x.y.z\"`\n3. Tag the commit: `git tag -a vx.y.z -m \"Version x.y.z\"`\n4. Push the changes and tags: `git push \u0026\u0026 git push --tags`\n5. The GitHub Actions workflows will handle the rest!\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorezen%2Fseek","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcorezen%2Fseek","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorezen%2Fseek/lists"}