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.3.0.tar.gz (39.0 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.3.0-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pyenvsearch-0.3.0.tar.gz
Algorithm Hash digest
SHA256 88b0afb19b983685ab498497b97212f8dd690d8158c963dc664ef6e85e10fe7c
MD5 5700d37a553a162203e6f6d096a571bc
BLAKE2b-256 44c26484fdd5b4fbe1be14202155ea069cdb58a1ee763a6bfb0f8bce5cc6be28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvsearch-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efaa5a9b5fd4d68bc3130c7c0e7f390e804c3259f939b79bb17e4118c5ed44b9
MD5 58d4722813aec47c2c0f5c5a5ed68df1
BLAKE2b-256 ed904bb5cfac5d7ed86d8cfcf2980af72e75825db9c6d97ca01bb7ee418c39d2

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