denv · the environment company

Environments you can version, fork, and grade.

Build it in any framework. denv runs it as a whole system, with its data, on your cloud or any sandbox. Agents run in it, get evaluated in it, and models train against it.

$ denv deploy
alpha · egress denied (verified) · snapshot ok
$ denv fork --name rollout-07 alpha
forked in 0.9s · data included
$ denv verify rollout-07
agent stopped · graded on a fork · reward 1
What an environment containsAn environment: an ops box, services, and their datasets inside one boundary, snapshotted together; the verifier outside the boundary; egress denied at the edge.ENVIRONMENT alpha@v1.4 · one network · caps on every serviceopsboxuid 1000, not rootapiservicedbpostgresqueueredisds: appds: pgds: redisds: homesnapshot @v1.4 · every dataset at the same instant · fork → cloneegress ✗verifiedverifierafter stop,on a fork
Build inHarbor · Inspect · OpenEnv · verifiers · HUD · Karotte
Train withSkyRL · verl · rLLM · prime-rl · TRL · Tinker
Run onyour machines · AWS · Hetzner · E2B · Daytona · Modal · Prime
01 — Run

Three steps.

The framework is yours; the environment is denv’s. Everything is a CLI command, a REST call, and an MCP tool with the same name.

1.1

Connect GitHub

A repo with a compose file. Push to deploy; every deploy is a version with a consistent snapshot.

1.2

Connect a target

Your own machines, a cloud account, or a sandbox provider. We never own your compute.

1.3

Run the agent in a fork

Harbor, Inspect, HUD, or your harness runs inside. A fork takes about a second, data included.

02 — Evaluate

The grader never shares a process tree with the agent.

Every rollout records the evidence: digests, the egress probe, the caps, the verifier’s output.

2.1

The agent is never root

Enforced when the environment is resolved. Grading data never enters the agent’s fork.

2.2

The grader runs apart

Agent frozen, submission copied to a root-owned location, graded on a separate fork. Symlinks, pipes, and oversized files score 0.

2.3

No way out, no way to crash it

Egress denied and proven by a probe before every episode. Memory, processes, and CPU capped per service.

03 — Train

Your trainer, our environment.

We run the environment. We do not train your model.

3.1

Rollouts fork, not rebuild

Sixteen rollouts of one prompt are sixteen forks of one version, about a second each. GPUs stop waiting on cold starts.

3.2

Every trainer, two adapters

harbor run -e denv.harbor:DenvEnvironment and provider=DenvProvider() reach SkyRL, verl, rLLM, prime-rl, TRL, and Tinker.

3.3

A reward you can trace

denv verify produces it as a separate principal. The environment has a version; a run records which one it trained against.

04 — Early access

Bring a world that is hard to run.

Thirty minutes. We deploy it in your account, fork it, and grade it. No charge.