File: README.md
Meetily PRO Upgrade Offer - Meetily PRO is available for users who need enhanced accuracy, advanced exports, custom summary workflows, and team-ready features. Use coupon code LAUNCH20 for 20% off until the next Meetily Community Edition release. Speaker diarization is also planned for PRO in mid-June. Explore Meetily PRO โ
Table of Contents
- Introduction
- Why Meetily?
- Features
- Installation
- Key Features in Action
- System Architecture
- For Developers
- Meetily PRO
- Contributing
- License
Introduction
Meetily is a privacy-first AI meeting assistant that runs entirely on your local machine. It captures your meetings, transcribes them in real-time, and generates summaries, all without sending any data to the cloud. This makes it the perfect solution for professionals and enterprises who need to maintain complete control over their sensitive information.
Why Meetily?
While there are many meeting transcription tools available, this solution stands out by offering:
- Privacy First: All processing happens locally on your device.
- Cost-Effective: Uses open-source AI models instead of expensive APIs.
- Flexible: Works offline and supports multiple meeting platforms.
- Customizable: Self-host and modify for your specific needs.
The Privacy Problem
Meeting AI tools create significant privacy and compliance risks across all sectors:
- $4.4M average cost per data breach (IBM 2024)
- โฌ5.88 billion in GDPR fines issued by 2025
- 400+ unlawful recording cases filed in California this year
Whether you're a defense consultant, enterprise executive, legal professional, or healthcare provider, your sensitive discussions shouldn't live on servers you don't control. Cloud meeting tools promise convenience but deliver privacy nightmares with unclear data storage practices and potential unauthorized access.
Meetily solves this: Complete data sovereignty on your infrastructure, zero vendor lock-in, and full control over your sensitive conversations.
Features
- Local First: All processing is done on your machine. No data ever leaves your computer.
- Real-time Transcription: Get a live transcript of your meeting as it happens.
- AI-Powered Summaries: Generate summaries of your meetings using powerful language models.
- Multi-Platform: Works on macOS, Windows, and Linux.
- Open Source: Meetily is open source and free to use.
- Flexible AI Provider Support: Choose from Ollama (local), Claude, Groq, OpenRouter, or use your own OpenAI-compatible endpoint.
Installation
๐ช **Windows**
- Download the latest
x64-setup.exefrom Releases - Run the installer
๐ **macOS**
- Download
meetily_0.4.0_aarch64.dmgfrom Releases - Open the downloaded
.dmgfile - Drag Meetily to your Applications folder
- Open Meetily from Applications folder
๐ง **Linux**
Build from source following our detailed guides:
Quick start:
git clone https://github.com/Zackriya-Solutions/meeting-minutes
cd meeting-minutes/frontend
pnpm install
./build-gpu.shKey Features in Action
๐ฏ Local Transcription
Transcribe meetings entirely on your device using Whisper or Parakeet models. No cloud required.
๐ฅ Import & Enhance `Beta`
Import existing audio files to generate transcripts, or enhance to re-transcribe any recorded meeting with a different model or language, all processed locally.
Contributed by Jeremi Joslin, improved by Vishnu P S and Mohammed Safvan
๐ค AI-Powered Summaries
Generate meeting summaries with your choice of AI provider. Ollama (local) is recommended, with support for Claude, Groq, OpenRouter, and OpenAI.
๐ Privacy-First Design
All data stays on your machine. Transcription models, recordings, and transcripts are stored locally.
๐ Custom OpenAI Endpoint Support
Use your own OpenAI-compatible endpoint for AI summaries. Perfect for organizations with custom AI infrastructure or preferred providers.
๐๏ธ Professional Audio Mixing
Capture microphone and system audio simultaneously with intelligent ducking and clipping prevention.
โก GPU Acceleration
Built-in support for hardware acceleration across platforms:
- macOS: Apple Silicon (Metal) + CoreML
- Windows/Linux: NVIDIA (CUDA), AMD/Intel (Vulkan)
Automatically enabled at build time - no configuration needed.
System Architecture
Meetily is a single, self-contained application built with Tauri. It uses a Rust-based backend to handle all the core logic, and a Next.js frontend for the user interface.
For more details, see the Architecture documentation.
For Developers
If you want to contribute to Meetily or build it from source, you'll need to have Rust and Node.js installed. For detailed build instructions, please see the Building from Source guide.
Meetily Pro
Meetily PRO is a professional-grade solution with enhanced accuracy and advanced features for serious users and teams. Built on a different codebase with superior transcription models and enterprise-ready capabilities.
Community Thank-You Offer
Meetily Community Edition will remain free and open source. PRO exists for users and teams who want a more advanced meeting workflow, including higher transcription accuracy, custom summary templates, advanced exports, auto-meeting detection, and self-hosted deployment options.
For the community that helped Meetily grow, we are making the upgrade easier: use coupon code LAUNCH20 for 20% off Meetily PRO until the next Meetily Community Edition release.
Speaker diarization is planned for mid-June, bringing automatic speaker separation to PRO meetings.
Key Advantages Over Community Edition:
- Enhanced Accuracy: Superior transcription models for professional-grade accuracy
- Custom Summary Templates: Tailor summaries to your specific workflow and needs
- Advanced Export Options: PDF, DOCX, and Markdown exports with formatting
- Auto-detect and Join Meetings: Automatic meeting detection and joining
- Speaker Identification: Distinguish between speakers automatically (Coming Soon)
- Chat with Meetings: AI-powered meeting insights and queries (Coming Soon)
- Calendar Integration: Seamless integration with your calendar (Coming Soon)
- Self-Hosted Deployment: Deploy on your own infrastructure for teams
- GDPR Compliance Built-In: Privacy by design architecture with complete audit trails
- Priority Support: Dedicated support for PRO users
Who is PRO for?
- Professionals who need the highest accuracy for critical meetings
- Teams and organizations (2-100 users) requiring self-hosted deployment
- Power users who need advanced export formats and custom workflows
- Compliance-focused organizations requiring GDPR readiness
Note: Meetily Community Edition remains free & open source forever with local transcription, AI summaries, and core features. PRO is a separate professional solution for users who need enhanced accuracy and advanced capabilities.
For organizations needing 100+ users or managed compliance solutions, explore Meetily Enterprise.
Learn more about pricing and features: https://meetily.ai/pro/
Contributing
We welcome contributions from the community! If you have any questions or suggestions, please open an issue or submit a pull request. Please follow the established project structure and guidelines. For more details, refer to the CONTRIBUTING.md file.
Thanks for all the contributions. Our community is what makes this project possible.
License
MIT License - Feel free to use this project for your own purposes.
Acknowledgments
- We borrowed some code from Whisper.cpp.
- We borrowed some code from Screenpipe.
- We borrowed some code from transcribe-rs.
- Thanks to NVIDIA for developing the Parakeet model.
- Thanks to istupakov for providing the ONNX conversion of the Parakeet model.
Star History
File: backend/whisper-custom/server/README.md
whisper.cpp/examples/server
Simple http server. WAV Files are passed to the inference model via http requests.
https://github.com/ggerganov/whisper.cpp/assets/1991296/e983ee53-8741-4eb5-9048-afe5e4594b8f
Usage
/* Detailed source-code truncated for AI context efficiency. */[!WARNING]
Do not run the server example with administrative privileges and ensure it's operated in a sandbox environment, especially since it involves risky operations like accepting user file uploads and using ffmpeg for format conversions. Always validate and sanitize inputs to guard against potential security threats.
request examples
/inference
curl 127.0.0.1:8080/inference \
-H "Content-Type: multipart/form-data" \
-F file="@<file-path>" \
-F temperature="0.0" \
-F temperature_inc="0.2" \
-F response_format="json"/load
curl 127.0.0.1:8080/load \
-H "Content-Type: multipart/form-data" \
-F model=""File: backend/README.md
Legacy Backend Archive
This directory contains the archived Python/FastAPI, Docker, and standalone
whisper-server backend implementation from older Meetily releases.
Current Supported Architecture
Meetily no longer uses this backend as the supported application path. The
current app is a self-contained Tauri desktop application:
- Next.js provides the desktop UI from
frontend/src. - Rust/Tauri provides the local backend and native integration from
frontend/src-tauri. - Local transcription, meeting storage, and summary workflows are handled by
the bundled desktop app rather than a separate FastAPI service.
Use these docs for supported setup and development:
Status of This Directory
The files under backend/ are retained only for historical reference and
legacy migration context. They should not be used for new installs, production
deployments, security assessments of the supported app, or contributor setup.
The old FastAPI service, Docker compose flow, standalone whisper-server flow,
and related scripts are unsupported. The old unauthenticated FastAPI/CORS
behavior must not be treated as a supported production API.
File: docs/architecture.md
System Architecture
Meetily is a self-contained desktop application built with Tauri. It combines a Rust-based backend with a Next.js frontend into a single, efficient, and cross-platform application.
High-Level Architecture Diagram
graph TD
subgraph User Interface
A[Next.js Frontend]
end
subgraph "Core Logic (Rust)"
B[Tauri Core]
C[Audio Engine]
D[Transcription Engine]
E[Database]
F[Summary Engine]
end
A -- Tauri Commands --> B
B -- Manages --> C
B -- Manages --> D
B -- Manages --> E
B -- Manages --> FComponent Details
Frontend (Next.js)
- Provides the user interface for managing meetings, displaying transcriptions, and configuring the application.
- Communicates with the Rust core through Tauri's command system.
Backend (Rust Core)
- Tauri Core: The heart of the application, responsible for managing the window, handling events, and exposing the Rust core to the frontend.
- Audio Engine: Captures audio from the microphone and system, processes it, and prepares it for transcription.
- Transcription Engine: Uses local speech-to-text models (Whisper or Parakeet) to transcribe the captured audio. It can be accelerated with a GPU.
- Database: A local SQLite database that stores meeting metadata, transcripts, and summaries.
- Summary Engine: Generates meeting summaries using various Large Language Models (LLMs), including local models via Ollama.
File: docs/BUILDING.md
Building Meetily from Source
This guide provides detailed instructions for building Meetily from source on different operating systems.
Linux
๐ง Building on Linux
This guide helps you build Meetily on Linux with automatic GPU acceleration. The build system detects your hardware and configures the best performance automatically.
๐ Quick Start (Recommended for Beginners)
If you're new to building on Linux, start here. These simple commands work for most users:
1. Install Basic Dependencies
# Ubuntu/Debian
sudo apt update
sudo apt install build-essential cmake git
# Fedora/RHEL
sudo dnf install gcc-c++ cmake git
# Arch Linux
sudo pacman -S base-devel cmake git2. Build and Run
# Development mode (with hot reload)
./dev-gpu.sh
# Production build
./build-gpu.shThat's it! The scripts automatically detect your GPU and configure acceleration.
What Happens Automatically?
- โ NVIDIA GPU โ CUDA acceleration (if toolkit installed)
- โ AMD GPU โ ROCm acceleration (if ROCm installed)
- โ No GPU โ Optimized CPU mode (still works great!)
๐ก Tip: If you have an NVIDIA or AMD GPU but want better performance, jump to the GPU Setup section below.
๐ง Understanding Auto-Detection
The build scripts (dev-gpu.sh and build-gpu.sh) orchestrate the entire build process. Here's how they work:
- Detect location: Find
package.json(works from project root orfrontend/) - Auto-detect GPU: Run
scripts/auto-detect-gpu.js(or useTAURI_GPU_FEATUREif set) - Build Sidecar: Build
llama-helperwith the detected feature (debug or release) - Copy Binary: Copy the built sidecar to
src-tauri/binarieswith the target triple - Run Tauri: Call
npm run tauri:devortauri:buildwith the feature flag passed via env var
Detection Priority
| Priority | Hardware | What It Checks | Result |
|---|---|---|---|
| 1๏ธโฃ | NVIDIA CUDA | nvidia-smi exists + (CUDA_PATH or nvcc found) |
--features cuda |
| 2๏ธโฃ | AMD ROCm | rocm-smi exists + (ROCM_PATH or hipcc found) |
--features hipblas |
| 3๏ธโฃ | Vulkan | vulkaninfo exists + VULKAN_SDK + BLAS_INCLUDE_DIRS set |
--features vulkan |
| 4๏ธโฃ | OpenBLAS | BLAS_INCLUDE_DIRS set |
--features openblas |
| 5๏ธโฃ | CPU-only | None of the above | (no features, pure CPU) |
Common Scenarios
| Your System | Auto-Detection Result | Why |
|---|---|---|
| Clean Linux install | CPU-only | No GPU SDK detected |
| NVIDIA GPU + drivers only | CPU-only | CUDA toolkit not installed |
| NVIDIA GPU + CUDA toolkit | CUDA acceleration โ | Full detection successful |
| AMD GPU + ROCm | HIPBlas acceleration โ | Full detection successful |
| Vulkan drivers only | CPU-only | Vulkan SDK + env vars needed |
| Vulkan SDK configured | Vulkan acceleration โ | All requirements met |
๐ก Key Insight: Having GPU drivers alone isn't enough. You need the development SDK (CUDA toolkit, ROCm, or Vulkan SDK) for acceleration.
๐ง GPU Setup Guides (Intermediate)
Want better performance? Follow these guides to enable GPU acceleration.
๐ข NVIDIA CUDA Setup
Prerequisites: NVIDIA GPU with compute capability 5.0+ (check: nvidia-smi --query-gpu=compute_cap --format=csv)
Step 1: Install CUDA Toolkit
# Ubuntu/Debian (CUDA 12.x)
sudo apt install nvidia-driver-550 nvidia-cuda-toolkit
# Verify installation
nvidia-smi # Shows GPU info
nvcc --version # Shows CUDA versionStep 2: Build with CUDA
# Set your GPU's compute capability
# Example: RTX 3080 = 8.6 โ use "86"
# Example: GTX 1080 = 6.1 โ use "61"
CMAKE_CUDA_ARCHITECTURES=75 \
CMAKE_CUDA_STANDARD=17 \
CMAKE_POSITION_INDEPENDENT_CODE=ON \
./build-gpu.sh๐ก Finding Your Compute Capability:
bashnvidia-smi --query-gpu=compute_cap --format=csvConvert
7.5โ75,8.6โ86, etc.
Why these flags?
CMAKE_CUDA_ARCHITECTURES: Optimizes for your specific GPUCMAKE_CUDA_STANDARD=17: Ensures C++17 compatibilityCMAKE_POSITION_INDEPENDENT_CODE=ON: Fixes linking issues on modern systems
๐ต Vulkan Setup (Cross-Platform Fallback)
Vulkan works on NVIDIA, AMD, and Intel GPUs. Good choice if CUDA/ROCm don't work.
Step 1: Install Vulkan SDK and BLAS
# Ubuntu/Debian
sudo apt install vulkan-sdk libopenblas-dev
# Fedora
sudo dnf install vulkan-devel openblas-devel
# Arch Linux
sudo pacman -S vulkan-devel openblasStep 2: Configure Environment
# Add to ~/.bashrc or ~/.zshrc
export VULKAN_SDK=/usr
export BLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
# Apply changes
source ~/.bashrcStep 3: Build
./build-gpu.shThe script will automatically detect Vulkan and build with --features vulkan.
๐ด AMD ROCm Setup (AMD GPUs Only)
Prerequisites: AMD GPU with ROCm support (RX 5000+, Radeon VII, etc.)
# Ubuntu/Debian
# Add ROCm repository (see https://rocm.docs.amd.com for latest)
sudo apt install rocm-smi hipcc
# Set environment
export ROCM_PATH=/opt/rocm
# Verify
rocm-smi # Shows GPU info
hipcc --version # Shows ROCm version
# Build
./build-gpu.sh๐ฏ Advanced Usage
Manual Feature Override
Want to force a specific acceleration method? Use the TAURI_GPU_FEATURE environment variable with the shell scripts:
# Force CUDA (ignore auto-detection)
TAURI_GPU_FEATURE=cuda ./dev-gpu.sh
TAURI_GPU_FEATURE=cuda ./build-gpu.sh
# Force Vulkan
TAURI_GPU_FEATURE=vulkan ./dev-gpu.sh
TAURI_GPU_FEATURE=vulkan ./build-gpu.sh
# Force ROCm (HIPBlas)
TAURI_GPU_FEATURE=hipblas ./dev-gpu.sh
TAURI_GPU_FEATURE=hipblas ./build-gpu.sh
# Force CPU-only (for testing)
TAURI_GPU_FEATURE="" ./dev-gpu.sh
TAURI_GPU_FEATURE="" ./build-gpu.sh
# Force OpenBLAS (CPU-optimized)
TAURI_GPU_FEATURE=openblas ./dev-gpu.sh
TAURI_GPU_FEATURE=openblas ./build-gpu.shBuild Output Location
After successful build:
src-tauri/target/release/bundle/appimage/Meetily_<version>_amd64.AppImage๐งญ Troubleshooting
"CUDA toolkit not found"
- Fix: Install
nvidia-cuda-toolkitor setCUDA_PATHenvironment variable - Check:
nvcc --versionshould work
"Vulkan detected but missing dependencies"
- Fix: Set both
VULKAN_SDKandBLAS_INCLUDE_DIRSenvironment variables - Example:bash
export VULKAN_SDK=/usr export BLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
"AppImage build stripping symbols"
- Fix: Already handled!
build-gpu.shsetsNO_STRIP=trueautomatically - Why: Prevents runtime errors from missing symbols
Build works but no GPU acceleration
- Check detection: Look at the build output for GPU detection messages
- Verify:
nvidia-smi(NVIDIA) orrocm-smi(AMD) should work - Missing SDK: Install the development toolkit, not just drivers
macOS
๐ Building on macOS
On macOS, the build process is simplified as GPU acceleration (Metal) is enabled by default.
1. Install Dependencies
# Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install required tools
brew install cmake node pnpm2. Build and Run
# Development mode (with hot reload)
pnpm tauri:dev
# Production build
pnpm tauri:buildThe application will be built with Metal GPU acceleration automatically.
Windows
๐ช Building on Windows
1. Install Dependencies
- Node.js: Download and install from nodejs.org.
- Rust: Install from rust-lang.org.
- Visual Studio Build Tools: Install the "Desktop development with C++" workload from the Visual Studio Installer.
- CMake: Download and install from cmake.org.
2. Build and Run
# Development mode (with hot reload)
pnpm tauri:dev
# Production build
pnpm tauri:buildBy default, the application will be built with CPU-only processing. To enable GPU acceleration, see the GPU Acceleration Guide.
File: docs/building_in_linux.md
๐ง Building on Linux
This guide helps you build Meetily on Linux with automatic GPU acceleration. The build system detects your hardware and configures the best performance automatically.
๐ Quick Start (Recommended for Beginners)
If you're new to building on Linux, start here. These simple commands work for most users:
1. Install Basic Dependencies
# Ubuntu/Debian
sudo apt update
sudo apt install build-essential cmake git
# Fedora/RHEL
sudo dnf install gcc-c++ cmake git
# Arch Linux
sudo pacman -S base-devel cmake git2. Build and Run
# Development mode (with hot reload)
./dev-gpu.sh
# Production build
./build-gpu.shThat's it! The scripts automatically detect your GPU and configure acceleration.
What Happens Automatically?
- โ NVIDIA GPU โ CUDA acceleration (if toolkit installed)
- โ AMD GPU โ ROCm acceleration (if ROCm installed)
- โ No GPU โ Optimized CPU mode (still works great!)
๐ก Tip: If you have an NVIDIA or AMD GPU but want better performance, jump to the GPU Setup section below.
๐ง Understanding Auto-Detection
The build scripts (dev-gpu.sh and build-gpu.sh) orchestrate the entire build process. They first call scripts/auto-detect-gpu.js to identify your hardware, then build the llama-helper sidecar with the appropriate features, and finally launch the Tauri application.
Detection Priority
| Priority | Hardware | What It Checks | Result |
|---|---|---|---|
| 1๏ธโฃ | NVIDIA CUDA | nvidia-smi exists + (CUDA_PATH or nvcc found) |
--features cuda |
| 2๏ธโฃ | AMD ROCm | rocm-smi exists + (ROCM_PATH or hipcc found) |
--features hipblas |
| 3๏ธโฃ | Vulkan | vulkaninfo exists + VULKAN_SDK + BLAS_INCLUDE_DIRS set |
--features vulkan |
| 4๏ธโฃ | OpenBLAS | BLAS_INCLUDE_DIRS set |
--features openblas |
| 5๏ธโฃ | CPU-only | None of the above | (no features, pure CPU) |
Common Scenarios
| Your System | Auto-Detection Result | Why |
|---|---|---|
| Clean Linux install | CPU-only | No GPU SDK detected |
| NVIDIA GPU + drivers only | CPU-only | CUDA toolkit not installed |
| NVIDIA GPU + CUDA toolkit | CUDA acceleration โ | Full detection successful |
| AMD GPU + ROCm | HIPBlas acceleration โ | Full detection successful |
| Vulkan drivers only | CPU-only | Vulkan SDK + env vars needed |
| Vulkan SDK configured | Vulkan acceleration โ | All requirements met |
๐ก Key Insight: Having GPU drivers alone isn't enough. You need the development SDK (CUDA toolkit, ROCm, or Vulkan SDK) for acceleration.
๐ง GPU Setup Guides (Intermediate)
Want better performance? Follow these guides to enable GPU acceleration.
๐ข NVIDIA CUDA Setup
Prerequisites: NVIDIA GPU with compute capability 5.0+ (check: nvidia-smi --query-gpu=compute_cap --format=csv)
Step 1: Install CUDA Toolkit
# Ubuntu/Debian (CUDA 12.x)
sudo apt install nvidia-driver-550 nvidia-cuda-toolkit
# Verify installation
nvidia-smi # Shows GPU info
nvcc --version # Shows CUDA versionStep 2: Build with CUDA
# Set your GPU's compute capability
# Example: RTX 3080 = 8.6 โ use "86"
# Example: GTX 1080 = 6.1 โ use "61"
CMAKE_CUDA_ARCHITECTURES=75 \
CMAKE_CUDA_STANDARD=17 \
CMAKE_POSITION_INDEPENDENT_CODE=ON \
./build-gpu.sh๐ก Finding Your Compute Capability:
bashnvidia-smi --query-gpu=compute_cap --format=csvConvert
7.5โ75,8.6โ86, etc.
Why these flags?
CMAKE_CUDA_ARCHITECTURES: Optimizes for your specific GPUCMAKE_CUDA_STANDARD=17: Ensures C++17 compatibilityCMAKE_POSITION_INDEPENDENT_CODE=ON: Fixes linking issues on modern systems
๐ต Vulkan Setup (Cross-Platform Fallback)
Vulkan works on NVIDIA, AMD, and Intel GPUs. Good choice if CUDA/ROCm don't work.
Step 1: Install Vulkan SDK and BLAS
# Ubuntu/Debian
sudo apt install vulkan-sdk libopenblas-dev
# Fedora
sudo dnf install vulkan-devel openblas-devel
# Arch Linux
sudo pacman -S vulkan-devel openblasStep 2: Configure Environment
# Add to ~/.bashrc or ~/.zshrc
export VULKAN_SDK=/usr
export BLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
# Apply changes
source ~/.bashrcStep 3: Build
./build-gpu.shThe script will automatically detect Vulkan and build with --features vulkan.
๐ด AMD ROCm Setup (AMD GPUs Only)
Prerequisites: AMD GPU with ROCm support (RX 5000+, Radeon VII, etc.)
# Ubuntu/Debian
# Add ROCm repository (see https://rocm.docs.amd.com for latest)
sudo apt install rocm-smi hipcc
# Set environment
export ROCM_PATH=/opt/rocm
# Verify
rocm-smi # Shows GPU info
hipcc --version # Shows ROCm version
# Build
./build-gpu.sh๐ฏ Advanced Usage
Manual Feature Override
Want to force a specific acceleration method? Use the TAURI_GPU_FEATURE environment variable with the shell scripts:
# Force CUDA (ignore auto-detection)
TAURI_GPU_FEATURE=cuda ./dev-gpu.sh
TAURI_GPU_FEATURE=cuda ./build-gpu.sh
# Force Vulkan
TAURI_GPU_FEATURE=vulkan ./dev-gpu.sh
TAURI_GPU_FEATURE=vulkan ./build-gpu.sh
# Force ROCm (HIPBlas)
TAURI_GPU_FEATURE=hipblas ./dev-gpu.sh
TAURI_GPU_FEATURE=hipblas ./build-gpu.sh
# Force CPU-only (for testing)
TAURI_GPU_FEATURE="" ./dev-gpu.sh
TAURI_GPU_FEATURE="" ./build-gpu.sh
# Force OpenBLAS (CPU-optimized)
TAURI_GPU_FEATURE=openblas ./dev-gpu.sh
TAURI_GPU_FEATURE=openblas ./build-gpu.shBuild Output Location
After successful build:
src-tauri/target/release/bundle/appimage/Meetily_<version>_amd64.AppImage๐งญ Troubleshooting
"CUDA toolkit not found"
- Fix: Install
nvidia-cuda-toolkitor setCUDA_PATHenvironment variable - Check:
nvcc --versionshould work
"Vulkan detected but missing dependencies"
- Fix: Set both
VULKAN_SDKandBLAS_INCLUDE_DIRSenvironment variables - Example:bash
export VULKAN_SDK=/usr export BLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
"AppImage build stripping symbols"
- Fix: Already handled!
build-gpu.shsetsNO_STRIP=trueautomatically - Why: Prevents runtime errors from missing symbols
Build works but no GPU acceleration
- Check detection: Look at the build output for GPU detection messages
- Verify:
nvidia-smi(NVIDIA) orrocm-smi(AMD) should work - Missing SDK: Install the development toolkit, not just drivers
๐ Technical Reference
Complete Feature Matrix
| Mode | Feature Flag | Requirements | Acceleration | Speed Boost |
|---|---|---|---|---|
| CUDA | --features cuda |
nvidia-smi + (CUDA_PATH or nvcc) |
GPU | 5-10x |
| ROCm | --features hipblas |
rocm-smi + (ROCM_PATH or hipcc) |
GPU | 4-8x |
| Vulkan | --features vulkan |
vulkaninfo + VULKAN_SDK + BLAS_INCLUDE_DIRS |
GPU | 3-6x |
| OpenBLAS | --features openblas |
BLAS_INCLUDE_DIRS |
CPU-optimized | 1.5-2x |
| CPU | (none) | (none) | CPU-only | 1x (baseline) |
Build Scripts Internals
Both dev-gpu.sh and build-gpu.sh work the same way:
- Detect location: Find
package.json(works from project root orfrontend/) - Choose package manager: Prefer
pnpm, fallback tonpm - Call npm script: Run
tauri:devortauri:build - Auto-detect GPU: The npm script calls
scripts/tauri-auto.js - Feature selection:
scripts/auto-detect-gpu.jschecks hardware - Build with features: Tauri builds with detected
--featuresflag
Environment Variables Reference
| Variable | Purpose | Example |
|---|---|---|
CUDA_PATH |
CUDA installation directory | /usr/local/cuda |
ROCM_PATH |
ROCm installation directory | /opt/rocm |
VULKAN_SDK |
Vulkan SDK directory | /usr |
BLAS_INCLUDE_DIRS |
BLAS headers location | /usr/include/x86_64-linux-gnu |
CMAKE_CUDA_ARCHITECTURES |
GPU compute capability | 75 (for compute 7.5) |
CMAKE_CUDA_STANDARD |
C++ standard for CUDA | 17 |
CMAKE_POSITION_INDEPENDENT_CODE |
Enable PIC for linking | ON |
NO_STRIP |
Prevent symbol stripping (AppImage) | true |
โ Complete Example Builds
NVIDIA GPU (CUDA)
# Install
sudo apt install nvidia-driver-550 nvidia-cuda-toolkit
# Verify
nvidia-smi --query-gpu=compute_cap --format=csv
# Build (adjust architecture for your GPU)
CMAKE_CUDA_ARCHITECTURES=86 \ # (86 may change in your case)
CMAKE_CUDA_STANDARD=17 \
CMAKE_POSITION_INDEPENDENT_CODE=ON \
./build-gpu.shAMD GPU (ROCm)
# Install ROCm (see AMD docs for your distro)
sudo apt install rocm-smi hipcc
export ROCM_PATH=/opt/rocm
# Build
./build-gpu.shAny GPU (Vulkan)
# Install
sudo apt install vulkan-sdk libopenblas-dev
# Configure
export VULKAN_SDK=/usr
export BLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
# Build
./build-gpu.shNo GPU (CPU-only)
# Just build - works out of the box
./build-gpu.shNeed help? Open an issue on GitHub with your GPU type, distro, and the output from ./build-gpu.sh.
File: docs/GPU_ACCELERATION.md
GPU Acceleration Guide
Meetily supports GPU acceleration for transcription, which can significantly improve performance. This guide provides detailed information on how to set up and configure GPU acceleration for your system.
Supported Backends
Meetily uses the whisper-rs library, which supports several GPU acceleration backends:
- CUDA: For NVIDIA GPUs.
- Metal: For Apple Silicon and modern Intel-based Macs.
- Core ML: An additional acceleration layer for Apple Silicon.
- Vulkan: A cross-platform solution for modern AMD and Intel GPUs.
- OpenBLAS: A CPU-based optimization that can provide a significant speed-up over standard CPU processing.
Automatic GPU Detection
The build scripts (dev-gpu.sh, build-gpu.sh) are designed to automatically detect your GPU and enable the appropriate feature flag during the build process. The detection is handled by the scripts/auto-detect-gpu.js script.
Here's the detection priority:
- CUDA (NVIDIA)
- Metal (Apple)
- Vulkan (AMD/Intel)
- OpenBLAS (CPU)
If no GPU is detected, the application will fall back to CPU-only processing.
Manual Configuration
If you want to manually configure the GPU acceleration backend, you can do so by enabling the corresponding feature flag in the frontend/src-tauri/Cargo.toml file.
For example, to enable CUDA, you would modify the [features] section as follows:
[features]
default = ["cuda"]
# ... other features
cuda = ["whisper-rs/cuda"]Then, you would build the application using the standard pnpm tauri:build command.
Platform-Specific Instructions
Linux
For detailed instructions on setting up GPU acceleration on Linux, please refer to the Linux build instructions.
macOS
On macOS, Metal GPU acceleration is enabled by default. No additional configuration is required.
Windows
To enable GPU acceleration on Windows, you will need to install the appropriate toolkit for your GPU (e.g., the CUDA Toolkit for NVIDIA GPUs) and then build the application with the corresponding feature flag enabled.
File: frontend/src-tauri/templates/README.md
Meeting Summary Templates
This directory contains template definitions for meeting summary generation.
Available Templates
1. `daily_standup.json`
Time-boxed daily updates template designed for engineering/product teams.
Sections:
- Date
- Attendees
- Yesterday (completed work)
- Today (planned work)
- Blockers
- Notes
2. `standard_meeting.json`
General-purpose meeting notes template focusing on key outcomes and actions.
Sections:
- Summary
- Key Decisions
- Action Items
- Discussion Highlights
Template Structure
Each template JSON file follows this schema:
{
"name": "Template Name",
"description": "Brief description of the template's purpose",
"sections": [
{
"title": "Section Title",
"instruction": "Instructions for the LLM on what to extract/include",
"format": "paragraph|list|string",
"item_format": "Optional: Markdown table format for list items"
}
]
}Custom Templates
Users can add custom templates to the application data directory:
- macOS:
~/Library/Application Support/Meetily/templates/ - Windows:
%APPDATA%\Meetily\templates\ - Linux:
~/.config/Meetily/templates/
Custom templates override built-in templates with the same filename.
Template Fields
Root Level
name(required): Display name for the templatedescription(required): Brief explanation of the template's use casesections(required): Array of section definitions
Section Object
title(required): Section heading textinstruction(required): LLM guidance for this sectionformat(required): One of"paragraph","list", or"string"item_format(optional): Markdown formatting hint for list items (e.g., table structure)example_item_format(optional): Alternative formatting hint
Usage in Code
Templates are loaded using the templates module:
use crate::summary::templates;
// Get a specific template
let template = templates::get_template("daily_standup")?;
// List available templates
let available = templates::list_templates();
// Validate custom template JSON
let custom_json = std::fs::read_to_string("custom.json")?;
let validated = templates::validate_template(&custom_json)?;File: frontend/README.md
Meetily - Frontend
A modern desktop application for recording, transcribing, and analyzing meetings with AI assistance. Built with Next.js and Tauri for a native desktop experience.
Features
- Real-time audio recording from both microphone and system audio
- Live transcription using Whisper ASR (locally running)
- Native desktop integration using Tauri
- Speaker diarization support
- Rich text editor for note-taking
- Privacy-focused: All processing happens locally
Prerequisites
For macOS:
- Node.js (v18 or later)
- Rust (latest stable)
- pnpm (v8 or later)
- Xcode Command Line Tools
For Windows:
- Node.js (v18 or later)
- Rust (latest stable)
- pnpm (v8 or later)
- Visual Studio Build Tools with C++ development tools
- Windows 10 or later
Project Structure
/frontend
โโโ src/ # Next.js frontend code
โโโ src-tauri/ # Rust backend for Tauri
โโโ public/ # Static assets
โโโ package.json # Project dependenciesInstallation
For macOS:
Install prerequisites:
bash# Install Homebrew if not already installed /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Install Node.js brew install node # Install Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Install pnpm npm install pnpm # Install Xcode Command Line Tools xcode-select --installClone the repository and navigate to the frontend directory:
bashgit clone https://github.com/Zackriya-Solutions/meeting-minutes cd meeting-minutes/frontendInstall dependencies:
bashpnpm install
For Windows:
Install prerequisites:
- Install Node.js (v18 or later)
- Install Rust
- Install pnpm:
npm install pnpm - Install Visual Studio Build Tools with C++ development tools
Clone the repository and navigate to the frontend directory:
cmdgit clone https://github.com/Zackriya-Solutions/meeting-minutes cd meeting-minutes/frontendInstall dependencies:
cmdpnpm install
Running the App
For macOS:
Use the provided script to run the app in development mode:
./clean_run.shTo build a production version:
./clean_build.shYou can specify the log level (info, debug, trace):
./clean_run.sh debugFor Windows:
Use the provided script to run the app in development mode:
clean_run_windows.batTo build a production version:
clean_build_windows.batYou can also use the package scripts directly:
pnpm run tauri:dev
pnpm run tauri:buildLocal Transcription
Current Meetily does not require a separate FastAPI service, Docker backend, or manually started whisper-server process. Local transcription is handled by the Rust/Tauri desktop app.
For build and acceleration details, see:
Development
Frontend (Next.js)
- The frontend is built with Next.js and Tailwind CSS
- Source code is in the
src/directory - To run only the frontend:
pnpm run dev
Backend (Tauri)
- The Rust backend is in the
src-tauri/directory - Handles audio capture, file system access, transcription, storage, and native integrations
- To run only the Tauri development server:
pnpm run tauri:dev
Troubleshooting
Common Issues on macOS
- If you encounter permission issues with scripts, make them executable:bash
chmod +x clean_run.sh clean_build.sh - For microphone access issues, ensure the app has microphone permissions in System Preferences
Common Issues on Windows
- If you encounter build errors, ensure Visual Studio Build Tools are properly installed
- For audio capture issues, check Windows privacy settings for microphone access
- If the app fails to start, try running Command Prompt as administrator
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.