openhome-dev/abilities

Open-source abilities for OpenHome agents.

What it solves

A language model can't do everything from a conversation alone — it can't fetch live data, control physical devices, play audio, or remember across sessions. OpenHome Abilities solves that by providing ready-made Python plugins that give a voice assistant these new powers, so you can ask it to check the weather, play a podcast, or turn on smart lights.

How it works

An Ability is a Python plugin, usually just a main.py file, that gets triggered by spoken trigger words. OpenHome handles speech-to-text, the LLM, text-to-speech, and routing — you write the logic. The plugin uses a CapabilityWorker object to speak, listen, call the LLM, and store files. There are four ability types: Skill (runs once on a trigger word), Agent Controlled (the agent decides when to run it), Background Daemon (loops during a session), and Local (runs on DevKit hardware). The repo includes starter templates for each type, official abilities, community contributions, and a CLI that automates building, testing, and pushing abilities.

Who it's for

Developers who want to build custom voice features for an OpenHome agent, or users who want to install community-built abilities. It's also useful for anyone learning to create plugins for voice AI systems, with templates and a contribution guide for sharing results.

Highlights

  • Official abilities maintained by the OpenHome team (weather, music, quizzes, web search, and more)
  • Community-contributed abilities with a security review before merging
  • Starter templates covering all four ability types, from basic loops to smart-home and local hardware control
  • A CLI that lets you create, voice-test, push, and sync abilities from the terminal
  • Simple contribution process: fork, copy a template, build, validate, and open a pull request

Related

  • Project
  • Project
  • Project
  • Project