Docs · how to

Run an OpenEnv environment on denv

Use DenvProvider to run an OpenEnv image as a denv sandbox and fork it mid-episode.

1. Install the package

pip install "denv[openenv]"
export DENV_SERVER=https://api.denv.ai DENV_API_KEY=dak_…

2. Use the provider

from denv.openenv import DenvProvider
from my_env import MyEnv

env = MyEnv.from_docker_image("ghcr.io/you/my-env:v1", provider=DenvProvider(egress="allow"))
obs = env.reset()
obs = env.step(action)
env.close()

egress="allow" is required today because the environment's HTTP port must be published and an egress-denied network cannot publish ports. The ingress proxy that lifts this is not yet available.

3. Fork an episode

root = MyEnv.from_docker_image("ghcr.io/you/my-env:v1", provider=DenvProvider(egress="allow"))
root.reset()
for a in prefix:
    root.step(a)

branches = [root.provider.fork() for _ in range(8)]

fork() snapshots the live environment as a new version and returns a provider bound to a new environment created from it, with its own base URL. What persists is what the environment keeps in its volumes (default /work); process memory does not survive a fork, so the OpenEnv server restarts and must rebuild in-memory state from disk.