> 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 AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server.

# nemo_gym.sandbox.shell

Open an interactive shell in an ephemeral NeMo Gym sandbox.

## Module Contents

### Functions

| Name                                                                     | Description |
| ------------------------------------------------------------------------ | ----------- |
| [`_bridge_terminal`](#nemo_gym-sandbox-shell-_bridge_terminal)           | -           |
| [`_load_provider_config`](#nemo_gym-sandbox-shell-_load_provider_config) | -           |
| [`_parse_args`](#nemo_gym-sandbox-shell-_parse_args)                     | -           |
| [`_pump_stdin`](#nemo_gym-sandbox-shell-_pump_stdin)                     | -           |
| [`_pump_stdout`](#nemo_gym-sandbox-shell-_pump_stdout)                   | -           |
| [`_raw_terminal`](#nemo_gym-sandbox-shell-_raw_terminal)                 | -           |
| [`_read_fd`](#nemo_gym-sandbox-shell-_read_fd)                           | -           |
| [`_run_shell`](#nemo_gym-sandbox-shell-_run_shell)                       | -           |
| [`_terminal_size`](#nemo_gym-sandbox-shell-_terminal_size)               | -           |
| [`_write_all`](#nemo_gym-sandbox-shell-_write_all)                       | -           |
| [`main`](#nemo_gym-sandbox-shell-main)                                   | -           |

### Data

[`DEFAULT_IMAGE`](#nemo_gym-sandbox-shell-DEFAULT_IMAGE)

### API

```python
nemo_gym.sandbox.shell._bridge_terminal(
    session: nemo_gym.sandbox.SandboxPtySession,
    stdin_fd: int,
    stdout_fd: int
) -> int
```

async

```python
nemo_gym.sandbox.shell._load_provider_config(
    config_path: pathlib.Path
) -> tuple[dict[str, typing.Any], dict[str, typing.Any]]
```

```python
nemo_gym.sandbox.shell._parse_args(
    argv: list[str] | None = None
) -> argparse.Namespace
```

```python
nemo_gym.sandbox.shell._pump_stdin(
    session: nemo_gym.sandbox.SandboxPtySession,
    fd: int
) -> None
```

async

```python
nemo_gym.sandbox.shell._pump_stdout(
    session: nemo_gym.sandbox.SandboxPtySession,
    fd: int
) -> None
```

async

```python
nemo_gym.sandbox.shell._raw_terminal(
    fd: int
) -> collections.abc.Iterator[None]
```

```python
nemo_gym.sandbox.shell._read_fd(
    fd: int,
    size: int = 65536
) -> bytes
```

async

```python
nemo_gym.sandbox.shell._run_shell(
    args: argparse.Namespace
) -> int
```

async

```python
nemo_gym.sandbox.shell._terminal_size(
    fd: int
) -> tuple[int, int]
```

```python
nemo_gym.sandbox.shell._write_all(
    fd: int,
    data: bytes
) -> None
```

```python
nemo_gym.sandbox.shell.main(
    argv: list[str] | None = None
) -> int
```

```python
nemo_gym.sandbox.shell.DEFAULT_IMAGE = 'docker.io/library/python:3.12-slim'
```