> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.
> For full documentation content, see https://docs.nvidia.com/nemo/gym/llms-full.txt.

# nemo_gym.cli

## Module Contents

### Classes

| Name                                           | Description                                                                                       |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| [`PipListConfig`](#nemo_gym-cli-PipListConfig) | -                                                                                                 |
| [`RunConfig`](#nemo_gym-cli-RunConfig)         | Start NeMo Gym servers for agents, models, and resources.                                         |
| [`RunHelper`](#nemo_gym-cli-RunHelper)         | -                                                                                                 |
| [`TestAllConfig`](#nemo_gym-cli-TestAllConfig) | Run tests for all server modules in the project.                                                  |
| [`TestConfig`](#nemo_gym-cli-TestConfig)       | Test a specific server module by running its pytest suite and optionally validating example data. |
| [`VersionConfig`](#nemo_gym-cli-VersionConfig) | Display gym version and system information.                                                       |

### Functions

| Name                                                             | Description                                                                    |
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [`_display_list_of_paths`](#nemo_gym-cli-_display_list_of_paths) | -                                                                              |
| [`_format_pct`](#nemo_gym-cli-_format_pct)                       | -                                                                              |
| [`_test_single`](#nemo_gym-cli-_test_single)                     | -                                                                              |
| [`_validate_data_single`](#nemo_gym-cli-_validate_data_single)   | -                                                                              |
| [`dev_test`](#nemo_gym-cli-dev_test)                             | Run core NeMo Gym tests with coverage reporting (runs pytest with --cov flag). |
| [`display_help`](#nemo_gym-cli-display_help)                     | Display a list of available NeMo Gym CLI commands.                             |
| [`dump_config`](#nemo_gym-cli-dump_config)                       | Display the resolved Hydra configuration for debugging purposes.               |
| [`e2e_rollout_collection`](#nemo_gym-cli-e2e_rollout_collection) | -                                                                              |
| [`init_resources_server`](#nemo_gym-cli-init_resources_server)   | Initialize a new resources server with template files and directory structure. |
| [`pip_list`](#nemo_gym-cli-pip_list)                             | List packages installed in a server's virtual environment.                     |
| [`reinstall`](#nemo_gym-cli-reinstall)                           | -                                                                              |
| [`run`](#nemo_gym-cli-run)                                       | Start NeMo Gym servers for agents, models, and resources.                      |
| [`status`](#nemo_gym-cli-status)                                 | -                                                                              |
| [`test`](#nemo_gym-cli-test)                                     | -                                                                              |
| [`test_all`](#nemo_gym-cli-test_all)                             | -                                                                              |
| [`version`](#nemo_gym-cli-version)                               | Display gym version and system information.                                    |

### API

<Anchor id="nemo_gym-cli-PipListConfig">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    class nemo_gym.cli.PipListConfig()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  **Bases:** [RunConfig](#nemo_gym-cli-RunConfig)

  <ParamField path="format" type="Optional[str]" />

  <ParamField path="outdated" type="bool" />
</Indent>

<Anchor id="nemo_gym-cli-RunConfig">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    class nemo_gym.cli.RunConfig()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  **Bases:** [BaseNeMoGymCLIConfig](/nemo-gym/nemo_gym/config_types#nemo_gym-config_types-BaseNeMoGymCLIConfig)

  Start NeMo Gym servers for agents, models, and resources.

  Examples:

  <CodeBlock showLineNumbers={false}>
    ```python
    config_paths="resources_servers/example_single_tool_call/configs/example_single_tool_call.yaml,\
    responses_api_models/openai_model/configs/openai_model.yaml"
    ng_run "+config_paths=[${config_paths}]"
    ```
  </CodeBlock>

  <ParamField path="entrypoint" type="str" />
</Indent>

<Anchor id="nemo_gym-cli-RunHelper">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    class nemo_gym.cli.RunHelper()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  <ParamField path="_head_server" type="Server" />

  <ParamField path="_head_server_instance" type="HeadServer" />

  <ParamField path="_head_server_thread" type="Thread" />

  <ParamField path="_processes" type="Dict[str, Popen]" />

  <ParamField path="_server_client" type="ServerClient" />

  <ParamField path="_server_instance_display_configs" type="List[ServerInstanceDisplayConfig]" />

  <Anchor id="nemo_gym-cli-RunHelper-check_http_server_statuses">
    <CodeBlock links={{"nemo_gym.server_utils.ServerStatus":"/nemo-gym/nemo_gym/server_utils#nemo_gym-server_utils-ServerStatus"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.cli.RunHelper.check_http_server_statuses(
          successful_servers: typing.List[str]
      ) -> typing.List[typing.Tuple[str, nemo_gym.server_utils.ServerStatus]]
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-cli-RunHelper-display_server_instance_info">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.cli.RunHelper.display_server_instance_info() -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-cli-RunHelper-poll">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.cli.RunHelper.poll() -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-cli-RunHelper-run_forever">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.cli.RunHelper.run_forever() -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-cli-RunHelper-shutdown">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.cli.RunHelper.shutdown() -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-cli-RunHelper-start">
    <CodeBlock links={{"nemo_gym.global_config.GlobalConfigDictParserConfig":"/nemo-gym/nemo_gym/global_config#nemo_gym-global_config-GlobalConfigDictParserConfig"}} showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.cli.RunHelper.start(
          global_config_dict_parser_config: nemo_gym.global_config.GlobalConfigDictParserConfig
      ) -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-cli-RunHelper-wait_for_dry_run_spinup">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.cli.RunHelper.wait_for_dry_run_spinup() -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />

  <Anchor id="nemo_gym-cli-RunHelper-wait_for_spinup">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.cli.RunHelper.wait_for_spinup() -> None
      ```
    </CodeBlock>
  </Anchor>

  <Indent />
</Indent>

<Anchor id="nemo_gym-cli-TestAllConfig">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    class nemo_gym.cli.TestAllConfig()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  **Bases:** [BaseNeMoGymCLIConfig](/nemo-gym/nemo_gym/config_types#nemo_gym-config_types-BaseNeMoGymCLIConfig)

  Run tests for all server modules in the project.

  Examples:

  <CodeBlock showLineNumbers={false}>
    ```python
    ng_test_all
    ```
  </CodeBlock>

  <ParamField path="delete_venvs_after_each_test" type="bool" />

  <ParamField path="fail_on_total_and_test_mismatch" type="bool" />
</Indent>

<Anchor id="nemo_gym-cli-TestConfig">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    class nemo_gym.cli.TestConfig()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  **Bases:** [RunConfig](#nemo_gym-cli-RunConfig)

  Test a specific server module by running its pytest suite and optionally validating example data.

  Examples:

  <CodeBlock showLineNumbers={false}>
    ```python
    ng_test +entrypoint=resources_servers/example_single_tool_call
    ```
  </CodeBlock>

  <ParamField path="_dir_path" type="Path" />

  <ParamField path="dir_path" type="Path" />

  <ParamField path="should_validate_data" type="bool" />

  <Anchor id="nemo_gym-cli-TestConfig-model_post_init">
    <CodeBlock showLineNumbers={false} wordWrap={true}>
      ```python
      nemo_gym.cli.TestConfig.model_post_init(
          context
      )
      ```
    </CodeBlock>
  </Anchor>

  <Indent />
</Indent>

<Anchor id="nemo_gym-cli-VersionConfig">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    class nemo_gym.cli.VersionConfig()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  **Bases:** [BaseNeMoGymCLIConfig](/nemo-gym/nemo_gym/config_types#nemo_gym-config_types-BaseNeMoGymCLIConfig)

  Display gym version and system information.

  Examples:

  <CodeBlock showLineNumbers={false}>
    ```python
    # Display version information
    ng_version

    # Output as JSON
    ng_version +json=true
    ```
  </CodeBlock>

  <ParamField path="json_format" type="bool" />
</Indent>

<Anchor id="nemo_gym-cli-_display_list_of_paths">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli._display_list_of_paths(
        paths: typing.List[pathlib.Path]
    ) -> str
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-cli-_format_pct">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli._format_pct(
        count: int,
        total: int
    ) -> str
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-cli-_test_single">
  <CodeBlock links={{"nemo_gym.cli.TestConfig":"#nemo_gym-cli-TestConfig"}} showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli._test_single(
        test_config: nemo_gym.cli.TestConfig,
        global_config_dict: omegaconf.DictConfig
    ) -> subprocess.Popen
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-cli-_validate_data_single">
  <CodeBlock links={{"nemo_gym.cli.TestConfig":"#nemo_gym-cli-TestConfig"}} showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli._validate_data_single(
        test_config: nemo_gym.cli.TestConfig
    ) -> None
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-cli-dev_test">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.dev_test()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Run core NeMo Gym tests with coverage reporting (runs pytest with --cov flag).

  Examples:

  <CodeBlock showLineNumbers={false}>
    ```python
    ng_dev_test
    ```
  </CodeBlock>
</Indent>

<Anchor id="nemo_gym-cli-display_help">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.display_help()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Display a list of available NeMo Gym CLI commands.

  Examples:

  <CodeBlock showLineNumbers={false}>
    ```python
    ng_help
    ```
  </CodeBlock>
</Indent>

<Anchor id="nemo_gym-cli-dump_config">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.dump_config()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Display the resolved Hydra configuration for debugging purposes.

  Examples:

  <CodeBlock showLineNumbers={false}>
    ```python
    ng_dump_config "+config_paths=[<config1>,<config2>]"
    ```
  </CodeBlock>
</Indent>

<Anchor id="nemo_gym-cli-e2e_rollout_collection">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.e2e_rollout_collection()
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-cli-init_resources_server">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.init_resources_server()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Initialize a new resources server with template files and directory structure.

  Examples:

  <CodeBlock showLineNumbers={false}>
    ```python
    ng_init_resources_server +entrypoint=resources_servers/my_server
    ```
  </CodeBlock>
</Indent>

<Anchor id="nemo_gym-cli-pip_list">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.pip_list()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  List packages installed in a server's virtual environment.
</Indent>

<Anchor id="nemo_gym-cli-reinstall">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.reinstall()
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-cli-run">
  <CodeBlock links={{"nemo_gym.global_config.GlobalConfigDictParserConfig":"/nemo-gym/nemo_gym/global_config#nemo_gym-global_config-GlobalConfigDictParserConfig"}} showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.run(
        global_config_dict_parser_config: typing.Optional[nemo_gym.global_config.GlobalConfigDictParserConfig] = None
    )
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Start NeMo Gym servers for agents, models, and resources.

  This command reads configuration from YAML files specified via `+config_paths` and starts all configured servers.
  The configuration files should define server instances with their entrypoints and settings.

  Examples:

  <CodeBlock showLineNumbers={false}>
    ```python
    # Start servers with specific configs
    config_paths="resources_servers/example_single_tool_call/configs/example_single_tool_call.yaml,\
    responses_api_models/openai_model/configs/openai_model.yaml"
    ng_run "+config_paths=[${config_paths}]"
    ```
  </CodeBlock>
</Indent>

<Anchor id="nemo_gym-cli-status">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.status()
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-cli-test">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.test()
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-cli-test_all">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.test_all()
    ```
  </CodeBlock>
</Anchor>

<Indent />

<Anchor id="nemo_gym-cli-version">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_gym.cli.version()
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Display gym version and system information.
</Indent>