> ## Documentation Index
> Fetch the complete documentation index at: https://starforge.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Environments

> The agent RL environments training can reference, and what each one declares.

Every environment you may reference: public ones plus your own. Selecting one shows its manifest.

<Frame caption="Agent environments and what each manifest declares.">
  <img src="https://mintcdn.com/starforge/GatXR2rI5-_Vm4_H/images/console/environments.png?fit=max&auto=format&n=GatXR2rI5-_Vm4_H&q=85&s=b2fa613f63291321754feee12bc1769d" alt="StarForge environments page" width="2160" height="1350" data-path="images/console/environments.png" />
</Frame>

## What you see

| Field           | What it tells you                                                                                      |
| --------------- | ------------------------------------------------------------------------------------------------------ |
| **Protocol**    | How a trainer reaches it — served here, generated for NeMo Gym, or a remote service somebody else runs |
| **Verified by** | A rubric, a plugin entrypoint, or an external service                                                  |
| **Harness**     | The plugin that drives the model through it, where the protocol needs one                              |
| **Runs at**     | For a remote environment, the host it answers on                                                       |
| **Sandbox**     | Whether it needs one, which decides whether a deployment can run it at all                             |
| **Versions**    | Every immutable version, and which are public                                                          |

<Warning>
  The taskset is never shown, and no route returns it. What a business considers hard is often more
  revealing than its training data, so a job references an environment and receives task content only
  inside the approved runtime.
</Warning>

## What you can do

* **Reference one in a job** — copy its `<owner>/<name>@<version>` and pass `--environment`.
* **Publish a version** — `sf env push`, see [authoring environments](/en/extend/environments).
* **Register a running service** — `sf env runner register`, for an OpenEnv service you already
  operate.

## The protocol field, in one line each

| Protocol              | Who runs the server                                                                                                     |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **OpenEnv**           | The platform. Turn-level; TRL, SkyRL, Unsloth and Axolotl consume it natively                                           |
| **NeMo Gym**          | The training framework. The platform writes the files Gym expects and Gym launches its own                              |
| **Remote OpenEnv**    | Somebody else, already. The platform only decides whether the job may reach it                                          |
| **OpenEnv container** | Nobody here — this deployment does not host other people's containers, and a job requesting one is refused at admission |
