Aurora is an Alexa / Google Home style assistant implemented in python. The project includes a headless UX that just needs audio, and an implementation that runs on Raspberry PI 4 with the Adafruit BrainCraft HAT.
Aurora uses the OpenAI realtime API. You need an OpenAI API Key. Wake word detection uses Picovoice Porcupine and you need a free API key and model file.
Read the release post on my blog.
Aurora supports a plugin system for tools. The following are included:
- Timers - set, list and delete timers by name.
- Cooking - help cook a recipe step by step.
- Perplexity Sonar - look up information using the Sonar API.
- Todoist - add shopping and to do list items.
- LIFX light control - turn on and off LIFX smart light bulbs.
- Next Transit - get predicted arrival times for a configured Bay Area public transit route.
- Cheese Night - a simple tool to decide which kid gets the first pick of chores.
Tools are only included in realtime calls if configured (see .env.example). To add a new tool just inherit from the Tool base class and add any required settings. If you add something useful please send a pull request. The realtime API has support for server MCP in addition to local tools, this is not supported yet but would be straightforward to add.
Get the headless version up and running:
- Clone this repo.
- Create a Python virtual environment (recommended).
- Install common dependencies (
pip install -r requirements.txt). - Copy .env.example to .env and follow the instructions within to configure.
- Run main.py and start talking!
This is the version pictured above.
- Follow the headless instructions above.
- Install BrainCraft dependencies (
pip install -r requirements-braincraft.txt) - In .env change
UItoBraincraftand provide paths to required assets (the assets folder of this project has some examples to get you started). - Run main.py and start talking!
Once you have a Raspberry PI 4 and BrainCraft HAT follow these instructions to make sure the HAT is configured and working properly.
A simple case can be printed to house this version.
Pull requests welcome. Aurora started as a side project to explore LLM based voice assistants. I expected a lot of commercial and open source alternatives but so far nothing has hit the market that I like as much as this implementation. I don't want to be marketed to by Alexa, but I also don't want a local-LLM privacy first assistant that sacrifices intelligence and flexibility. Aurora uses the state of the art and prioritizes power over cost. If you like this vision then help make this better - more tools and platforms especially welcome.
