Automation & Ops development-environmentscontainer-buildsbuildkitoci-imageskubernetespackage-cachingremote-buildsjupyter

envd Development Environments

Build reproducible, container-based AI/ML development environments from concise declarations.

FollowAgents review · FARS-2.1
Use with care
62/ 100 5-point scale 3.1 / 5
1 2 3 4 5 6
1Trust8 / 29 · 1.4/5

The README exposes container isolation, host mounts, port publication, SSH-key installation, remote builds, registries, and cluster interaction, while the license and contributor records provide meaningful attribution. Deductions apply because the example shell runs as sudo and the supplied files show no least-privilege model, hazardous-action confirmation, permission inventory, or rollback procedure. Telemetry is visible only indirectly through a CI opt-out variable, without documented payloads, destinations, or defaults. Handling guarantees for credentials, SSH keys, and registry authentication are also absent. Go modules are versioned, but the dependency surface is large and CI uses master, latest, and tag-only Actions without supplied vulnerability-scanning or supply-chain mitigation evidence.

2Reliability8 / 14 · 2.9/5

The product description, build.envd examples, envd up workflow, and CI build, unit-test, and two end-to-end test jobs form a reasonably consistent static account. Docker's minimum version and principal Go dependencies are documented. Points were deducted because operation depends on Docker, BuildKit, package indexes, Git repositories, registries, and optional cloud services without describing degraded or offline behavior. User-facing failure diagnostics, error categories, and recovery guidance are sparse; most shown output is a successful run.

3Adaptability16 / 18 · 4.4/5

The evidence thoroughly identifies AI/ML developers, team reuse, Python/R/Julia, local and remote builds, Kubernetes, Jupyter, training, and serving scenarios. Docker 20.10+, the v0/v1 comparison, and a host-directory permission note establish useful boundaries, but the platform matrix, resource requirements, network constraints, and unsuitable scenarios remain incomplete. Actions are precisely initiated through explicit manifest functions and commands such as envd bootstrap, envd up, and context use. Local and cluster contexts, OCI compatibility, Linux CI, and a macOS build provide strong environment-fit evidence.

4Convention14 / 18 · 3.9/5

The README has a strong progression from purpose and benefits through installation, quick start, Jupyter, migration, documentation, roadmap, and contribution guidance, with directly usable commands and manifests. Naming is clear, although the v0-to-v1 change altered the default syntax and builder and is mitigated mainly by migration documentation. Examples are extensive, but no substantive FAQ is supplied. Known limitations are scattered across the Docker requirement, permission note, and syntax table rather than collected explicitly. The complete Apache-2.0 license and TensorChord copyright notice justify full license credit. A tag-triggered changelog workflow demonstrates version-history machinery, but no changelog contents or compatibility policy are supplied. Contribution routes and credited maintainers are visible, while security ownership, support commitments, and a definitive maintenance owner are not; registry-unverified publisher identity is treated as unknown rather than adverse.

5Effectiveness12 / 13 · 4.6/5

The documented outputs are usable container development environments, OCI images, Jupyter endpoints, and reusable build manifests, supported by concrete commands and representative output. Declarative multilingual setup, caches, remote building, reusable team functions, and portable local/cluster contexts offer clear marginal value over maintaining raw Dockerfiles. Full cost-benefit credit is withheld because efficiency claims are not benchmarked and the large dependency graph, Docker bootstrap, image transfers, and optional cluster infrastructure impose unquantified costs.

6Verifiability4 / 8 · 2.5/5

Most central capabilities map to commands, build.envd snippets, terminal output, dependency declarations, or CI jobs, giving moderate claim traceability. The README, go.mod, and workflows corroborate the Go implementation, container-building role, tests, and external dependencies. Deductions apply because this review did not execute anything, badges and example logs do not establish the state of the specified revision, and claims such as faster, efficient, seamless, and reproducible are presented largely as product assertions without explicit separation from measured facts or inference.

Evidence confidence: Low Reviewed Aug 14, 2026 Reviewed revision c5e6fd54eb11
Safety controls not found in source: confirmation before acting, rollback or recovery path
Before you use it
  • envd can mount host directories, install SSH keys, expose ports, push images, and affect remote or Kubernetes environments. Review untrusted build.envd files and included Git repositories before use, and constrain credentials and host paths.
  • CI exposes an ENVD_ANALYTICS opt-out, but the supplied user documentation does not explain telemetry defaults, fields, recipients, or retention.
  • The dependency and CI Action surface is large, with master, latest, and tag-only references. Independently check provenance, digest pinning, and known vulnerabilities before adoption.
  • No first-class preview, confirmation, or rollback workflow is evidenced. Apply external change control and recovery measures to image publication, cluster deployment, mounts, and cache changes.
  • This assessment is static and limited to the supplied files; no build, test, security scan, or example output was independently executed or verified.
Review evidence [1][2][3][4][5][6]
See the full review method →

What does this agent do, and when should you use it?

envd is a command-line tool for defining AI/ML development environments in a Python-style build.envd manifest. It parses declarations for the base environment, languages, packages, shell, and Jupyter, then uses BuildKit to produce and launch an isolated OCI-compatible image. The same envd up workflow can target local Docker or a Kubernetes cluster through selectable contexts, while remote builds can run on another machine and push images to a registry. Teams can share reusable environment functions through Git-based include calls and configure services such as TensorBoard with runtime primitives. It is a development-environment builder rather than a conversational or model-execution agent, so adopters seeking native LLM-provider integration would need a separate layer.

