Skip to main content

Introduction to Abilities

Abilities are modular extensions that enhance the functionality of your OpenHome Agents. They act as plugins, enabling your Agents to perform specialized tasks, such as fetching data from the web, controlling smart devices, or executing complex commands tailored to your project’s requirements. With Abilities, you can:
  • Add Trigger Words to define specific phrases or commands that activate a particular Ability.
  • Use the Marketplace to explore and install community-created Abilities.
  • Customize or create your own Abilities through the Live Editor.

The Abilities Page

The Agent Abilities page lists every Ability you can access. Agent Abilities page showing Ability cards across the Skill, Local, and Background Daemon categories Agent Abilities page showing Ability cards across the Skill, Local, and Background Daemon categories
  • Tabs: All Abilities, My Abilities, Installed Abilities, Marketplace Abilities.
  • Explore more: opens the Marketplace.
  • Each Ability card shows its icon, name, category (Skill, Agent Controlled, Background Daemon, or Local, see Ability Categories), description, an Enabled toggle, and its trigger word count, plus Share and a More actions menu.

Creating an Ability

Click Create Ability to choose how to build it: Create Ability dialog Create Ability dialog

Design Ability with AI

This opens the Live Editor tagged Designing with AI, with a full-page AI Agent chat pane instead of the code editor. A Start from a template row across the top lets you jump straight to a template, each labelled with its category, and the Files, Settings, and Local Abilities panels stay empty until the Ability exists. Design Ability with AI, showing the template shortcuts and the AI Agent's opening question Design Ability with AI, showing the template shortcuts and the AI Agent's opening question Describe the Ability you want to build. The AI Agent works out the details and shows them back as an Ability details card, its Name, Type, Trigger Words, Description, and the Template it picked as a starting point, then asks you to confirm. AI Agent proposing the Ability name, type, trigger words, description, and template before creating it AI Agent proposing the Ability name, type, trigger words, description, and template before creating it Confirm, and it creates the Ability and opens the regular Live Editor with the files scaffolded and your trigger words already set. The created Ability open in the Live Editor with its scaffolded main.py The created Ability open in the Live Editor with its scaffolded main.py From here the Ability exists but does nothing yet. Write your own logic in main.py, either by hand or with the in-editor AI assistant (Open AI Agent in the Logs console). See How to Build an Ability for the code side.

Jumpstart with Template

Start from a ready-made Ability. Templates map directly to the ones in the OpenHome Abilities repository, Music Player, Wikipedia, OpenClaw, Smart Home, Hermes, and more, tagged by category (Skill, Agent Controlled, Background Daemon, or Local). Jumpstart with an Ability template Jumpstart with an Ability template Picking a template prompts for:
  • Ability name.
  • Trigger Words: the spoken phrases that activate it. Templates pre-fill a starting set, remove any with its x or add more.
Naming an Ability and reviewing its trigger words Naming an Ability and reviewing its trigger words Confirming opens the Live Editor, already populated with the template’s files.

The Live Editor

Live Editor for a newly created Ability Live Editor for a newly created Ability
  • Files: the Ability’s source files (for example main.py, README.md). New File and Upload File add to them, each file has a Delete file control, and Information and Documentation link out to reference material.
  • Code editor: edit the selected file directly. Its toolbar has Save, Download, Discard Changes, New Commit, and Commit History.
  • Settings: Interactive Interruption, Auto Interrupt, and AI Coding Agent toggles. If a DevKit is online and connected, an Advanced DevKit Controls section also appears here, see Local Abilities.
  • Triggers: the Ability’s trigger words, editable directly.
  • Local Abilities: lists every installed Local Ability with a Copy name button beside each, for the capability_name parameter when one Local Ability calls another. See Local Abilities.
  • Start Live Test: try the Ability immediately by voice, with Turn off speaker and Turn off mic beside it.
  • Logs: a console with LOGS, DEBUG, INFO, CRITICAL, ERROR, and WARNING views, plus a DEVKIT view for Local Abilities, Open AI Agent (an in-editor AI assistant), clear, minimize, and close controls.

Managing Abilities

From the Abilities page, each card has an Enabled toggle to turn the Ability on or off, a Share button, and a More actions menu with:
  • Edit: the Ability’s image, description, trigger words, and provider keys. The name is fixed once the Ability is created and cannot be changed here.
  • Code: reopens the Live Editor.
  • Version control: the Ability’s commit history.
  • Create Template: turn the Ability into a reusable template.
  • Publish to Community: submit it to the Marketplace.
  • Delete: remove the Ability.

Using Abilities in Agents

Abilities belong to your account rather than to one Agent. An Ability that is switched on with the Enabled toggle on the Abilities page is available to your Agents, and it activates when someone says one of its trigger words. There is one exception. To have an Ability run automatically at the start of every call, rather than waiting for a trigger word, set it as the Agent’s Base Ability under Model when creating or editing the Agent. The dropdown lists your enabled Abilities and starts empty, showing Choose Base Ability until you pick one, and each Agent can have one Base Ability. So there are two ways an Ability runs:
  • On a trigger word: available to any Agent while the Ability is enabled.
  • On call start: only for the Agent that has it set as its Base Ability.

Ability Categories

Every Ability falls into one of four categories: Skill, Agent Controlled, Background Daemon, or Local. See Ability Types for the full breakdown of when to use each, and Background Abilities for the background.py pattern.

Example Workflow

  1. Trigger Words: A user speaks or types a command containing a pre-defined trigger word.
  2. Ability Activation: The Agent processes the input and activates the corresponding Ability.
  3. Task Execution: The Ability performs the task and returns the response.
  4. Dynamic Feedback: The Agent adapts to the user’s input and updates its interaction history.

Abilities in the Marketplace

Abilities can be published to and installed from the Marketplace, where the community browses, installs, and shares what others have built.

See also