Skip to main content

Python library navigation and AI-powered analysis tool for developers and AI agents. Combines traditional code search with LLM-powered package insights.

Project description

PyEnvSearch

🔍 Python library navigation tool for developers and AI agents

A powerful command-line tool designed for the modern Python ecosystem (uv/uvx) that combines traditional code search with AI-powered package analysis.

✨ Key Features

🔍 Code Discovery & Navigation

  • Virtual Environment Detection: Automatically finds and analyzes virtual environments
  • Package Location Discovery: Locates exact paths for installed packages
  • Semantic Code Search: Find classes, methods, enums with AST-aware search
  • High-Performance Search: Uses ast-grep and ripgrep when available for blazing-fast search
  • Code Structure Navigation: Generate beautiful table of contents for any package

🤖 AI-Powered Analysis

  • Package Summaries: Get concise overviews of any Python package
  • Technical Explanations: Deep dive into package architecture and design
  • Step-by-Step Tutorials: Generate how-to guides for specific tasks
  • API References: Comprehensive usage patterns and best practices
  • Multi-LLM Support: Works with Claude, Gemini, Codex, and Goose

🛠️ Developer Experience

  • JSON Output: Perfect for programmatic usage and tool integration
  • LLM-Friendly Documentation: Finds AI-optimized docs (llms.txt, ai.txt)
  • Zero Heavy Dependencies: Minimal footprint with graceful degradation
  • uv/uvx Native: Built for the modern Python toolchain

🚀 Installation

Prerequisites

Core functionality works with Python standard library only. For enhanced features:

Optional: Performance Tools

# For blazing-fast search (highly recommended)
# macOS
brew install ripgrep ast-grep

# Ubuntu/Debian  
sudo apt install ripgrep
cargo install ast-grep-cli

# Windows
winget install BurntSushi.ripgrep.MSVC
cargo install ast-grep-cli

Optional: AI-Powered Analysis

For AI features, install at least one LLM CLI tool:

# Claude (best results) - requires subscription
npm install -g @anthropic-ai/claude

# Gemini (free tier available)  
npm install -g @google/generative-ai-cli

# Codex (OpenAI account required)
# See: https://github.com/microsoft/codex-cli

# Goose (multi-provider support)
pipx install goose-ai

Install PyEnvSearch

# With uv tool (recommended for CLI usage)
uv tool install pyenvsearch

# With performance tools for blazing-fast search
uv tool install "pyenvsearch[performance]"

# With pipx (alternative CLI installer)
pipx install pyenvsearch
pipx install "pyenvsearch[performance]"

# For one-time usage (no installation)
uvx pyenvsearch --help

# Or install as regular package
uv add pyenvsearch
uv add "pyenvsearch[performance]"  # With fast search tools
pip install pyenvsearch
pip install "pyenvsearch[performance]"

📖 Usage Guide

🔍 Environment & Discovery

Understand your Python environment and locate packages

# Show virtual environment info
pyenvsearch venv

# Find where a package is installed
pyenvsearch find httpx

# Find LLM-optimized documentation
pyenvsearch docs requests

🔎 Code Navigation & Search

Navigate and search through package code

# Generate package table of contents  
pyenvsearch toc fastapi --depth 3

# Search for code patterns
pyenvsearch search "class.*Http" --type regex
pyenvsearch search "async def" --package httpx

# Find specific classes and methods
pyenvsearch class HttpClient
pyenvsearch method get --class HttpClient

# List all classes, methods, or enums in a package
pyenvsearch list-classes requests
pyenvsearch list-methods httpx --include-private
pyenvsearch list-enums enum --enum-type IntEnum

🤖 AI-Powered Analysis

Get intelligent insights about any Python package

# Quick package overview
pyenvsearch summarize requests

# Deep technical explanation  
pyenvsearch explain fastapi --tool claude

# Step-by-step tutorials
pyenvsearch howto pandas --task "data cleaning"
pyenvsearch howto sqlalchemy 

# Comprehensive API guides
pyenvsearch api-guide httpx --tool gemini

# Check available AI tools
pyenvsearch llm-tools

💾 JSON Output

Perfect for scripts and tool integration

# Any command with --json flag
pyenvsearch find httpx --json
pyenvsearch summarize requests --json | jq '.content'
pyenvsearch list-classes fastapi --json

🎯 Real-World Examples

🧪 Exploring a New Package

