Repository navigation
Docs refresh after 0.7.0 #1296
Description
OpenEnv has grown a lot in the last few releases: Harbor, typed training captures (TrainingTrace), RFC 005 harnesses, production mode, new runtime providers and many new environments. The docs grew with it, and some pages haven't caught up yet. This issue tracks a pass over the README, guides, tutorials and environment READMEs to bring them in line with 0.7.0, so new users find the current way of doing things first.
PRs can reference this issue and tick items as they land. Each group is meant to fit in one PR, but splitting further is fine.
1. Align snippets and commands with the current API
Done in #1297.
-
README.md: echo example readsobservation.metadata["message"]; CLI list matches the implemented commands (openenv serveisn't available yet,openenv harbor,collect,skills,catalog,discoverare); test path in the Contributing section; runtime providers point to the providers guide. -
getting_started/environment-builder.md: install command (pip install openenvorgit+https://...),openenv pushflags (--tagand--directoryaren't options, the directory is positional), Dockerfile in sync with the CLI template (or link it), generated file names (<name>_environment.py,from <name> import ...). -
getting_started/contributing-envs.md: example Space ids (openenv/echo_env,openenv/coding_env,openenv/wordle),openenv.yaml. -
contributing.md: dev setup matchesCONTRIBUTING.md(uv sync,PYTHONPATH=src:envs uv run pytest). -
cli/templates/openenv_env/README.md:openenv pushflags, sync/async client usage. -
guides/concepts.mdandguides/auto-discovery.md:openenv.yamlexample matches the CLI template; one client per execution mode (async or.sync()); environment layout tree;AutoAction.from_hubexample; package names in install commands. -
guides/task-api.md: client base URL helper (base_url). -
guides/mcp-environment-lifecycle.md:MCPToolClienttalks to/mcp, solist_tools()/call_tool()don't go throughstep()or rewards;step(CallToolAction)is the path for training. Mention the 30 s default tool timeout andtimeout_s. -
guides/runtime-providers.md: echo example fields; mark Kubernetes as planned outside the providers table. -
guides/customizing-web-ui.md:custom_tab_name,custom_tab_primary,show_default_tab,title_override; the UI mounts withENABLE_WEB_INTERFACE=true; current Gradio docs link. - Tutorials:
mcp-environment.mdtorchforge link;sft-warmup.mdformat-compliance sentence matches its table;end-to-end-walkthrough.mddrift explanation matches GRPO's defaultbeta=0.0;wordle-grpo.mdusesdtype=;openenv-tutorial.mdanchor and TOC labels. - Environment READMEs: client examples read fields from
result.observation(finqa, connect4, kernrl); websearch uses its client classWebSearchEnv; finqa example query lists columns; browsergym imageghcr.io/huggingface/openenv-browsergym-env; snake/wildfire paths (envs/...); openapp/finrl client class names.
2. Training entry points
-
guides/rl-integration.mdbecomes the Training overview, first in Learn > Training: the ways to train on OpenEnv (white-box tool loop, black-box through Harbor andTrainingTrace, SFT data withopenenv collect), each with the frameworks that support it, plus the integrations from the README (TRL, torchforge, Unsloth, SkyRL, ART, Oumi, Lightning AI, Miles). TRL is the most documented integration, not the only one. Drops the "torchforge and SkyRL planned" note. Links the Harnesses overview. (Docs: framework-neutral Training overview and harness pages #1350, which also renames the page toguides/training.mdwith a redirect from the old URL) -
README.md,docs/source/index.md,getting-started.md: a "Train an agent" step pointing to the TRL tutorial and to Harbor;novitaandharborin the extras table. (Rewrite the README, docs index and Getting Started around what OpenEnv offers #1298) - A Harbor entry under Learn > Harnesses, linked from the tutorials index: a short page that links TRL's harness training guide,
examples/async_grpo_harbor, the multi-harness RL guide and the Harbor environment page, rather than a tutorial that duplicates them. (Docs: organize Harnesses by who owns the loop (white-box, black-box, agent in env) #1349) -
environments.md: Harbor in the main grid near the top. (Docs: production mode and HF sign-in guides, Harbor up front, Spaces metadata (#1296) #1348) -
envs/harbor_env/README.md:base_path: /weband tags in the front matter; Quick Start before Prerequisites (TRL links are in Link the TRL example and the multi-harness article from harbor_env #1293). (Docs: reference for harbor/catalog/discover, harness API and HFSandboxProvider, Harbor README (#1296) #1352) -
src/openenv/core/harness/README.md: Harbor as the mainTrainingTraceproducer, without the native OpenCode notes. (Remove opencode_env and pi_env (for 0.9.0) #1346, in 0.9.0.) (RFC 005'sHarnessEnvironmentandAgenticHarnessAdapterare listed since Add a recipe that evaluates Claude Code on τ²-bench (RFC 005) #1291.) -
reference/cli.md:openenv harbor,catalog,discover.reference/core.md:AutoEnv/AutoAction, the harness API (HarnessEnvironment,AgenticHarnessAdapter,ResourceSessionFactory,TrainingTrace),InspectAIHarness,HFSandboxProvider. (Docs: reference for harbor/catalog/discover, harness API and HFSandboxProvider, Harbor README (#1296) #1352) -
guides/simulation-vs-production.md:create_app(..., mode="production"),OPENENV_MODE,WS /harness. (Docs: production mode and HF sign-in guides, Harbor up front, Spaces metadata (#1296) #1348) -
guides/runtime-providers.mdandgetting-started.md:HFSandboxProvider. (Docs: reference for harbor/catalog/discover, harness API and HFSandboxProvider, Harbor README (#1296) #1352 coversruntime-providers.md;getting-started.mdlists Hugging Face among the providers in Rewrite the README, docs index and Getting Started around what OpenEnv offers #1298.) (Docs: fold guides, align titles, keep training pages framework-neutral #1371.) -
guides/customizing-web-ui.md: Hugging Face sign-in on Docker Spaces (Gradio needsSYSTEM=spaces, and its OAuth routes live under/web). (Docs: production mode and HF sign-in guides, Harbor up front, Spaces metadata (#1296) #1348)
Framework-neutral framing
OpenEnv is a neutral contract between environments, harnesses and trainers (see GOVERNANCE.md), so the docs should present training paths in framework-agnostic terms and list TRL as one integration among several.
-
tutorials/harnesses.md: the white-box column says "the trainer runs the tool loop" (TRL'senvironment_factoryor another framework's loop) instead of TRL alone, and the black-box column saysTrainingTraceis framework-neutral, with TRL'sAsyncGRPOTraineras today's consumer. (Docs: framework-neutral Training overview and harness pages #1350) -
README.md,docs/source/index.md,getting-started.md: the "Train an agent" step leads with the paths and the integrations table, with TRL as the worked example. (Rewrite the README, docs index and Getting Started around what OpenEnv offers #1298) - An integrations page in the docs (or a section of the Training overview), so the README's integrations list has a home in the docs. (Docs: framework-neutral Training overview and harness pages #1350)
3. Tutorials to refresh
-
tutorials/rl-training-2048.md: build on TRL'sexamples/grpo_2048withenvironment_factory, so the tutorial trains end to end; current imports and Space URL. (Docs: refresh Getting Started, walkthrough, SFT warm-up and 2048 tutorials (#1296) #1353, which links Unsloth's own 2048 notebook up front) -
tutorials/browsergym-harness.mdandexamples/browsergym_harness.py: move to the current TRL API (environment_factory, as in TRL'sexamples/grpo_browsergym); a title that reflects what it covers (white-box BrowserGym rollouts), linking the Harnesses overview from section 4. (Docs: organize Harnesses by who owns the loop (white-box, black-box, agent in env) #1349) - Sidebar and tutorials index: the 2048 tutorial is no longer the Unsloth one (Docs: refresh Getting Started, walkthrough, SFT warm-up and 2048 tutorials (#1296) #1353), so its "Unsloth" titles change. (Docs: fold guides, align titles, keep training pages framework-neutral #1371.)
-
examples/OpenEnv_Tutorial.ipynb: regenerate fromopenenv-tutorial.md. (Docs: trim the Hello World tutorial and regenerate its notebook #1372.) - Getting Started notebooks (parts 1-3): connect with
base_url="https://openenv-openspiel-env.hf.space". (Docs: refresh Getting Started, walkthrough, SFT warm-up and 2048 tutorials (#1296) #1353) -
tutorials/end-to-end-walkthrough.md: environment-owned reward (get_reward()) and optional dataset; environment pool wording. (Docs: refresh Getting Started, walkthrough, SFT warm-up and 2048 tutorials (#1296) #1353) -
tutorials/sft-warmup.md: one collection API across page and notebook; default loss filtering; current teacher model names. (Docs: refresh Getting Started, walkthrough, SFT warm-up and 2048 tutorials (#1296) #1353) -
tutorials/claude-code-harness.md: open with what it is for (evaluating an agent you don't control with the environment's tools and a simulated user, and when to use Harbor instead), a diagram of the flow (Claude Code, MCP bridge, environment tools, simulated customer, rubric), define pass^1, demo tasks that write to the database, and one line on what production mode is for. The BrowserGym comparison moves to the Harnesses overview. (Docs: organize Harnesses by who owns the loop (white-box, black-box, agent in env) #1349)
4. Structure and length
- Fold
guides/mcp-environment-lifecycle.mdintoguides/simulation-vs-production.md, and keep the combined page short. (Docs: fold guides, align titles, keep training pages framework-neutral #1371.) - Fold
guides/connecting.mdintoguides/runtime-providers.md. (Docs: fold guides, align titles, keep training pages framework-neutral #1371.) -
guides/catalog-discovery.md: keep usage (build, discover, inspect,discovery.json), move the spec details to RFC 011. Trimguides/auto-discovery.md. (Docs: trim the catalog, auto-discovery and Harbor qualification guides, tighten environment READMEs (#1296) #1370; the0.1-draftprofile spec stays, rewritten, at the end of the guide instead of moving to RFC 011, which is still a draft.) - One "build an environment" walkthrough across
concepts.md,first-environment.mdandenvironment-builder.md. (Docs: one build-an-environment walkthrough #1373.) -
guides/harbor-provider-qualification.md: nav title "Harbor Qualification", next to the Harbor page; keep how qualification works, link the dated matrix. (Docs: production mode and HF sign-in guides, Harbor up front, Spaces metadata (#1296) #1348 does the title and placement; trimming the page is still open.) (Docs: trim the catalog, auto-discovery and Harbor qualification guides, tighten environment READMEs (#1296) #1370; the dated results stay in the guide, collapsed.) -
tutorials/openenv-tutorial.md: shorter, focused on setup, the local server and the environment skeleton. (Docs: trim the Hello World tutorial and regenerate its notebook #1372.) -
README.md: shorter Architecture / Project Structure sections with links to the docs; linkrfcs/instead of listing RFCs. (Rewrite the README, docs index and Getting Started around what OpenEnv offers #1298) - Shared blocks (governance, experimental note) in one place. (Docs: fold guides, align titles, keep training pages framework-neutral #1371; the committee list lives in the README, the early-development note stays in the README and the docs index.)
- A Harnesses overview page at the top of Learn > Harnesses, organized by who owns the loop: white-box (the trainer runs the tool loop), black-box (a real agent owns its loop and Harbor captures its tokens) and an agent inside the environment (RFC 005, tools injected over MCP, no capture, for evaluation and serving). The Harness runtime replacement #652 session runtime gets a note (it backs
openenv collect). It also answers Confusion around RFC 005 #696. (Docs: organize Harnesses by who owns the loop (white-box, black-box, agent in env) #1349) -
_toctree.yml: Core Concepts first; Getting Started pages together; same titles in the sidebar, the tutorials index and page headings. (Docs: fold guides, align titles, keep training pages framework-neutral #1371.) - Environment READMEs: link the CLI docs instead of repeating the
openenv pushoptions (openspiel, maze, reasoning_gym, textarena, websearch); keep README content user-facing (openapp, repl); shorter wildfire and unity; grid_world as an environment README; a client example, tools and reward for calendar; one name for the reward section. (Docs: trim the catalog, auto-discovery and Harbor qualification guides, tighten environment READMEs (#1296) #1370, textarena in Docs: fold guides, align titles, keep training pages framework-neutral #1371.)
5. Spaces and deployment
-
scripts/prepare_hf_deployment.sh(create_readme): generated Space cards use the env's client class and its*.hf.spaceURL. (Docs: Space cards with a working client snippet, CARLA example URL (#1296) #1351, the snippet only for public Spaces) - Redeploy the
openenvorg Spaces on a current release. (Done on v0.10.0, plus new snake, dipg, grid_world, chess, carla and terminus Spaces, see the comment below.) (After the next 0.8.x release, since Fix OpenEnv ref pinned byprepare_hf_deployment.sh#1366 and Default HF deploy workflow to the latest stable release tag #1376 pin the latest stable tag.openenv/echo_envwas redeployed from v0.8.0 but is paused by a Hub flag that the Spaces team has to clear.) - Front matter for chess, dipg_safety, finrl, git, kernrl, sumo_rl; named colors for atari and chat. (Docs: production mode and HF sign-in guides, Harbor up front, Spaces metadata (#1296) #1348)
-
openenv push: works withoutmodels.py(openenv push: don't require models.py (MCP envs like echo_env) #1356) and removes files from earlier pushes that the environment no longer ships (openenv push: remove stale Space files and skip build artifacts #1365). -
openenv pushkeeps files added by hand on the Space and files matching--excludeor the default ignores, and lists each deletion. (Keep user-added and excluded files when pushing to a Space #1377) -
prepare_hf_deployment.shpins the latestvX.Y.Ztag by default instead of a stale version. (Fix OpenEnv ref pinned byprepare_hf_deployment.sh#1366) - The HF deploy workflow uses that default and fetches tags, and pre-release tags are skipped. (Default HF deploy workflow to the latest stable release tag #1376)
-
openenv inittemplate:server --portworks, the printed next steps and the image tag match whatopenenv buildproduces. (Fix openenv init template: server --port, next steps and image tags #1374) -
environments.mdbuttons point to running Spaces (snake, dipg, grid_world, browsergym →openenv/browsergym_env); carla and chess Space links. (The snake, dipg, grid_world, carla and RLVE_Gym Spaces are in a runtime or build error and have noopenenv/copy, so their buttons wait for a redeploy.) - Link the existing
openenv/*Spaces from their READMEs (echo, coding, textarena, repl, tbench2, sumo, terminus). (Docs: production mode and HF sign-in guides, Harbor up front, Spaces metadata (#1296) #1348 links echo, coding and textarena. tbench2, sumo and terminus can't wake up while theopenenvorganization is over its quota, andopenenv/replis in a runtime error, so they wait for the redeploy above.) -
openenv/wordleSpace: depend on currentopenenv. (On v0.10.0, and the rewritten tutorial in Train a Wordle agent: SFT, then GRPO #1479 runs against it.) (It pinsopenenv-core @ meta-pytorch/OpenEnv@v0.2.3, and the Wordle tutorial installs it withpip install git+https://huggingface.co/spaces/openenv/wordle. Part of the redeploy above, then re-run the tutorial against it.)
Activity
Align docs snippets and commands with the current API (#1297)
Rewrite the README around what OpenEnv offers
Lead the docs index and Getting Started with the same story
Docs: production mode and HF sign-in guides, Harbor up front, Spaces …
Docs: Harnesses section by loop ownership (white-box, black-box, agen…
Docs: framework-neutral Training overview and harness pages (openenv#…
Docs: point to Unsloth's 2048 tutorial up front, Qwen3-8B as self-hos…
Import uvicorn lazily in HFSandboxProvider, like the other modules (#…
Space cards: show the connection snippet only for public Spaces (#1296)
Merge pull request #1348 from huggingface/docs-1296-quick-wins
Merge pull request #1352 from huggingface/docs-reference-harness
Merge pull request #1351 from huggingface/docs-spaces-deploy
Merge pull request #1353 from huggingface/docs-tutorials-refresh
Train an agent: lead with the Training overview, TRL as the worked ex…
README Quick Start prints the echoed text, no semicolons (#1296)
2 remaining items
Docs: one collection API in the SFT warm-up tutorial (openenv#1296)
Docs: rebuild the 2048 tutorial on environment_factory (openenv#1296)
Docs: Getting Started notebooks suggest duplicating the official Spac…
Docs: Harbor README front matter and Quick Start first (openenv#1296)
Docs: reference harbor/catalog/discover, harness API, HFSandboxProvid…
Fix the harbor extra in CLI help and AutoEnv/AutoAction names in the …
Docs: generated Space cards use the env client class and hf.space URL (…
Docs: point CARLA examples at the existing carla-env Space (openenv#1296
Docs: trim catalog discovery, auto-discovery and Harbor qualification…
Docs: tighten environment READMEs (#1296)
Docs: fold guides, neutral tutorial titles, shared governance note (#…
Merge pull request #1370 from huggingface/docs-trim-guides
burtenshaw commentedon Oct 26, 2026
Which remaining Spaces are now deployable, and who owns clearing the Hub quota/paused flags? Please update the outstanding deployment checklist.
sergiopaniego commentedon Oct 27, 2026
Spaces update, all on v0.10.0 now:
openenv/wordlewas already on v0.10.0. All of them pass/healthandreset.openenv/snake_envreplaces a community copy that was in a runtime error, andopenenv/chess_envis added.The deploy workflow only creates version-suffixed copies (by design since #392), but the docs treat the unsuffixed Spaces as canonical, so they had been frozen since March. I redeployed them with
scripts/prepare_hf_deployment.sh --env <env> --repo-id openenv/<space>. Should the workflow also update the canonical Spaces on each release? If we go that way, we should also delete the per-version collections (OpenEnv Environment Hub 0.2.1, 0.2.2 and 0.2.3) and the private suffixed Spaces behind them (*-0.2.x,*-v2-1-0,*-main, over 100 in the org).#1509 (merged) points the environments catalog and the env READMEs to these Spaces, and #1513 links terminus_env. #1512 fixes the deploy script never making a Space public (
hf repos settingsignores--no-private).Point env Space links to the openenv org Spaces