A command-line tool for creating reproducible, container-based development environments for AI/ML workflows.
envd is a command-line tool that creates reproducible, container-based development environments for AI and machine learning projects. It solves the problem of complex dependency management by allowing developers to define their environment in a Python-based configuration file and deploy it instantly with a single command, ensuring consistency across local and cloud setups.
AI/ML engineers, data scientists, and developers who need reproducible environments for training, fine-tuning, or serving models, especially those working with Python, CUDA, and Jupyter notebooks.
Developers choose envd for its simplicity, speed, and portability. It replaces fragile Dockerfiles with a Python-based configuration, offers efficient caching for faster builds, and supports both local and Kubernetes deployments, making it ideal for team collaboration and hybrid workflows.
🏕️ Reproducible development environment for humans and agents
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Python syntax for defining environments, eliminating the need to learn a new DSL and seamlessly integrating into existing Python workflows, as shown in the build.envd examples.
Leverages BuildKit for remote builds and caches pip and APT indexes, significantly speeding up environment setup by reusing downloaded packages, which the README highlights as a key advantage over traditional Dockerfiles.
Supports both local machines and Kubernetes clusters with context switching, enabling consistent environments across different platforms, as demonstrated in the CLI examples for local and cluster use.
Allows importing environment functions from Git repositories via the include function, promoting collaboration and reducing configuration duplication, exemplified in the envdlib tensorboard snippet.
Requires Docker 20.10.0 or above to be installed and running, which can be a barrier in environments where Docker is not available or where containerization is avoided due to overhead or security concerns.
The shift from v0 to v1 syntax involves breaking changes, requiring updates to existing configurations and potentially causing disruption, as noted in the README's upgrade guide and feature comparison table.
Primarily optimized for AI/ML workflows with Python, so while it supports languages like R and Julia, it may lack deep integration or features for general-purpose development outside this domain.