A user writes a build() function in build.envd with calls such as base, install.conda, install.python, install.python_packages, shell, and config.jupyter. envd up reads that manifest, resolves or reuses cached dependencies, builds an OCI-compatible image through BuildKit and the default moby-worker, starts the environment, and attaches an interactive shell. envd up --detach runs it in the background, while envd envs ls reports status, Jupyter URLs, SSH targets, images, GPU/CUDA fields, and container IDs. envd context use local and envd context use cluster select local Docker or Kubernetes execution. The include function imports reusable definitions from Git repositories; runtime.mount, runtime.daemon, and runtime.expose configure storage, background processes, and exposed services such as TensorBoard. Remote-build support allows a separate machine to perform the build and push the resulting image to a container registry.

  1. An AI/ML engineer who needs one checked-in declaration for Python, Conda, NumPy, a preferred shell, and Jupyter across several workstations.
  2. A team handling CUDA and complex system dependencies that wants isolated environments for training, fine-tuning, or serving.
  3. A developer on a resource-constrained computer who wants to build on a faster remote machine and publish the OCI image to a registry.
  4. A team moving between laptops and Kubernetes clusters that wants to retain the same envd up workflow by switching contexts.
  5. A group that rebuilds environments frequently and wants BuildKit-backed PyPI and APT caches to avoid repeated downloads.
  6. A platform team that wants to package shared TensorBoard or similar service setup as reusable functions imported from a Git repository.

What are this agent's strengths and limitations?

Pros
  • The Python-style build.envd interface declares languages, packages, shells, and Jupyter without introducing a separate DSL.
  • Generated environment images follow the OCI image specification and can be distributed through registries such as Harbor or Docker Hub.
  • One envd up workflow spans local machines and Kubernetes contexts, with remote builds available when local resources are limited.
  • BuildKit-backed PyPI and APT caching can avoid downloading the same packages on every rebuild.
  • Git-based include supports shared team functions, while runtime.mount, runtime.daemon, and runtime.expose provide concrete service-composition primitives.
Limitations
  • Local operation explicitly requires Docker 20.10.0 or newer and a separate envd bootstrap step.
  • Moving from v0 to v1 introduces migration work because v1 becomes the default manifest syntax and moby-worker becomes the default builder.
  • The Kubernetes path depends on cluster infrastructure, while the supplied material does not include complete cluster provisioning, authentication, or permission steps.
  • Remote builds and image distribution add a remote host or container-registry dependency, and their credential setup is not documented in the supplied material.
  • There is no evidence of native ChatGPT, Codex, Claude, OpenAI API, or Anthropic API integration.

How do you install or deploy this agent?

Docker 20.10.0 or newer is required. To install from PyPI and bootstrap the runtime, run:

pip install --upgrade envd
envd bootstrap

A docker.io mirror can be configured during bootstrap:

envd bootstrap --dockerhub-mirror https://docker.mirrors.sjtug.sjtu.edu.cn

Binary releases are also offered, but the supplied material does not provide platform-specific download commands.

How do you use this agent?

Clone the quick-start repository and enter it:

git clone https://github.com/tensorchord/envd-quick-start.git
cd envd-quick-start

Use a build.envd containing at least:

def build():

base(dev=True)
install.conda()
install.python()
install.python_packages(name=["numpy"])
shell("fish")

Run envd up to build the image and enter the container environment. For Jupyter, add config.jupyter() to build(), run envd up --detach, and retrieve the endpoint with envd envs ls. Select local execution with envd context use local; after cluster configuration, use envd context use cluster for Kubernetes. Network access is needed for installation, cloning, image pulls, dependency downloads, Git includes, or registry operations. No model API credential is documented.

How does this agent compare with similar options?

Compared with Dockerfile v1, envd explicitly offers software caches such as a PyPI cache and expresses the environment through a Python-style build.envd manifest. Within envd itself, v1 syntax supports development mode, CUDA, serving, custom base images, multiple languages, and the moby builder; v0 has only limited support for serving, custom bases, and multiple languages, and does not support the moby builder.

FAQ

Does envd require an LLM API key?
No model API call or model credential is documented. envd builds and runs development environments, although package downloads, Git imports, remote builders, and registries may require network access and their own credentials.
What is the minimum local runtime?
The documented requirement is Docker 20.10.0 or newer. A PyPI installation also needs Python and pip, followed by envd bootstrap.
Can it run environments on Kubernetes?
Yes. The documented workflow switches to a cluster with envd context use cluster and then uses envd up. Full cluster provisioning, authentication, and permission setup are not included in the supplied material.
How do I obtain the Jupyter endpoint?
Add config.jupyter() to build.envd, start with envd up --detach, and run envd envs ls. The JUPYTER column reports the endpoint.
What should a v0 user check before upgrading?
Starting with envd v1.0, v1 is the default build.envd syntax and moby-worker is the default builder. Serving, custom base image, multi-language, and builder support differ between the two versions, so existing manifests require compatibility review.

Related agents