Skills Overview¶
A Skill is Effero's atomic unit of capability. Every skill declares:
- An MCP tool schema — name, typed inputs/outputs, and a description the planner reasons over.
- A safety class — how much autonomy this skill is trusted with.
- An adapter binding — which piece of the Device Abstraction Layer carries it out.
Safety classes¶
Every skill must declare one of four safety levels:
| Safety Class | Behavior | Example |
|---|---|---|
READ_ONLY |
Cannot change external state. Runs autonomously. | get_temperature, take_screenshot |
ACT_AUTONOMOUS |
May act without human approval. | lights.turn_off, emergency_stop |
ACT_WITH_APPROVAL |
Pauses for human confirmation before executing. | arm.move_joints, shell.execute |
ACT_RESTRICTED |
Simulation/dry-run only until explicitly promoted. | New community skills |
Default is safe
If you omit safety_class in a @skill(...) decorator, it defaults to ACT_WITH_APPROVAL — the conservative choice.
Skill domains¶
| Domain | Example skills | Adapter |
|---|---|---|
| Robotics | navigate, pick_place, follow_person, e_stop | ROS 2 |
| Smart home / IoT | lights, thermostat, locks, sensors | MQTT · Matter · Zigbee |
| Microcontrollers | read_sensor, set_pin, drive_motor | Serial / GPIO |
| Computer use | open_app, click, type, read_screen, run_shell | OS-level adapter |
| Cloud / web | call_api, send_email, query_database | Generic REST adapter |
Browse all skills¶
See the auto-generated Skill Catalog for a complete list of all registered skills.
Add your own¶
See Writing a Skill for the step-by-step guide.