Skip to content

Repository files navigation

Clueme Meetings Logo

Your local, privacy-first meeting assistant.
Capture system audio, transcribe in real time with Whisper, and chat with AI about your meetings.

Getting Started • Features • How It Works • Roadmap • License


Chat with AI about your meeting

What is Clueme?

Clueme Meetings is a desktop app that sits alongside your video calls and meetings. It captures your system audio, transcribes everything locally using Faster Whisper, and gives you an AI chat interface powered by Google Gemini to ask questions, get summaries, and extract action items from your meetings -- all in real time.

No cloud transcription. Your audio never leaves your machine. Only the text transcript is sent to Gemini when you choose to chat.

Features

  • Real-time local transcription -- Audio is captured via WASAPI loopback and transcribed on-device with Faster Whisper. No data leaves your machine.
  • AI-powered chat -- Ask Gemini about your meeting: get summaries, action items, key decisions, or anything else.
  • Session management -- Save, rename, and revisit past meetings. Transcripts and chat history persist between sessions.
  • Multiple Whisper models -- Choose from Tiny, Base, Small, or Turbo depending on your hardware and accuracy needs.
  • Configurable audio devices -- Pick any system audio output to capture from (speakers, headphones, virtual cables, etc.).
  • Timestamped segments -- Every transcript chunk is timestamped so you can see exactly when something was said.

Screenshots

Session List Live Transcript
Session List Transcript
AI Chat Settings
AI Chat Settings

Getting Started

Prerequisites

  • Windows 10/11 (WASAPI loopback is Windows-only)
  • uv -- a fast Python package manager. It handles Python installation automatically.
  • A Google Gemini API key -- Get one free at Google AI Studio
  • NVIDIA CUDA DLLs -- If you have an NVIDIA GPU, you must manually place the following files in runtime/nvidia/cuda12/ in the project root. WARNING: If you have a GPU and skip this step, the program will silently crash!
    • cublas64_12.dll
    • cublasLt64_12.dll
    • cudart64_12.dll
    • cudnn64_9.dll
    • cudnn_adv64_9.dll
    • cudnn_cnn64_9.dll
    • cudnn_engines_precompiled64_9.dll
    • cudnn_engines_runtime_compiled64_9.dll
    • cudnn_graph64_9.dll
    • cudnn_heuristic64_9.dll
    • cudnn_ops64_9.dll
    • zlibwapi.dll

Install & Run

# Clone the repo
git clone https://github.com/Creative-Geek/Clueme-Meetings.git
cd Clueme-Meetings

# Install dependencies (uv will install Python 3.11+ if needed)
uv sync

# Run the app
uv run main.py

First launch note: uv run main.py takes around 10 seconds to start each time due to Flet's startup overhead. This is normal.

First-Time Setup

  1. Open the app and click the Settings gear icon.
  2. Paste your Google Gemini API key in the API Keys tab.
  3. Choose your preferred Whisper model (see below) and audio device.
  4. Close settings, then click Start Listening to begin capturing audio.

Model download: The first time you click "Start Listening," the selected Whisper model will be downloaded. Download sizes:

Model Size Speed Accuracy
Tiny ~75 MB Fastest Lower
Base ~142 MB Fast Good
Small ~466 MB Moderate Better
Turbo ~1.6 GB Slower Best

How It Works

graph LR
    A[System Audio] -->|WASAPI Loopback| B[Audio Capture]
    B -->|PCM Audio| C[Faster Whisper]
    C -->|Transcript| D[Session Storage]
    D -->|Context| E[Google Gemini]
    E -->|Response| F[Chat UI]
Loading
  1. Audio Capture -- PyAudioWPatch captures system audio using Windows WASAPI loopback. No microphone needed -- it records whatever your speakers/headphones are playing.
  2. Transcription -- Audio chunks are fed to Faster Whisper, which runs locally on your CPU (or GPU if available). Transcription happens in real time.
  3. Session Storage -- Transcripts, chat history, and session metadata are saved as JSON files in ~/.clueme/sessions/.
  4. AI Chat -- When you send a message, the transcript is provided as context to Google Gemini. The AI can answer questions, summarize discussions, and extract key points.

Tech Stack

Component Technology
UI Framework Flet (Flutter-based Python UI)
Transcription Faster Whisper (CTranslate2)
Audio Capture PyAudioWPatch (WASAPI loopback)
AI Chat Google Gemini via google-genai
Package Manager uv

Project Structure

Clueme-Meetings/
├── main.py                 # App entry point; wires state, handlers, views, and UI components
├── src/
│   ├── agent/              # Gemini client, model config, prompts, meeting chat, auto-naming
│   ├── app/                # Page setup and startup state initialization
│   ├── handlers/           # Event handlers for chat, recording, sessions, toolbar, and tabs
│   ├── layout/             # Home/meeting view builders and toolbar layout
│   ├── transcriber/        # Local Whisper and AssemblyAI transcription backends
│   ├── ui/                 # Flet UI components for chat, transcript, sessions, and settings
│   ├── config.py           # Local configuration management
│   ├── logs.py             # TranscriptLog, ChatLog, and Gemini message assembly
│   ├── sessions.py         # Session persistence and session list metadata
│   ├── session_context.py  # Per-session runtime state and save/load bridge
│   ├── debug_log.py        # Optional debug logging utilities
│   ├── native_runtime.py   # Native runtime/DLL path setup
│   └── whisper_online.py   # Streaming Whisper helper logic
├── assets/                 # Logo and icon files
├── docs/screenshots/       # App screenshots
├── references/             # Research notes, prototypes, and external references
├── pyproject.toml          # Project metadata and dependencies
└── uv.lock                 # Locked dependency versions

Data Storage

All user data is stored locally at ~/.clueme/:

~/.clueme/
├── config.json          # API keys, preferences, model settings
├── sessions/            # One JSON file per meeting session
│   ├── session_abc123.json
│   └── ...
└── logs/                # Application logs

Roadmap

  • GPU acceleration for Whisper (CUDA support)
  • Automatic meeting notes and summaries
  • Export transcripts to Markdown, TXT, or SRT
  • Microphone input support (capture your own voice too)
  • Refine system prompts
  • Add "What should I say?" quick action for AI
  • Web Search tool for AI (better responses for domain specific knowledge)
  • Support alternative LLM providers
  • Microphone bleeding mitigation (system audio might be picked up and repeated)
  • Search across all sessions
  • Ask AI across all sessions (Global RAG)
  • Migrate to an actual database (SQLite)
  • Context Management (compression and summarization for long transcripts)
  • Speaker diarization (who said what)
  • AssemblyAI integration as an alternative transcription backend
  • Linux support
  • MacOS support
  • Build as a standalone desktop application

Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request.

License

This project is licensed under the GNU General Public License v3.0 -- see the LICENSE file for details.

About

Your local, privacy-first meeting assistant.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages