CLI tool
kvcache-ai/AgentENV avatar
kvcache-ai/AgentENV

AgentENV (AENV): a Rust platform for Firecracker sandboxes at scale, with E2B-compatible API

AgentENV (AENV) is a distributed platform for running agent environments at scale.

3,544 stars319 forksRustMIT

At a glance

What is it?
AgentENV runs Firecracker microVM environments across many machines, using overlaybd image loading and snapshot-backed pause and resume. It is aimed at teams that need many concurrent agent sandboxes, and it is early software with a narrow hardware base.
Who is it for?
Adopt AgentENV if you already run Linux hosts with kernel 6.8+, /dev/kvm, and an S3-compatible store for snapshots, and you want many short-lived agent sandboxes behind an E2B-compatible API. Do not adopt it if you need encrypted transport out of the box, run on macOS or Windows hosts, or want a stable API surface, since the workspace version is 0.2.1 while the newest release tag is v0.1.3.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 6 days ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What AgentENV is for, and who actually needs it

AgentENV (AENV) is a distributed platform for running agent environments at scale, and the README states it powers agentic RL training for Kimi K3. The problem it targets is concrete: an agent workflow needs an isolated machine, that machine needs a specific image and a specific starting state, and the workflow needs many of them at once. Doing this with one container per task runs into image pull latency and into the cost of keeping idle environments resident.

The intended user is not someone running a handful of coding agents on a laptop. It is a platform team that has to hand out sandboxes to a training loop or to a fleet of agent workers, where the same base image is used thousands of times and where a sandbox that sits idle should not hold CPU and memory. The README's framing is about density and startup time, not about developer ergonomics, and that distinction matters when you decide whether this is your tool.

Firecracker, overlaybd and ublk: the mechanism behind fast sandbox startup

The isolation unit is a Firecracker microVM, not a container, which is why the prerequisites list Linux kernel 6.8+ and /dev/kvm access. On top of that, AENV loads OCI-compatible images on demand through overlaybd, and the README describes local disk as a bounded cache that retains hot data and evicts cold data. That is the design decision that makes the rest work: a host does not need every image pre-pulled, so the aggregate image and snapshot footprint can exceed local disk capacity by orders of magnitude while startup stays fast cluster-wide.

Snapshots are incremental and cover memory plus filesystem changes. The README states they complete in under 100 ms even under heavy disk modification, that a snapshot-backed environment boots or resumes in under 50 ms and pauses in under 100 ms, and that a running environment can fork into multiple independent sandboxes. Snapshots persist to S3-compatible object storage or a shared distributed filesystem. The Cargo workspace shows the pieces this is built from: storage/overlaybd, storage/ublk, storage/ublk-daemon, crates/warm-pool, crates/object-store-operator, and a vendored firecracker-client under thirdparty/.

Two numbers in the README are production claims rather than benchmarks you can reproduce locally: 1.5 million images in production, and a 9.6x memory overcommit ratio. Treat them as evidence of what the operators observed, not as a promise about your cluster. Memory ballooning, which returns reclaimable guest memory to the host, is the mechanism behind the overcommit figure, and it is the part most likely to behave differently under your workload.

Installing AENV on a single node and running a first sandbox

There are two install paths. The script path installs both the server and the aenv CLI and registers the server as a systemd service. Run it as root, then start the unit.

bash
curl -fsSL https://raw.githubusercontent.com/kvcache-ai/AgentENV/main/scripts/install.sh | sudo bash
sudo systemctl start aenv

The Docker path runs a privileged container that mounts /dev, which is required because the server manages microVMs. The README gives these commands, and the server listens on port 8000.

bash
docker pull ghcr.io/kvcache-ai/aenv-server:latest
docker run -d --name aenv-server --privileged -v /dev:/dev -p 8000:8000 ghcr.io/kvcache-ai/aenv-server:latest

If you used Docker, or if the CLI lives on a different machine from the server, install the CLI separately. The README says it supports Linux and macOS on x86_64 and arm64.

bash
curl -fsSL https://raw.githubusercontent.com/kvcache-ai/AgentENV/main/scripts/install-cli.sh | bash

The server generates an API key on first startup. Where you read it depends on how you installed. For a native install it is at /var/lib/aenv/secrets/api-key; for Docker, the README reads it from inside the container.

bash
sudo cat /var/lib/aenv/secrets/api-key
docker exec aenv-server cat /workspace/env/secrets/api-key

Then authenticate. The prompt asks for the server URL and the key, and the default URL is http://localhost:8000.

bash
aenv auth

Finally, pull a template and start a sandbox. The pull command maps an OCI image to a template, and start attaches an interactive shell.

bash
aenv pull ubuntu:22.04 --name ubuntu
aenv start ubuntu

After that the lifecycle commands are the ones you would expect: aenv pause, aenv resume, aenv timeout to extend a sandbox TTL in seconds, aenv exec for a one-shot command, aenv cn to reattach, and aenv ls to list. The README notes that aenv list prints a table on a TTY and JSON when piped, and that --output table|json overrides the guess. That last detail is worth knowing before you write a script that parses the output.

