Skip to main content

AI-Native Environment Orchestrator

Project description

Envio

PyPI Version Python Versions License Downloads

AI-Native Environment Orchestrator
"It understands what you want, not just what you type."


Why Envio?

Ever spent hours fixing dependency conflicts? Wish you could just tell your computer "I need a web app with Flask" and have everything just work? That's Envio.

Problem Envio's Solution
"What package provides import cv2?" Auto-detects common imports (cv2 -> opencv-python)
Dependency conflicts AI resolves them automatically (3 attempts with self-healing)
Wrong package names Self-healing finds the correct one
GPU vs CPU packages Hardware-aware installation
Security vulnerabilities Built-in envio audit
Finding existing environments Registry tracks all created environments

Installation

pip install envio-ai

That's it. You're ready to go.


Quick Start

# Configure your API key (optional - enables AI features)
envio config api sk-your-openai-key

# Optional: Enable web search for better package suggestions
# Without this, the app still works with just AI (LLM)
envio config serper-api your-serper-key

# Create environment from natural language
envio prompt "data science with pandas and sklearn"

# Or from existing requirements.txt
envio init .

# Or install packages directly
envio install requests flask

Commands at a Glance

Command Description
envio prompt "flask api" Create env from natural language
envio init . Initialize from requirements.txt
envio install numpy pandas Install packages directly
envio list List all environments
envio activate my-env Show activation commands
envio audit Scan for vulnerabilities
envio lock Generate reproducible lockfile
envio export Export to dockerfile/devcontainer
envio resurrect Analyze old repos and revive
envio doctor Show hardware profile

File Structure

envio/
├── src/envio/
│   ├── cli.py                    # Main CLI entry point
│   ├── cli_helpers.py            # Shared helper functions
│   ├── config.py                 # Configuration management
│   ├── __init__.py               # Package init with version
│   ├── __main__.py               # Package entry point
│   │
│   ├── commands/                 # CLI commands (modular)
│   │   ├── __init__.py
│   │   ├── activate.py           # Show activation commands
│   │   ├── audit.py              # Security vulnerability scan
│   │   ├── config.py             # Configuration management
│   │   ├── doctor.py             # System hardware profile
│   │   ├── export.py             # Export to various formats
│   │   ├── init.py               # Initialize from project files
│   │   ├── install.py            # Direct package installation
│   │   ├── list_envs.py           # List registered environments
│   │   ├── lock.py                # Generate lockfiles
│   │   ├── prompt.py              # Natural language env creation
│   │   ├── remove.py              # Remove packages
│   │   └── resurrect.py           # Analyze and revive old repos
│   │
│   ├── agents/                   # AI agents
│   │   ├── nlp_agent.py           # Natural language processing
│   │   ├── dependency_resolution_agent.py
│   │   └── command_construction_agent.py
│   │
│   ├── analysis/                 # Code analysis
│   │   ├── import_analyzer.py    # Scan for imports
│   │   ├── syntax_detector.py    # Detect deprecated patterns
│   │   ├── version_inference.py  # Infer package versions
│   │   └── package_mapping.py    # Import to PyPI mapping
│   │
│   ├── core/                     # Core functionality
│   │   ├── registry.py           # Environment registry
│   │   ├── virtualenv_manager.py # Venv management
│   │   ├── system_profiler.py    # Hardware detection
│   │   ├── executor.py           # Script execution
│   │   └── script_generator.py   # Installation scripts
│   │
│   ├── llm/                      # LLM integration
│   │   ├── client.py             # LLM API client
│   │   ├── parser.py             # Response parsing
│   │   └── prompts.py            # LLM prompts
│   │
│   ├── resolution/                # Dependency resolution
│   │   ├── fast_resolver.py      # Quick resolution
│   │   └── self_healing.py       # Auto-fix failures
│   │
│   ├── tools/                    # External tools
│   │   ├── serper_search.py      # Web search
│   │   └── package_lookup.py     # PyPI lookups
│   │
│   ├── ui/                       # User interface
│   │   └── console.py            # Rich console output
│   │
│   └── utils/                    # Utilities
│       ├── http_utils.py
│       ├── paths.py
│       ├── sanitize.py
│       └── version_utils.py
│
├── pyproject.toml                # Package configuration
├── COMMANDS.md                   # Detailed command reference
├── CONTRIBUTING.md               # Contribution guidelines
├── SECURITY.md                   # Security policy
└── README.md                     # This file

