A modern, feature-rich command-line tool for searching PyPI packages with beautiful formatting and real-time updates. Designed to replace the deprecated pip search functionality with an enhanced user experience.
The proof-of-work challenge solution implementation in this tool is based on the work of Long0x0.
Since the deprecation of pip search
, many developers have created alternative search tools. However, in late 2023, PyPI implemented proof-of-work challenges to prevent scraping abuse. This change broke most existing search tools and scripts that relied on directly scraping PyPI's search pages.
pipseek is specifically designed to handle PyPI's new proof-of-work challenge system while providing a superior search experience. It automatically solves these challenges in the background, ensuring reliable package search functionality even with PyPI's anti-scraping measures in place.
- 🔍 Fast and efficient PyPI package search
- 🎨 Beautiful terminal output with rich formatting
- 📊 Detailed package information including version, author, and license
- ⚡️ Concurrent package information fetching
- 🔄 Real-time status updates
- 🛡️ Built-in handling of PyPI's proof-of-work challenges
- 📅 Sorted results by latest update time
- Clone the repository:
git clone https://github.com/OhMyBahGosh/pipseek.git
cd pipseek
- Install required dependencies:
pip install -r requirements.txt
For DEBIAN 12 based systems (Ubuntu 22.04+) if you encounter permission issues:
pip install --break-system-packages -r requirements.txt
--break-system-packages
can potentially interfere with your system's Python packages and is not recommended unless you understand the risks. This flag bypasses important system protections.
- Make the script executable and install system-wide (Linux/Mac):
chmod +x pipseek
# Copy to /usr/local/bin (requires sudo)
sudo cp pipseek /usr/local/bin/pipseek
# Now you can run from anywhere using:
pipseek package-name
For development/testing, run directly:
# From the project directory
./pipseek package-name
# Or using Python explicitly
python3 pipseek package-name
Note: The script uses a Python shebang line, so it should not be executed directly with python.
The script will display detailed information for each package, including:
- Package name and current version
- Description
- Installation command
- Last update date
- Author information
- License details
- Homepage URL
Required Python packages:
- requests
- beautifulsoup4
- rich
- humanize
- packaging
- Colorized and formatted output using the
rich
library - Clear visual hierarchy of information
- Unicode icons for better visual organization
- Parallel fetching of package details
- Efficient handling of multiple package information requests
- Progress indication during searches
- Handles PyPI's proof-of-work challenges automatically
- Reliable package information retrieval
- Comprehensive error handling
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Created with ❤️ by OhMyBahGosh
- Initial release
- Basic search functionality
- Rich terminal output
- Concurrent package information fetching
Made with Python and lots of ☕