# Docs > Command-line interface and Python SDK for the Almond Axol dual-arm robot. ## Docs - [Core Concepts](https://docs.almond.bot/api/concepts.md): Async context managers, joint arrays, and telemetry — shared conventions across the Axol SDK. - [almond_axol.kinematics](https://docs.almond.bot/api/kinematics.md): Bimanual inverse kinematics solver using pyroki and JAX/jaxls. - [almond_axol.lerobot](https://docs.almond.bot/api/lerobot.md): LeRobot-compatible Robot, Teleoperator, and Camera wrappers for the Axol hardware. - [almond_axol.motor](https://docs.almond.bot/api/motor.md): Low-level async SocketCAN interface for individual motors. - [almond_axol.robot](https://docs.almond.bot/api/robot.md): Hardware controller (Axol), simulator (Sim), configuration, and gravity compensation. - [almond_axol.teleop](https://docs.almond.bot/api/teleop.md): Connect a VR headset to the robot (or simulator) for teleoperation. - [almond_axol.vr](https://docs.almond.bot/api/vr.md): Secure WebSocket server that receives VRFrame messages from the VR app. - [almond_axol.zed](https://docs.almond.bot/api/zed.md): Stream up to three ZED-X One cameras over the local network with HEVC encoding. - [can.enable](https://docs.almond.bot/cli/can-enable.md): Bring the CAN interfaces back up after re-plugging the Axol Hub. - [can.setup](https://docs.almond.bot/cli/can-setup.md): One-time CAN bus setup for the Almond Axol Hub. - [collect-data](https://docs.almond.bot/cli/collect-data.md): Record teleoperation episodes to a LeRobot-format dataset. - [Command configuration](https://docs.almond.bot/cli/configuration.md): How the teleop, gravity-comp, collect-data, and run-policy commands are configured with draccus. - [gravity-comp](https://docs.almond.bot/cli/gravity-comp.md): Hold both arms in gravity-compensation mode so you can move them by hand. - [motor.info](https://docs.almond.bot/cli/motor-info.md): Read and print a full status snapshot from a single motor. - [motor.set-can-id](https://docs.almond.bot/cli/motor-set-can-id.md): Change a motor's CAN ID and persist it to flash. - [motor.set-zero-pos](https://docs.almond.bot/cli/motor-set-zero-pos.md): Set a motor's zero-position reference to its current mechanical position. - [run-policy](https://docs.almond.bot/cli/run-policy.md): Run a trained policy autonomously on the robot with async inference. - [teleop](https://docs.almond.bot/cli/teleop.md): Launch a VR teleoperation session on the robot or simulator. - [tune.friction](https://docs.almond.bot/cli/tune-friction.md): Identify the friction-model parameters for one joint via a velocity sweep. - [tune.pid](https://docs.almond.bot/cli/tune-pid.md): Tune Kp/Kd gains for a single joint via sinusoidal or step-response tracking. - [tune.repeatability](https://docs.almond.bot/cli/tune-repeatability.md): Measure how reliably the grippers return to the same physical contact point. - [zed.install](https://docs.almond.bot/cli/zed-install.md): Install the pyzed Python wheel matching the installed ZED SDK version. - [zed.stream](https://docs.almond.bot/cli/zed-stream.md): Stream ZED-X One cameras over the local network with HEVC encoding. - [zed.sync-clocks](https://docs.almond.bot/cli/zed-sync-clocks.md): Synchronize the sender and receiver clocks with PTP for aligned camera/joint data. - [Almond Axol](https://docs.almond.bot/index.md): Command-line interface and Python SDK for the Almond Axol dual-arm robot. - [Installation](https://docs.almond.bot/installation.md): Install the Axol CLI and SDK, optional dependency extras, and first-run hardware setup. - [Data Collection Quickstart](https://docs.almond.bot/quickstart/data-collection.md): Record teleoperation episodes to a LeRobot dataset across the main host and ZED box. - [Policy Inference Quickstart](https://docs.almond.bot/quickstart/inference.md): Run a trained policy autonomously across the main host and ZED box. - [Teleoperation Quickstart](https://docs.almond.bot/quickstart/teleop.md): From a fresh clone to a live VR teleoperation session — on real hardware or in sim.