> 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.providers.local

## Submodules

* **[`nemo_gym.sandbox.providers.local.provider`](/nemo/gym/nemo-gym/nemo_gym/sandbox/providers/local/provider)**

## Package Contents

### Classes

| Name                                                                        | Description                                                                           |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| [`LocalProvider`](#nemo_gym-sandbox-providers-local-provider-LocalProvider) | Runs commands on the host. No isolation: use a container provider for untrusted code. |

### API

```python
class nemo_gym.sandbox.providers.local.LocalProvider(
    workspace_root: str | None = None,
    shell: str = '/bin/bash',
    default_timeout_s: float = 180.0,
    concurrency: int = 8
)
```

Runs commands on the host. No isolation: use a container provider for untrusted code.

**`_semaphore`**

---

**`_semaphores`** `dict[int, Semaphore] = {}`

---

**`_workspace_root`**

---

**`name`** `= 'local'`

---

```python
nemo_gym.sandbox.providers.local.LocalProvider.aclose() -> None
```

async

```python
nemo_gym.sandbox.providers.local.LocalProvider.close(
    handle: nemo_gym.sandbox.providers.base.SandboxHandle
) -> None
```

async

```python
nemo_gym.sandbox.providers.local.LocalProvider.create(
    spec: nemo_gym.sandbox.providers.base.SandboxSpec
) -> nemo_gym.sandbox.providers.base.SandboxHandle
```

async

A caller-supplied workdir is theirs to keep. One we allocate is ours to delete.

```python
nemo_gym.sandbox.providers.local.LocalProvider.download_file(
    handle: nemo_gym.sandbox.providers.base.SandboxHandle,
    source_path: str,
    target_path: pathlib.Path
) -> None
```

async

```python
nemo_gym.sandbox.providers.local.LocalProvider.exec(
    handle: nemo_gym.sandbox.providers.base.SandboxHandle,
    command: str,
    cwd: str | None = None,
    env: dict[str, str] | None = None,
    timeout_s: int | float | None = None,
    user: str | int | None = None
) -> nemo_gym.sandbox.providers.base.SandboxExecResult
```

async

Kill the process group on timeout or cancellation.

```python
nemo_gym.sandbox.providers.local.LocalProvider.status(
    handle: nemo_gym.sandbox.providers.base.SandboxHandle
) -> nemo_gym.sandbox.providers.base.SandboxStatus
```

async

```python
nemo_gym.sandbox.providers.local.LocalProvider.upload_file(
    handle: nemo_gym.sandbox.providers.base.SandboxHandle,
    source_path: pathlib.Path,
    target_path: str
) -> None
```

async