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 pipx (alternative CLI installer)
pipx install pyenvsearch

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

# Or install as regular package
uv add pyenvsearch
pip install pyenvsearch

📖 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.1.0.tar.gz (34.8 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.1.0-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pyenvsearch-0.1.0.tar.gz
Algorithm Hash digest
SHA256 074d42742fd11a505967cd6b9ce87837ff2bc1f0b946778d34c93ec00d180fb1
MD5 90386aeb059ec4086caa62d4685a5561
BLAKE2b-256 4cfdf50cbed42010d6fe8684de729eee4e2352620935e472da7379d8a9d73a19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvsearch-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c7b2dde0e36f392ad93cdf2fab34afd59a29a3bf98a291b5ff5613ab2e7273f8
MD5 1553056339a6f3a760aecdb07a5271e5
BLAKE2b-256 c5ad23df27863906dd02f14a54e00ffde61bc0cc856963c893ef20d054a7b9ea

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