Both types are called the same way, so agents and other skills don’t need to know which kind they use.
Code skills
Write a skill in Python: the Skill class, results, cancellation, composition.
Policy-defined skills
Trained policies and recorded replays.
Where skills live
Defining a
Skill subclass in any .py file registers it. No config file needed. To use a skill in an agent or another skill, import its class. The class name in snake_case is the name the apps show, so VictorySpin appears as victory_spin. Everything reloads on save, and a file that fails to import shows up in the web app with its error.
A policy-defined skill is a folder with a metadata.json and a checkpoint, for example custom_skills/pick_socks/.
To install a skill pack stored elsewhere, symlink it into workspace/:
Shipped skills
Don’t edit these in place, because updates overwrite them. Copy one intocustom_skills/ and rename the class.
Run a skill manually
Running a skill by hand skips the agent. It’s the fastest way to test one.- Web app
- Phone app
- Terminal
On the Teleop page, click Skills and pick one.

