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

# create_execution_observer

> Create a Cortex observer when ``GRID_EXECUTION_RECORDING_DIR`` is set

```python theme={null}
from grid_nexus_client import create_execution_observer
```

```python Signature theme={null}
create_execution_observer(*, robot_name: str | None = None) -> RuntimeObserver | None
```

Create a Cortex observer when `GRID_EXECUTION_RECORDING_DIR` is set.

Returns `None` when the variable is unset. Pass the result explicitly to
`CortexClient(observer=...)` for recorded skills; the environment variable
alone does not attach an observer to Cortex clients.
Events are summarized and queued synchronously; the process journal owns
background writes and shutdown, even when several clients share it.

<ParamField body="robot_name">
  Robot identity to attach to this client's recorded model calls.
</ParamField>


## Related topics

- [Your first skill](/get-started/first-skill.md)
- [Session Configuration](/simulation/airgen/session_configuration.md)
- [RemoteDeployment](/python-api/grid-nexus-client/remotedeployment.md)
- [IsaacArm](/python-api/isaac-robots/isaacarm.md)
- [IsaacBimanual](/python-api/isaac-robots/isaacbimanual.md)
