> For the complete documentation index, see [llms.txt](https://docs.dextoros.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dextoros.app/skills-and-training/teach-a-skill.md).

# Teach a skill

Show one robot a task, then share the skill with every robot that can run it.

{% hint style="warning" %}
**Draft.** Some details on this page are still being confirmed and may change. Questions? Email <info@dextoros.app>.
{% endhint %}

You show one robot how it is done. DextorOS keeps the motion as a skill, not a script, and shares it with every robot that has the hardware to run it.

## How a skill spreads

{% stepper %}
{% step %}

## Teach

An operator guides one robot, the **teacher**, through the task. For example, guiding `ARM-02` through a pick.

Press and hold **Hold to teach** to record a demonstration on the teacher robot. Keep holding until it finishes recording.
{% endstep %}

{% step %}

## Share

The skill goes out to every robot that can use it. DextorOS first checks each robot for the [capabilities](/skills-and-training/capabilities.md) the skill needs, so nobody rewrites it for another maker.
{% endstep %}

{% step %}

## Adapt

Wheels, legs and joints each work it out. Every body maps the same skill onto its own motors and sensors.
{% endstep %}

{% step %}

## Scale

Then the rest of the floor picks it up. One lesson reaches every capable robot.
{% endstep %}
{% endstepper %}

## Every practice run makes the skill better

Compatible robots add their episodes to one shared dataset. When a training run finishes, the new version goes back to all of them.

```mermaid
flowchart LR
    A[Ready] --> B[Collecting episodes]
    B --> C[Training]
    C --> D[Evaluating]
    D --> E[Published]
    E -.->|next session| B
```

| Phase                   | What happens                                                                                                                                  |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Collecting episodes** | Every robot running the skill adds its practice runs to the shared dataset. Failed attempts, like a slipped grasp, are kept for training too. |
| **Training**            | DextorOS trains a new version on the whole shared dataset, from every platform.                                                               |
| **Evaluating**          | The new version is tested on held-out episodes and compared with the current version.                                                         |
| **Published**           | The new version goes back to every robot that runs the skill.                                                                                 |

You can pause and resume a session while it is collecting episodes.

## Related

* [Which robots can run a skill](/skills-and-training/which-robots-can-run-a-skill.md)
* [Skill versions](/skills-and-training/skill-versions.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.dextoros.app/skills-and-training/teach-a-skill.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
