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

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.1.tar.gz (287.5 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.1-py3-none-any.whl (101.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: envio_ai-0.3.1.tar.gz
  • Upload date:
  • Size: 287.5 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.1.tar.gz
Algorithm Hash digest
SHA256 95fd77e90a527f992dfda6ba516b3fdc61e980598f3780bf000a2fa5b33e0d5f
MD5 b8b89c3fdae814cb729e8bdbdf896ce7
BLAKE2b-256 3d968453250e0ae070bba794a055321e3ceae093aed7a1d6171844cf6c2f3571

See more details on using hashes here.

File details

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

File metadata

  • Download URL: envio_ai-0.3.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 859dddd97899f4a66e66ae4a3694a6ad12a9cb61d11bfaa61c239354cb1c9c27
MD5 eec189cff350457e699f8290af7922cd
BLAKE2b-256 a32b6d2ce889a3dbc2350c5fa0d4313be8571b293c9fdffe05d11e9172296c8a

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