The whole system in one picture — click a node to dive in.
The problem
Why RL on coding tasks is hard
Training LLMs with reinforcement learning on coding tasks means running tens or hundreds of thousands of generation-reward cycles — each needing a clean, isolated environment with the right source code and tools.
Scale
A single machine can’t run hundreds of parallel environments that reset in seconds. You need a distributed system built for that from the ground up.
Isolation
Agents must not interfere with each other. Every environment needs its own filesystem, process tree, and network to fully reset between episodes.
Latency
Spinning up a new container for every cycle is too slow at scale. Environments need to restart or reset in under a second to keep throughput high.
What IdeGYM does
A Kubernetes-native environment fleet
IdeGYM manages the full lifecycle of development environments — from image build to teardown — on Kubernetes.
🧪 Disposable environments
Spin up isolated, sandboxed environments on demand and tear them down when finished — no manual cleanup.
🧱 Any project, any image
Load projects from a Git URL, archive, or mounted volume, and build custom Docker images via a plugin API.
🔀 Request forwarding
Proxy requests from your training loop straight to running pods and return responses, so you can compute rewards offline or replay episodes.
Features
Everything a training loop needs
- For researchers & developers
- For ops
🖥️ IDE integration
JetBrains IDEs run headlessly inside pods and route their MCP server through IdeGYM — inspections, refactoring, and code intelligence for any MCP agent, plus a direct HTTP inspection endpoint.
🔌 MCP support
Tools, rewards, filesystem, and server lifecycle are exposed as MCP endpoints, so any MCP-compatible agent or framework can use IdeGYM without custom client code.
🔗 Integrations
Drop-in support for OpenEnv and verl — works with the RL frameworks you already use.
🔄 Episode lifecycle
Reuse environments across episodes: reset just the project folder, restore from a filesystem + memory checkpoint, or restart completely.
🐚 Shell execution
Bash execution, file editing, and a filesystem API are available on every pod.
🎯 Rewards
Define your own reward signals — run tests, check compilation, validate setup — and plug them directly into your training loop.
🧱 Image builder
Use any Docker image as a base. Compose custom images from reusable plugins, in Python or YAML.
🚀 One-click deployment
Deploy with a Helm chart, or customize the manifests.
🛡️ Resource limits & admission control
Regex-based quota rules per tenant, enforced automatically at admission time.
🔭 Observability
Prometheus metrics, OpenTelemetry tracing, and a live dashboard with OOMKill detection.
🧹 Automatic cleanup & fault tolerance
A background watcher reconciles database state against live Kubernetes, removing stale resources and recovering crashed or missing pods.
🗄️ Audit log
Every forwarded request and response is stored in PostgreSQL — enabling reproducible reward computation and episode replay.
Integrations
Works with your stack
OpenEnv
IdeGYM is WebSocket-compatible with OpenEnv — run OpenEnv environments directly on IdeGYM’s Kubernetes infrastructure without changing the agent interface.

verl
IdeGYM pairs with verl as the environment layer: verl handles RL training, IdeGYM provides the scalable sandbox fleet.
Dive deeper — pick your layer
What IdeGYM is, in plain language
A glossary of the moving parts — clients, orchestrator, server pods, images, plugins, rewards, the watcher — with no Kubernetes knowledge assumed.
Read the concepts →The full RL / eval lifecycle
Define an environment → build → provision → act with tools → score with rewards → clean up. The end-to-end data flow, with diagrams.
Trace the data flow →Component deep dives & extension points
Responsibilities, key classes, entry points, and the three plugin hook points — each page links straight into the source on GitHub.
Open the architecture →