Curry Leaves Assistant — voice & meeting assistant with an event-driven agent pool. FastAPI backend + bundled web UI, one `pip install`, one command to run.
Project description
Curry Leaves AI Assistant
Your private second brain — it listens, remembers, and gets things done. All on your own machine.
Docs · Install · User guide · How it's built
What it does
- 🎙️ Records & transcribes meetings and voice notes — on your machine, with Whisper.
- ✍️ Summarizes each recording and pulls out action items automatically.
- 🧠 Remembers what matters in a personal knowledge base that links back to the exact moment it was said.
- 🤖 Runs a team of AI assistants that react to new recordings, run on a schedule, or answer when you ask.
- ✅ Starts work on its own — add an actionable to-do and the team just does it, attaching the result back to the item.
- 🗣️ Listens & speaks — hands-free voice chat and a "Hey Curry" wake word, with speech generated locally too.
- 📈 Learns from your conversations and gets better at its jobs over time — it doesn't reset every chat.
- 📊 Keeps a live dashboard of what's open, what's decided, and what's next.
- 🔗 Makes shareable artifacts — decks, reports, one-page sites — each with a revocable public link.
- 🔒 Yours, on disk. Everything is plain files under
~/.curry-leaves/— no cloud, no lock-in.
Bring your own AI: GitHub Copilot (no key), Anthropic, OpenAI, Ollama, or any OpenAI-compatible endpoint. Extend it with any MCP server, and every run is fully traced and metered down to per-assistant weekly cost.
A knowledge base that builds itself
Every recording is distilled into a linked note — tags, a summary, action items, and links to the people, topics, and facts it mentions — with provenance back to the exact moment in the transcript. Your knowledge becomes a connected graph, not a folder of files.
A meeting, filed automatically into a cross-linked note with sources and related notes.
…and it's yours to ask
Then just ask. Your assistants already know your recordings, tasks, and knowledge — and answer with tools, citing where the answer came from.
Ask AI — recall an answer, and click the provenance to hear the exact moment it was decided.
…and the team starts on its own
Jot down an actionable to-do and you don't have to lift another finger: a triage assistant hands it to the team, the Lead routes it to the best fit, and the finished result lands back on the item. The dashboard keeps the day's asks — queued, in progress, and waiting on your review — in one glance.
Post an ask, watch the team pick it up, and see the result delivered — all on the live dashboard.
…and it gets better the more you use it
Unlike a chatbot that forgets you the moment a chat ends, Curry Leaves learns from real work:
- Learns about you — a nightly pass reads your conversations and distills durable facts (your name, how you like things done) and notable events into memory, so you never re-explain yourself.
- Consolidates lessons — clusters of related events are folded into durable takeaways every assistant can draw on.
- Improves its skills — when a run fails or takes the long way round, the assistant reflects on that specific case and writes a better way to do the task next time.
It's all curated, deduped, and stored as plain files you can read and edit — see the Memory & Learning section of the user guide.
Install
Python 3.11+ required. One command installs the app and the server — the wheel bundles the web UI:
pip install curry-leaves-assistant
curry-leaves-assistant # then open http://localhost:5177
On first launch a quick setup wizard adapts to how you'll use it — your name, language, transcription, optionally voice and knowledge, your AI provider, and a PIN.
Prefer Docker? With Docker Desktop, from a checkout of this repo (everything, including the kernel, is pulled from PyPI at build time):
cp src/curry_leaves_assistant/.env.docker.example .env # first time — add a key, or use Copilot login
docker compose up --build # then open http://localhost:5177
Transcription uses
mlx-whisperon Apple Silicon andfaster-whispereverywhere else — automatically, no action needed. Voice output (spoken replies) additionally needs theespeak-ngbinary (brew install espeak-ng/apt install espeak-ng); everything else works without it.
Documentation
- User guide — the single end-user manual: how to use every screen, an FAQ, and a tour of what changes in your day. (source)
- Architecture — how the whole thing is built, for contributors.
- Design docs — deep dives on the Work Kernel, knowledge base, tracing, and more.
- Contributing · Changelog — how to set up, the conventions, and what's changed.
Run from source
python3 -m venv .venv
.venv/bin/pip install -e . # this backend, editable — pulls the curry-leaves kernel from PyPI
./start.sh # fetches the prebuilt web UI, then serves everything at http://127.0.0.1:5177
./start.sh does all of the above for you: it sets up the venv, unpacks the published web
UI into the package, and runs the backend, which serves the UI on its own port.
The web UI lives in its own repo,
curry-leaves-assistant-web — a standalone React app published
to npm as a static bundle. This backend fetches and serves that bundle; to hack on the UI with
hot reload, run npm run dev there against a running backend (see its README).
The Electron desktop app lives in the sibling
curry-leaves-assistant-desktop repo — it builds the same
web UI and spawns this same backend, so nothing is duplicated.
License
Source-available under the MIT License with the Commons Clause: every MIT freedom — use it personally or at work, modify it, distribute it, self-host it for your own team — except selling it (the software itself or hosting/support built substantially on it).
Models
The on-device models are downloaded at runtime rather than bundled. Each is under a permissive license (Apache-2.0 or MIT) — free to use, including commercially. The wake-word model is ours; the rest are third-party:
| Model | Used for | Source | License |
|---|---|---|---|
| Curry Leaves wake word (ours) | Wake-word detection | ilayanambi/curry-leaves-open-wake-word-model |
Apache-2.0 |
| Kokoro-82M | Text-to-speech | hexgrad/Kokoro-82M |
Apache-2.0 |
| all-MiniLM-L6-v2 | Text embeddings | sentence-transformers/all-MiniLM-L6-v2 |
Apache-2.0 |
| Whisper (faster-whisper) | Transcription | Systran/faster-whisper-* |
MIT |
| Whisper (mlx-whisper) | Transcription (Apple Silicon) | mlx-community/whisper-* |
MIT |
| Distil-Whisper | Transcription (distilled) | distil-whisper/distil-large-v3 |
MIT |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file curry_leaves_assistant-1.1.0.tar.gz.
File metadata
- Download URL: curry_leaves_assistant-1.1.0.tar.gz
- Upload date:
- Size: 32.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a373369f05d1d91ff92ce790141eff27d1c75ca97b54e7c395de2a8a728565a
|
|
| MD5 |
85bfde5e23a9381dd65fb82916daca75
|
|
| BLAKE2b-256 |
aca622200f9bc0263eff6911ff288e47a6e96b807fd366961579d87dabc2a553
|
File details
Details for the file curry_leaves_assistant-1.1.0-py3-none-any.whl.
File metadata
- Download URL: curry_leaves_assistant-1.1.0-py3-none-any.whl
- Upload date:
- Size: 32.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e642f8214a47dfe348b2eef1133ff085967239eff3bd48afda1bb1d40b2e78f
|
|
| MD5 |
f03134b29bda0dfa1c27b0aeb703e350
|
|
| BLAKE2b-256 |
e35801dcd5c1be8a4bd154f55f637f3eb0f85ecf468c19851c325541e22e44d3
|