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

# ik.warm

> Precompile this robot's IK so the next session starts without waiting for it.

The first time the IK solver runs for a robot model, or after an update changes it, XLA compiles it: about a minute on a Jetson, spent while teleop or data collection waits to become ready. Later starts reuse that work. The compiled program is cached, and the traced solve is kept as an export under `~/.almond/jax-cache/exports`, so a warm start takes about 5 s on a Jetson.

`ik.warm` does that first start ahead of time. It builds the IK worker exactly as a session on this robot would:

* **The robot model:** Axol × Jelly when Jelly is attached and on, otherwise the saved mount (Settings → Robot), or `kinematics.robot_model` if one is forced.
* **The gripper:** the fitted gripper, for the parcel model on Jelly.
* **The rest:** the shared IK settings and the IK worker's XLA flags.

It then runs the worker's startup: both solve variants and the move to the rest pose. Nothing moves and no hardware is opened.

```bash theme={null}
axol ik.warm
```

It runs automatically as the last step of [`provision`](/cli/provision), which every install and update runs, so a robot comes back from an update ready to go. Run it by hand after pulling a development checkout, or after changing the robot model, to take the compile out of the next session's start. A model picked only for a sim run still compiles on its first use.

Set `ALMOND_IK_EXPORTS=0` to make the IK trace its solve on every start instead of reusing exports.


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