Skip to main content

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 logo

Curry Leaves AI Assistant

Your private second brain — it listens, remembers, and gets things done. All on your own machine.

PyPI version license: MIT + Commons Clause python: >=3.11 Documentation GitHub repo

Docs · Install · User guide · How it's built

The dashboard: posting an ask, the Lead routing it to an assistant, the assistant working, and the result landing back

Recording a meeting, watching the live transcript build, then stopping to summarize it


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 distilled into a knowledge note — tags, notes, action items, and links to people, topics, sources, and a mini graph
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.

Asking an assistant a question and getting a finished, tool-backed answer
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.

The dashboard: posting an ask, the Lead routing it to an assistant, the assistant working, and the result landing back
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.

The first-run setup wizard — pick what you'll use it for, and it tunes which steps you see

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-whisper on Apple Silicon and faster-whisper everywhere else — automatically, no action needed. Voice output (spoken replies) additionally needs the espeak-ng binary (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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

curry_leaves_assistant-1.0.0.tar.gz (32.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

curry_leaves_assistant-1.0.0-py3-none-any.whl (32.4 MB view details)

Uploaded Python 3

File details

Details for the file curry_leaves_assistant-1.0.0.tar.gz.

File metadata

  • Download URL: curry_leaves_assistant-1.0.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

Hashes for curry_leaves_assistant-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3b1808ee44428fa03aaa338e82c9b1499ccfefe9d95e04fa39541ab82c664f53
MD5 dd0a73c8bde6df4137e98840b96fc58c
BLAKE2b-256 7649faf64b6f54f75afde0b170ea20d99f83809c2d88945b4f443943decad774

See more details on using hashes here.

File details

Details for the file curry_leaves_assistant-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for curry_leaves_assistant-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d02c348f2c10c45d5c7aa7c85262c9a9774931e41fd8b6166364753d2d6bd1e1
MD5 ee8a60d380472d82ed5da77ed35906ab
BLAKE2b-256 541e2973382e39171b4d2cc5c396aaf633134147e64ada3216cf291c6b053190

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page