The API key travels in plaintext, and other limits worth knowing first

The README carries its own warning: AgentENV authenticates API requests but does not encrypt traffic. If you send the API key over an untrusted network, you have leaked it. The documented answer is to run on a trusted network or terminate HTTPS at a reverse proxy or load balancer. That is a deployment requirement, not a configuration toggle, and it means the single-node quick start is not something you expose to the internet as written.

The hardware constraint is equally firm. Linux kernel 6.8+ and /dev/kvm are prerequisites, and the README points at a separate PVM deployment guide for servers without standard KVM. Nothing in the README suggests a macOS or Windows host can run the server; the CLI supports macOS, the server does not. If your fleet is not Linux with virtualization available, this is the wrong tool regardless of how well the snapshot model fits your problem.

There is also a version signal to read carefully. The Cargo workspace sets version = 0.2.1, while the newest release listed is v0.1.3 from 2026-08-20. The README does not explain the gap, so do not assume the released binary and the repository tree are the same code. And the release cadence itself is a fact about maturity: v0.1.1, v0.1.2 and v0.1.3 all landed in August 2026, three releases in under three weeks. Early projects move like that, and APIs move with them.

E2B compatibility versus running your own microVM stack

The clearest alternative is E2B, and the difference is in what you operate. AgentENV exposes an E2B-compatible HTTP API: you point E2B_API_URL at your server and, per the README, use the standard E2B Python or TypeScript SDK without code changes. So the SDK layer is not the decision point. The decision point is who runs the microVMs.

With E2B as a hosted service, someone else owns the Firecracker hosts, the image cache and the snapshot storage. With AgentENV, you own all of it: the kernel version, the /dev/kvm access, the S3-compatible bucket or shared filesystem for snapshots, and the reverse proxy that adds the TLS the server does not provide. You get the density features, the fork capability and the E2B-compatible surface, and you take on the operational surface that comes with running privileged containers on virtualization-capable hosts.

If you only need a modest number of sandboxes and do not have a reason to keep the data on your own infrastructure, the self-hosted path buys you work rather than saving it. If you are running RL training that needs images loaded on demand across a large fleet, the overlaybd cache model is the part that is hard to replicate yourself, and that is the argument for adopting this rather than assembling Firecracker, a registry cache and a snapshot store by hand.

Licence, upgrade cost and what the README leaves open

AgentENV is MIT licensed, both in the repository metadata and in the Cargo.toml package section. That is permissive and imposes no copyleft obligation on your own code. It says nothing about the licence terms of the OCI images you pull through it, and those are your responsibility, not the project's. Nothing here is legal advice; if you redistribute a built artifact, read the LICENSE file and the terms of the thirdparty/ components yourself.

Upgrade cost is the open question. The README documents installing and running, and it documents deployment to Docker Compose and Kubernetes through the linked Deployment page, but it does not document rollback, version pinning between server and CLI, or what happens to existing snapshots when the server version changes. The install scripts fetch from the main branch rather than from a tagged release, so a fresh install and an upgrade do not obviously land on the same version. If you are planning a cluster, pin your artifacts and test the server and CLI together before you touch a running fleet.

The repository does carry the signals of a maintained project: releases in August 2026, a CONTRIBUTING.md, a SECURITY.md with a private disclosure process, a coverage workflow, and a Makefile with explicit knobs for AENV_HOME_PATH, AENV_INSTALL_PREFIX and the Kubernetes namespace agentenv-system. The last push was on 2026-08-20.

Editorial conclusion

Adopt AgentENV if you already run Linux hosts with kernel 6.8+, /dev/kvm, and an S3-compatible store for snapshots, and you want many short-lived agent sandboxes behind an E2B-compatible API. Do not adopt it if you need encrypted transport out of the box, run on macOS or Windows hosts, or want a stable API surface, since the workspace version is 0.2.1 while the newest release tag is v0.1.3. Before committing, verify that the release artifact version matches the workspace version, that your kernel and KVM setup pass the prerequisites, and that your snapshot storage target is reachable from every host.

Frequently asked questions

What are the top 3 AI agents?

The README does not rank AI agents. It describes AgentENV as a platform for running agent environments at scale, stating that it powers agentic RL training for Kimi K3, and leaves the choice of agent to the user.

What are the 5 types of AI agents?

The README does not define a taxonomy of agent types. It covers the execution layer instead: Firecracker microVM environments, OCI-compatible images loaded on demand through overlaybd, and snapshot-backed pause and resume.

What is the difference between AI and an agent?

The README does not draw that distinction. It uses agent to describe the workloads whose environments AENV runs, and frames its own job as running those environments at scale rather than as building the agent itself.

What is an agent interface?

The README does not define an agent interface. The interfaces it documents are the aenv CLI, the HTTP API on port 8000, and an E2B-compatible HTTP API that lets you point E2B_API_URL at your server and use the standard E2B SDKs.

Official sources

  1. Official README
  2. Project repository
  3. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/kvcache-ai-agentenv.svg)](https://hysenlabs.com/projects/kvcache-ai-agentenv)