# Just installed a new package? Get oriented quickly:
pyenvsearch find fastapi              # Where is it?
pyenvsearch summarize fastapi         # What does it do?
pyenvsearch toc fastapi --depth 2     # How is it structured?
pyenvsearch list-classes fastapi      # What are the main classes?

🔍 Debugging & Investigation

# Looking for specific functionality:
pyenvsearch search "ValidationError" --package pydantic
pyenvsearch method validate --package pydantic
pyenvsearch class BaseModel --package pydantic

# Need usage examples:
pyenvsearch howto pydantic --task "custom validators"
pyenvsearch api-guide pydantic

🤖 AI Agent Workflows

# Perfect for AI agents exploring codebases:
pyenvsearch venv --json | jq '.packages[]'
pyenvsearch docs requests --json      # Find AI-friendly docs
pyenvsearch explain httpx --json      # Get structured analysis
pyenvsearch search "async.*client" --json --package httpx

📊 Package Analysis Scripts

#!/bin/bash
# Analyze all installed packages
for pkg in $(pyenvsearch venv --json | jq -r '.packages[].name'); do
    echo "=== $pkg ==="
    pyenvsearch summarize "$pkg" --json | jq -r '.content'
done

🏗️ Architecture

Built for Performance & Developer Experience:

  • 🪶 Minimal Dependencies: Python standard library + optional performance tools
  • ⚡ High Performance: Leverages ast-grep, ripgrep when available
  • 🔄 Graceful Degradation: Works with or without external tools
  • 🎯 uv/uvx Native: Designed for modern Python workflows
  • 🤖 LLM Integration: Multi-provider AI analysis with automatic fallback
  • 📊 Structured Output: JSON support for programmatic usage

🛠️ Development

Setup

git clone <repository-url>
cd pyenvsearch
uv sync --dev

Testing

# Run all tests
uv run pytest

# With coverage
uv run pytest --cov=src --cov-report=html

# Test specific functionality
uv run pytest tests/test_llm.py -v

Code Quality

# Lint and fix issues
uvx ruff check --fix
uvx ruff format

# Type checking
uvx mypy src/

# Run all quality checks
uvx ruff check --fix && uvx ruff format && uvx mypy src/

Manual Testing

# Test basic functionality
uv run python -m pyenvsearch venv
uv run python -m pyenvsearch find requests
uv run python -m pyenvsearch summarize requests

# Test with different LLM tools
uv run python -m pyenvsearch llm-tools
uv run python -m pyenvsearch summarize requests --tool claude

📋 Requirements

Core Requirements

  • Python 3.13+ (uses modern Python features)
  • uv/uvx (recommended package manager)

Optional Performance Tools

  • ripgrep (rg) - Blazing fast text search
  • ast-grep - Semantic code search and analysis
# Install performance tools (optional but recommended)
# macOS
brew install ripgrep ast-grep

# Ubuntu/Debian  
sudo apt install ripgrep
cargo install ast-grep-cli

# Windows
winget install BurntSushi.ripgrep.MSVC
cargo install ast-grep-cli

LLM Tools (for AI features)

  • Claude CLI - Best results, requires subscription
  • Gemini CLI - Good free tier
  • Codex CLI - OpenAI integration
  • Goose - Multi-provider support

📄 License

MIT License - see LICENSE for details.


Made with ❤️ for the Python community and AI agents everywhere 🐍🤖

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

pyenvsearch-0.2.0.tar.gz (36.1 kB view details)

Uploaded Source

Built Distribution

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

pyenvsearch-0.2.0-py3-none-any.whl (32.2 kB view details)

Uploaded Python 3

File details

Details for the file pyenvsearch-0.2.0.tar.gz.

File metadata

  • Download URL: pyenvsearch-0.2.0.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.4

File hashes

Hashes for pyenvsearch-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6427d74b581ab55b6bec7f44a9d10ca6076c36b5310636abf74015dd5ce8fda5
MD5 58757bb7b2585581eb9f5b67080a42e9
BLAKE2b-256 646e50f1b0796510df62c2cd2aa40f98f94822607bf37342699a751a3db83c4b

See more details on using hashes here.

File details

Details for the file pyenvsearch-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pyenvsearch-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5fb825b1e0733dbc96f9cdcc89aeed809aa131e3aaffc6a809b6946501806862
MD5 b997cc8c65730bdf553d15f40686ae9d
BLAKE2b-256 22ad09279adce650282eaed30f8f105536c332e8f00502ba12dacc1974f35277

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