Features

Natural Language Environment Creation

envio prompt "machine learning with pytorch and transformers"

Just describe what you need. Envio understands domains and picks the right packages.

Self-Healing + Web Search (Optional)

When things go wrong, Envio tries to fix itself:

  • Wrong package name → Finds the correct one
  • Version conflict → Suggests compatible versions
  • Package not found → Searches for alternatives via web search (if Serper configured)
  • Installation failure → Retries with fixes (up to 3 attempts)

The app works perfectly with just an LLM API key. Adding a free Serper API key enables enhanced web search for better package suggestions.

Hardware-Aware

Envio detects your GPU and installs the right packages:

  • NVIDIA CUDA for NVIDIA GPUs
  • Metal for Apple Silicon
  • CPU-only when needed

Environment Registry

All environments created by Envio are tracked:

envio list                    # See all environments
envio audit                   # Interactive environment picker
envio export -n my-env        # Export by name

Security Built-In

envio audit                   # Shows picker if no env specified
envio audit -n my-env        # Audit specific environment
envio audit -n my-env --fix  # Auto-fix vulnerabilities

Multiple Export Formats

envio export -n my-env --format requirements
envio export -n my-env --format dockerfile
envio export -n my-env --format devcontainer

Resurrect Old Repos

envio resurrect https://github.com/user/old-repo
envio resurrect ./path/to/old-project

Configuration

# Required: Set API key (auto-detects provider: openai, anthropic, etc.)
envio config api sk-your-openai-key

# Set model (optional, defaults to gpt-4o-mini)
envio config model gpt-4o-mini

# Optional: Enable web search for enhanced package suggestions
# Get a free key at https://serper.dev
envio config serper-api your-key

# View configuration
envio config show

# Set defaults
envio config set default_envs_dir ~/my-envs
envio config set preferred_package_manager uv

Supported Tools

  • Package Managers: pip, uv (default), conda
  • LLM Providers: OpenAI, Anthropic, Together AI, Ollama (local)
  • Platforms: Windows, Linux, macOS

Environment Variables

# Quiet mode (great for CI/CD)
export ENVIO_QUIET=1

# No colors
export NO_COLOR=1

Documentation


License

MIT - use it however you want.


Made with ☕ by Gangadhar Kambhamettu

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

envio_ai-0.3.2.tar.gz (320.8 kB view details)

Uploaded Source

Built Distribution

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

envio_ai-0.3.2-py3-none-any.whl (101.1 kB view details)

Uploaded Python 3

File details

Details for the file envio_ai-0.3.2.tar.gz.

File metadata

  • Download URL: envio_ai-0.3.2.tar.gz
  • Upload date:
  • Size: 320.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for envio_ai-0.3.2.tar.gz
Algorithm Hash digest
SHA256 56b12df70142433bcd4f58ca84e959ef5d6f9c64a8c60478b375589319630c5b
MD5 38ddd894a39e73baf5ba8f96bc32f905
BLAKE2b-256 9afaced22dca79c569fe15564482e3ba76ac8a67f2870b4e6d1275649061cf04

See more details on using hashes here.

File details

Details for the file envio_ai-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: envio_ai-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 101.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for envio_ai-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3554a4df1ef10f1cf4f64b97a5b7039a207d61dae171e4112ce7942e5915a75c
MD5 0837bb7004011ae32762732476559133
BLAKE2b-256 6c52e7bd9bebcd1964fb8893a566a93e42b9b8b9a1197dd3f6c4aed80da354a2

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