Local-first AI memory assistant for your meetings.
Record β Transcribe β Extract Tasks β Search β all on your own machine.
Download β’ Features β’ Architecture β’ Getting Started β’ API Docs β’ Roadmap β’ Contributing
Get the latest installer for Windows from the Releases page.
- Download
MemoryLens Setup 0.2.0.exe. - Run the installer and follow the instructions.
- (Optional) Install the MemoryLens Browser Extension for speaker identification.
| Feature | Description |
|---|---|
| ποΈ Smart Audio Capture | Records both your mic and system audio (Zoom, Meet, Teams) simultaneously via WASAPI loopback |
| π Local Transcription | Powered by Faster-Whisper β no data leaves your machine |
| π₯ Speaker Identification | Maps speaker names from browser extension signals + voice anchoring |
| β Task Extraction | Automatically detects action items like "Aman, please finish the audit by Friday" |
| π Natural Language Search | Ask questions like "What did Rahul promise last week?" |
| π§βπ€βπ§ People Tracker | Track who you met, what was discussed, and tasks assigned to each person |
| π 100% Private | All processing runs locally β audio, transcription, and LLM inference on your own hardware |
| π₯οΈ Desktop App | Cross-platform Electron wrapper with a modern Next.js UI |
Meeting Platform (Google Meet / Zoom / Teams)
β
Browser Extension β sends speaker events via HTTP
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MemoryLens Desktop Agent β
β β
β βββββββββββββββ ββββββββββββββββ βββββββββββ β
β β Audio ββ β Transcriptionββ β Speaker β β
β β Recorder β β (Whisper) β β Mapper β β
β βββββββββββββββ ββββββββββββββββ βββββββββββ β
β β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β Memory Engine ββ
β β ββββββββββββββ βββββββββββββ βββββββββββββ ββ
β β β Task β β Summary β β Meeting β ββ
β β β Extractor β β Generator β β Processor β ββ
β β ββββββββββββββ βββββββββββββ βββββββββββββ ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββ
β β β
β ββββββββββββββββ ββββββββββββββββββ β
β β SQLite DB β β Semantic Search β β
β ββββββββββββββββ ββββββββββββββββββ β
β β β
β ββββββββββββββββ β
β β FastAPI β β REST API (localhost:8000) β
β ββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββ
β Electron + β
β Next.js UI β
ββββββββββββββββ
- Python 3.10+
- Node.js 18+
- A working microphone (system audio capture available on Windows via WASAPI)
git clone https://github.com/Yashkush06/MemoryLens.git
cd MemoryLenscd memorylens
pip install -r requirements.txt# Copy the example env file and fill in your values
cp .env.example .envImportant: Set
MEMORYLENS_SECRET_KEYto a strong random string before running. Generate one with:python -c "import secrets; print(secrets.token_hex(32))"
python scripts/run_agent.pyThe API will be live at http://localhost:8000.
Open http://localhost:8000/docs for the interactive Swagger UI.
cd frontend
npm install
npm run devThe UI will be at http://localhost:3000.
cd electron
npm install
npm start| Method | Endpoint | Auth | Description |
|---|---|---|---|
GET |
/ |
β | Health check |
POST |
/auth/register |
β | Register a new account |
POST |
/auth/login |
β | Login and get JWT |
GET |
/auth/me |
β | Get current user |
POST |
/meeting/start |
β | Start recording a meeting |
POST |
/meeting/end |
β | Stop recording and process |
GET |
/meetings |
β | List all meetings |
GET |
/meeting/{id} |
β | Get meeting detail + transcript |
POST |
/upload_meeting |
β | Upload an existing audio file |
GET |
/tasks |
β | List extracted tasks |
PATCH |
/tasks/{id} |
β | Toggle task completion |
GET |
/people |
β | List known people |
GET |
/people/{id}/insights |
β | Get insights for a person |
POST |
/search |
β | Natural language search |
GET |
/system/models/status |
β | Check AI model status |
POST |
/system/models/download |
β | Download Whisper model |
Full interactive docs at: http://localhost:8000/docs
All settings are controlled via environment variables prefixed with MEMORYLENS_.
Copy .env.example to .env to get started.
| Variable | Default | Description |
|---|---|---|
MEMORYLENS_SECRET_KEY |
(required) | JWT signing secret β change this |
MEMORYLENS_API_HOST |
127.0.0.1 |
API bind address |
MEMORYLENS_API_PORT |
8000 |
API port |
MEMORYLENS_WHISPER_MODEL_SIZE |
base |
Model size: tiny, base, small, medium, large-v2 |
MEMORYLENS_WHISPER_DEVICE |
cpu |
cpu or cuda |
MEMORYLENS_USE_OLLAMA |
false |
Enable local Ollama LLM |
MEMORYLENS_OLLAMA_MODEL |
llama3 |
Ollama model to use |
MEMORYLENS_LOG_LEVEL |
INFO |
Logging level |
MemoryLens/
βββ memorylens/ # Python backend
β βββ api/ # FastAPI server and routes
β βββ audio/ # Audio recording (mic + WASAPI loopback)
β βββ transcription/ # Faster-Whisper transcription engine
β βββ speaker_mapping/ # Speaker identification from events
β βββ memory_engine/ # Task extraction, summaries, processing
β βββ search/ # Hybrid text + semantic search
β βββ database/ # SQLAlchemy models and CRUD
β βββ extension_api/ # Browser extension interface
β βββ config/ # Pydantic settings
β βββ shared/ # Logging, utilities
β βββ requirements.txt
βββ frontend/ # Next.js UI
β βββ src/
β βββ app/ # Next.js App Router pages
β βββ components/ # React components
βββ electron/ # Desktop app wrapper
β βββ main.js # Electron main process
β βββ preload.js # Electron preload
βββ .env.example # Environment configuration template
βββ .gitignore
- Audio capture (mic + system audio via WASAPI)
- Faster-Whisper transcription
- Task extraction from transcripts
- Natural language memory search
- JWT authentication
- Electron desktop app
- Real speaker diarization (pyannote.audio)
- LLM-powered task extraction via Ollama
- Semantic embeddings (sentence-transformers)
- Browser extension (Chrome/Firefox)
- Conversation replay with audio clips
- Export meetings to PDF / Markdown
Contributions are welcome! Please read CONTRIBUTING.md to get started.
This project is licensed under the MIT License β see LICENSE for details.