Skip to main content
Skills are atomic robot capabilities that BASIC chains together to accomplish complex, long-horizon behaviors. Each skill encodes a single capability—physical (manipulation, navigation) or digital (emails, API calls)—that can be combined with others to form coherent action sequences. When BASIC receives a request like “check on grandma,” it decomposes this into a skill chain: navigate to bedroom → look around → send picture via email → speak reassurance. Four skills, one coherent behavior.

Two Types of Skills

Skills are defined in one of two ways.

Code-Defined Skills

Code-defined skills are Python classes with explicit logic. The runtime injects declared interfaces, and BASIC reads your signature/docstrings to call the skill correctly.
import math
from brain_client.skill_types import Skill, SkillResult, Interface, InterfaceType

class LookAround(Skill):
    mobility = Interface(InterfaceType.MOBILITY)
    head = Interface(InterfaceType.HEAD)

    @property
    def name(self):
        return "look_around"

    def execute(self, num_directions: int = 4):
        """Rotate and scan the environment."""
        if self.mobility is None or self.head is None:
            return "Required interfaces not available", SkillResult.FAILURE

        num_directions = max(1, num_directions)
        self.head.set_position(-15)
        self.mobility.rotate((2 * math.pi) / num_directions)
        return "Scan complete", SkillResult.SUCCESS

    def cancel(self):
        return "Cancelled"
Use this style when you want deterministic physical control, digital/API operations, explicit sequencing, or custom sensor processing.
Policy-defined skills are learned policies trained from demonstrations. For manipulation, the current workflow uses ACT (Action Chunking with Transformers).
{
  "name": "pick_cup",
  "type": "learned",
  "guidelines": "Use when you need to pick up a cup",
  "execution": {
    "model_type": "act_policy",
    "checkpoint": "policy_step_50000.pth"
  }
}
Use this style when behavior is easier to learn from data than encode by hand, especially for visuomotor manipulation.

Skill Directories

Skills are auto-discovered from two directories:
DirectoryPurpose
~/skills/Your custom skills
innate-os/skills/Built-in templates and examples
Skill TypeFormat
Code-defined*.py Python class extending Skill
Policy-defined<name>/metadata.json + model checkpoint
No registration required. Drop a file in the right place and the robot loads it on startup.