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.