Skip to main content

Build Voice AI Plugins for OpenHome

Create modular abilities that extend OpenHome agents with custom voice interactions, API integrations, audio playback, background monitoring, and local command execution.

Quick start

Build and upload your first Ability in under 5 minutes

1

Pick a template

Clone the repository and copy a starter template:
git clone https://github.com/openhome-dev/abilities.git
cp -r abilities/templates/basic-template my-first-ability
cd my-first-ability
2

Edit main.py

Customize the ability logic. Every ability has three core parts:
async def run(self):
    # 1. Speak to the user
    await self.capability_worker.speak("Hello! How can I help?")
    
    # 2. Listen for input
    user_input = await self.capability_worker.user_response()
    
    # 3. Respond and exit
    response = self.capability_worker.text_to_text_response(
        f"Help the user with: {user_input}"
    )
    await self.capability_worker.speak(response)
    self.capability_worker.resume_normal_flow()
The #{{register capability}} comment is required boilerplate. The platform handles config.json automatically — you never need to create or edit it.
3

Upload to OpenHome

Zip your folder and upload it:
  1. Go to app.openhome.comAbilitiesAdd Custom Ability
  2. Upload your zip file
  3. Set trigger words in the dashboard (phrases that activate your ability)
  4. Test in the Live Editor
4

Trigger it

Start a conversation with any OpenHome agent and say one of your trigger phrases. Your ability takes over the conversation until you call resume_normal_flow().

What can you build?

Abilities are modular voice AI plugins that can do anything — call APIs, play audio, control devices, or monitor conversations

Voice interactions

Multi-turn conversations with speech-to-text and text-to-speech

API integrations

Connect to external services like Perplexity, Spotify, or custom APIs

Audio playback

Stream music, play sound effects, or generate AI audio

Background daemons

Monitor conversations, set alarms, or run scheduled tasks

Local commands

Execute commands on the user’s device via WebSocket

File storage

Persist state and coordinate between skills and daemons

Ready to build your first ability?

Follow our quickstart guide to create, test, and upload a custom voice AI plugin in under 5 minutes

Get Started

Build docs developers (and LLMs) love