neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
An interface library for RL post training with environments.
Developer toolsPython · Jupyter NotebookGitHub @openenvSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗An end-to-end framework for creating, deploying and using isolated execution environments for agentic RL, with a simple Gymnasium-style API.
reset(), step() and state(), sync or async, over a WebSocket./mcp in production mode, while training keeps using step() and rewards.Install the OpenEnv package:
pip install openenv
Install an environment client (e.g., Echo):
pip install git+https://huggingface.co/spaces/openenv/echo_env
Then use the environment:
import asyncio
from echo_env import CallToolAction, EchoEnv
async def main():
# Connect to a running Space (async context manager)
async with EchoEnv(base_url="https://openenv-echo-env.hf.space") as client:
# Reset the environment
result = await client.reset()
print(result.observation.metadata["message"]) # "Echo environment ready!"
# Send messages
result = await client.step(
CallToolAction(
tool_name="echo_message",
arguments={"message": "Hello, World!"},
)
)
print(result.observation.result["data"]) # "Hello, World!"
print(result.reward)
asyncio.run(main())
Synchronous usage is also supported via the .sync() wrapper:
from echo_env import CallToolAction, EchoEnv
# Use .sync() for synchronous context manager
with EchoEnv(base_url="https://openenv-echo-env.hf.space").sync() as client:
result = client.reset()
result = client.step(
CallToolAction(
tool_name="echo_message",
arguments={"message": "Hello, World!"},
)
)
print(result.observation.result["data"])
For a detailed quick start, check out the docs page.
Any training framework that can call an environment can train on it. Training with OpenEnv maps the ways to train and the frameworks that support each one.
GRPOTrainer takes an environment_factory: start with the Wordle GRPO tutorial or TRL's OpenEnv guide.TrainingTrace. TRL's AsyncGRPOTrainer trains on those captures today: see examples/async_grpo_harbor and The ultimate guide to multi-harness RL.openenv init my_env # scaffold an environment
openenv validate my_env --level static --skip-build # quick check against the OpenEnv contract
openenv push my_env # deploy it to Hugging Face Spaces
For local development, run openenv serve my_env after installing its dependencies. This runs on the host and binds to 127.0.0.1; use Docker or Spaces for isolated training and deployment.
See Your First Environment and Deploying an Environment. openenv import wraps an existing environment from ORS/OpenReward or Verifiers.
A few to start with:
| Environment | What it is |
|---|---|
| Echo | Minimal MCP environment, for learning the API and testing a deployment |
| Coding | Sandboxed Python execution with stdout, stderr and exit codes |
| TextArena (Wordle and more) | Text games for multi-turn RL |
| OpenSpiel | Board and card games from DeepMind's OpenSpiel |
| BrowserGym | Web navigation tasks (MiniWoB++, WebArena, ...) |
| Harbor | Harbor task datasets through coding-agent harnesses, with token capture for training |
Browse all of them in the environment catalog, or on the OpenEnv Hub organization.
OpenEnv works with a growing ecosystem of RL frameworks and platforms. If your project supports OpenEnv, open a PR to add it here.
| Framework | Example |
|---|---|
| ART | ART integration |
| Lightning AI | Templates |
| Miles | Terminal-Bench-2 GRPO |
| Oumi | GRPO notebook |
| SkyRL | SkyRL example |
| torchforge | GRPO BlackJack |
| TorchTitan-RL (TitanRL) | OpenEnv bridge and Muse Glimmer 30B chess recipe for GRPO/DAPO, with a CPU demo and tests |
| TRL | OpenEnv guide (GRPO with environment_factory, and harness training) |
| Unsloth | 2048 with gpt-oss |
[!NOTE] OpenEnv is in early development, so APIs may still change. Bug fixes are welcome. For larger changes, open or claim an issue first so the change can be discussed.
OpenEnv is governed by a technical committee that coordinates project direction, major technical decisions, RFCs, and release planning through the public issue tracker, pull requests, and RFC process. Current committee members: Meta-PyTorch, Reflection, Unsloth, Modal, Prime Intellect, Nvidia, Mercor, Fleet AI, Microsoft, Hugging Face, RadixArk, and Nebius.
The project is also supported by a broader community of organizations. If you would like to add your project or organization here, please open a pull request for maintainer review.
Supporters include: Meta-PyTorch, Hugging Face, Scaler AI Labs, Patronus AI, Surge AI, LastMile AI, Unsloth, Reflection, vLLM, SkyRL (UC-Berkeley), Lightning AI, Axolotl AI, Stanford Scaling Intelligence Lab, Mithril, OpenMined, Fleet AI, Halluminate, Turing, Scale AI, Scorecard, Snorkel AI, SGLang, ,
And we'd also like to acknowledge the team at Farama Foundation as the OpenEnv API was heavily inspired by the work you all have done on Gymnasium. Cheers!
BSD 3-Clause License (see LICENSE file)