Skip to main content

Extended pip search with TUI interface and package management

Project description

pip-search-ex

PIP Search, Extended

A modern replacement for the discontinued 'pip search' command.

Extended pip search with TUI interface and package management capabilities.

Features

  • Fast package search - Search PyPI with smart caching
  • Two display modes:
    • RAW mode - Classic table output like the original 'pip search'
    • TUI mode - Interactive interface with package management
  • Package management (TUI mode) - Install, update, and uninstall packages directly
  • Installation status - See which packages are installed, outdated, or available
  • Multiple themes - Choose from default, nord, solarized, or no-color themes
  • Concurrent fetching - Fast parallel metadata retrieval
  • Smart caching - Efficient index caching with ETags

Installation

pip install pip-search-ex

Usage

Basic search (TUI mode)

pip-search-ex django

Opens an interactive terminal interface where you can browse, install, update, and uninstall packages.

Raw mode (classic pip search style)

pip-search-ex django --raw

Displays results in a clean table format, just like the original 'pip search' command. Perfect for:

  • Quick searches without entering TUI
  • Scripting and automation
  • Piping to other commands
  • Users who prefer the classic experience

Choose a theme

# Nord theme
pip-search-ex pillow --nord

# Solarized theme
pip-search-ex flask --theme-solarized

# No colors
pip-search-ex requests --no-color

TUI Mode

In TUI mode, you can:

  • Navigate with arrow keys or mouse
  • Press Enter or click on a package to see available actions:
    • Install (for uninstalled packages)
    • Update (for outdated packages)
    • Reinstall (for installed packages)
    • Uninstall (for installed packages)
    • Downgrade (for installed packages that are newer-than-server version)
  • Press 't' to change themes on the fly
  • Press 'q' to quit
  • Press 'esc' twice to quit

Raw Mode

Use '--raw' or '--basic' for simple table output that mimics the original 'pip_search':

pip-search-ex numpy --raw

Features in raw mode:

  • Clean, bordered table layout

  • Color-coded installation status

  • Multi-line text wrapping for long descriptions

  • Works great with grep, awk, and other Unix tools:

    pip-search-ex django --raw | grep -i rest pip-search-ex --raw flask --no-color > packages.txt

Themes

pip-search-ex includes 21 built-in themes including:

  • 'default' - Classic green/yellow/gray
  • 'nord' - Nord color palette
  • 'solarized' - Solarized color scheme
  • 'dracula' - Dracula theme
  • 'monokai' - Monokai color scheme
  • 'gruvbox' - Gruvbox theme
  • 'rose-pine' variants - Rose Pine, Rose Pine Moon, Rose Pine Dawn
  • 'tokyo-night' - Tokyo Night theme
  • 'catppuccin' variants - Latte, Frappe, Macchiato, Mocha
  • 'one-dark' - Atom One Dark
  • And more!
  • 'none' - No colors (plain text)

Using themes

pip-search-ex django --nord
pip-search-ex flask --theme-solarized
pip-search-ex requests --rose-pine-dawn

Each theme has multiple alias flags for convenience (e.g., '--nord', '--theme-nord', '--tn').

Creating custom themes

You can easily add your own themes by creating an XML file in the 'themes/' directory:

<theme name="my-theme">
  <aliases>
    <alias>--theme-my-theme</alias>
    <alias>--my-theme</alias>
  </aliases>
  <colors>
    <installed>#56949f</installed>
    <outdated>#ea9d34</outdated>
    <not_installed>#575279</not_installed>
    <error>#b4637a</error>
    <header>#907aa9</header>
    <border>#cecacd</border>
    <default>#575279</default>
  </colors>
</theme>

Colors are specified as hex values and automatically converted to ANSI 256-color codes for terminal display.

Requirements

  • Python 3.8+
  • requests
  • wcwidth
  • textual
  • packaging (optional, for better version comparison)

Why pip-search-ex?

The original 'pip search' command was disabled in 2020 due to PyPI infrastructure limitations and hasn't returned. 'pip-search-ex' provides a modern, enhanced replacement:

What we kept from the original:

  • Simple command-line interface: 'pip-search-ex '
  • Clean table output with '--raw' mode
  • Color-coded installation status
  • Fast search results

What we improved:

  • Dual modes: Use classic RAW mode OR interactive TUI mode
  • Package management: Install/update/uninstall without leaving the interface
  • Better performance: Smart caching with ETags, concurrent metadata fetching
  • Customization: Multiple color themes
  • Reliability: Uses PyPI's official JSON API
  • Active maintenance: Modern codebase, actively maintained

Whether you loved the simplicity of 'pip search' or want more power, 'pip-search-ex' has you covered!

Contributing

Contributions welcome! Please feel free to submit a Pull Request.

Author

thedwarf

License

MIT License - see LICENSE file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pip_search_ex-1.0.9.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pip_search_ex-1.0.9-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file pip_search_ex-1.0.9.tar.gz.

File metadata

  • Download URL: pip_search_ex-1.0.9.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for pip_search_ex-1.0.9.tar.gz
Algorithm Hash digest
SHA256 e13115de85082735cc8b173789a4b10dbd22f17a0e82f04789ed77436d60aa1a
MD5 c5d8691d7b8a21da8980a89f40911bbd
BLAKE2b-256 c2e1df26193dcc1a2f107435c88d82049719d335b477d4d15b1f64ed97a1519a

See more details on using hashes here.

File details

Details for the file pip_search_ex-1.0.9-py3-none-any.whl.

File metadata

  • Download URL: pip_search_ex-1.0.9-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for pip_search_ex-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 b309f07ce367a24645a38be16171b319b4ec55f7e3ea35acfb92053286b516df
MD5 3c9173251ee30c95c03fa56a4d9156bd
BLAKE2b-256 3aebd77791eb8bb0332e30d009acad76d9265d0667d92093a239479b0e2be9d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page