explaingit

getlark/openlily

Analysis updated 2026-05-18

16PythonAudience · developerComplexity · 3/5Setup · moderate

TLDR

OpenLily is a private voice assistant that runs locally on your machine, supporting swappable speech and language models, a wake word, and optional tools like web search and email.

Mindmap

mindmap
  root((openlily))
    What it does
      Voice in voice out
      Wake word
      Tool use
    Brains
      OpenAI standard
      Cartesia plus OpenAI
      Fully local Ollama
    Tools
      Web search
      Browser automation
      Email
    Audience
      Developers
      Privacy-focused users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run a private voice assistant on your desktop or Raspberry Pi without a cloud account

USE CASE 2

Connect a wake-word assistant to web search, browser automation, or email tools

USE CASE 3

Swap speech-to-text and language model providers without rewriting application code

What is it built with?

PythonOpenAI APIOllamaPipecatopenWakeWord

How does it compare?

getlark/openlilyadya84/ha-world-cup-2026afk-surf/safeclipper
Stars161616
LanguagePythonPythonPython
Setup difficultymoderateeasymoderate
Complexity3/52/53/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires PortAudio for microphone access, at least one AI provider API key, and Node.js if you want the browser automation tool.

In plain English

OpenLily is a voice assistant you run on your own computer, similar in concept to Alexa or Google Home but fully under your control. You speak into your microphone, the system processes your words, sends them to a language model, and speaks the answer back through your speakers. There is no cloud service in the loop unless you choose one, and no subscription or account is required. The project is built to be configurable at every step. The speech-to-text, language model, and text-to-speech pieces can each be swapped independently. You can use OpenAI's API for all three, use a local model running on your own hardware through Ollama, or mix providers. There is also a fully offline option using MLX Whisper for speech recognition, Ollama for the language model, and Kokoro for voice output, which currently requires Apple Silicon hardware. A wake word feature is built in using an on-device model called openWakeWord, so the assistant sits idle and only starts listening when it hears a chosen phrase. No internet connection is needed for wake word detection. Turn-taking (deciding when you have finished speaking) is handled by two on-device models: Silero VAD and Smart Turn v3. Tools are available as optional add-ons: web search, browser automation using Playwright, and email. Each tool is opt-in, so you enable only what you need. Setup requires running from the server directory, installing dependencies with uv, and installing PortAudio on your operating system for microphone access. A configuration file handles API key selection and brain choice. The first run is slower because on-device models download once. OpenLily is aimed at developers and technically inclined users who want a private, customizable voice assistant that they can run on a desktop, a Raspberry Pi, or a small dedicated machine.

Copy-paste prompts

Prompt 1
Walk me through setting up openlily with the cartesia_openai brain, including PortAudio and API key configuration.
Prompt 2
How do I switch openlily to run fully locally on Apple Silicon using mlx-whisper and Ollama with no API keys?
Prompt 3
Write a custom tool for openlily that reads today's calendar events and speaks them back when asked.
Prompt 4
What are the practical differences between the openai_standard, cartesia_openai, and openai_realtime brain options?

Frequently asked questions

What is openlily?

OpenLily is a private voice assistant that runs locally on your machine, supporting swappable speech and language models, a wake word, and optional tools like web search and email.

What language is openlily written in?

Mainly Python. The stack also includes Python, OpenAI API, Ollama.

How hard is openlily to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is openlily for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub getlark on gitmyhub

Verify against the repo before relying on details.