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

# Overview

> Install the SDK, and the classes a session is built from.

```bash theme={null}
pip install zeroruntime-teleops
```

The package is [`zeroruntime-teleops` on PyPI](https://pypi.org/project/zeroruntime-teleops/),
and the SDK inside it is two classes. Extend one on each machine, fill in a few
methods, and it handles the session, safety, correlation and recording for you.

```python theme={null}
from zeroruntime.teleops import Follower, Leader
```

<Warning>
  These docs describe **0.1.1**, and this is a `0.x` API. Class names, callback
  signatures, config fields and the adapter protocols can all change between
  releases without notice. Pin the version you build against.
</Warning>

<CardGroup cols={2}>
  <Card title="Follower" icon="robot" href="/robotics/api-reference/python/follower">
    Constructor, properties, methods and events for the machine that moves.
  </Card>

  <Card title="Leader" icon="gamepad" href="/robotics/api-reference/python/leader">
    Control, arming, synced observations and events.
  </Card>
</CardGroup>

<Card title="Quickstart" icon="rocket" href="/robotics/python/quickstart" horizontal>
  Write both scripts and drive a joint, with the output to compare against.
</Card>

## Classes

| Class | What it is for |
| - | - |
| [SafetyConfig](/robotics/api-reference/python/safety-config) | watchdog, staleness, speed limit, failsafe |
| [RobotDescriptor](/robotics/api-reference/python/robot-descriptor) | declaring joints, units and space |
| [CameraConfig](/robotics/api-reference/python/camera-config) | declaring a camera and naming it for the dataset |
| [Action](/robotics/api-reference/python/action) | what was asked for, and what was written |
| [Observation](/robotics/api-reference/python/observation) | what the follower saw and where it was |

## Adapters

Ready-made subclasses, so a machine already on one of these needs no class of
your own.

<CardGroup cols={2}>
  <Card title="LeRobot" icon="box" href="/robotics/api-reference/python/adapters/lerobot">
    Wrap an existing LeRobot robot and teleoperator.
  </Card>

  <Card title="ROS 2" icon="diagram-project" href="/robotics/api-reference/python/adapters/ros2">
    Read and write the topics your drivers already use.
  </Card>
</CardGroup>

<Card title="Errors" icon="triangle-exclamation" href="/robotics/api-reference/python/errors" horizontal>
  Every exception the SDK raises, what raises it, and what to catch.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.