Skip to main content

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

Run it from another terminal to check on it or shut it down:

curry-leaves-assistant status   # is it running, and as which pid?
curry-leaves-assistant stop     # graceful shutdown (SIGKILL only if it overruns)

stop finds the server through ~/.curry-leaves/service.pid, so it works whether the backend was started by this CLI or by the desktop app.

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, so by default you're running the last published UI even if you have local UI edits. To run your own instead:

./start.sh local               # build the sibling web checkout from source, then serve that

local rebuilds the UI on every run, so a UI change just needs a restart. It looks for the web repo next to this one (override with CURRY_LEAVES_WEB_DIR) and fails rather than falling back to the published bundle, so you can't end up debugging a change that was never loaded. For hot reload instead, run npm run dev in the web repo 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

Release files for curry-leaves-assistant 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for curry-leaves-assistant 1.4.0
File Size Uploaded
curry_leaves_assistant-1.4.0.tar.gz 33.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for curry-leaves-assistant 1.4.0
File Interpreter ABI Platform
curry_leaves_assistant-1.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 68.0 MB

Release files / curry_leaves_assistant-1.4.0.tar.gz

Download URL curry_leaves_assistant-1.4.0.tar.gz
Size 33.9 MB
Tags Source
SHA-256 checksum
How to use checksums
2813f8d5ed0f05a1b5a884dd13de56d4eddcf2cb0b24665cbcc39572d701a4cd
BLAKE2b-256 checksum
How to use checksums
5f134b2c1f438bfeb9f6d8e4ecd6d75c67c3a1ae29311773fbd6867f4be5fca9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.0

Release files / curry_leaves_assistant-1.4.0-py3-none-any.whl

Download URL curry_leaves_assistant-1.4.0-py3-none-any.whl
Size 34.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
22bb54f8a0fd3a5660c1dbe3303570d386cd25340233f27665b845c78437cbd5
BLAKE2b-256 checksum
How to use checksums
bed4774f3cb7413b4a4df808bf8090532e811147233b99427d4f47077689db85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.0

Release history Release notifications | RSS feed

1.5.0

2 release files

This release

1.4.0 This release

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page