How to Set Up Zackriya-Solutions/Meetily Locally: Complete Development Guide

Set up Meetily locally by installing Rust, Node.js 18+, and platform-specific audio libraries, then run ./clean_run.sh (macOS/Linux) or clean_run_windows.bat to build and launch the Tauri 2 desktop app.

Meetily is an open-source, privacy-first AI meeting assistant that runs entirely offline. This guide walks you through setting up the Zackriya-Solutions/Meetily repository for local development, covering the Rust backend, Next.js 14 frontend, and Whisper-cpp transcription engine.

Prerequisites for Meetily Local Setup

You need four core toolchains before cloning the repository:

Tool Purpose Installation
Rust toolchain (rustup, cargo) Compiles the Tauri backend and native commands rustup.rs
Node.js 18+ and pnpm Manages frontend dependencies and Tauri scripts npm i -g pnpm
Tauri CLI (tauri-cli) Orchestrates the native build process cargo install tauri-cli
Platform audio libraries Enables microphone and system audio capture See section below

For GPU acceleration of Whisper transcription, install platform-specific toolchains: Xcode for Metal on macOS, or CUDA toolkit / Vulkan SDK on Windows/Linux. The repository includes detailed guidance in [docs/architecture.md](https://github.com/Zackriya-Solutions/meetily/blob/main/docs/architecture.md) and [docs/GPU_ACCELERATION.md](https://github.com/Zackriya-Solutions/meetily/blob/main/docs/GPU_ACCELERATION.md).

Clone and Install Dependencies

Start by cloning the repository and installing JavaScript dependencies:

git clone https://github.com/Zackriya-Solutions/meetily.git
cd meetily
pnpm install

The pnpm install command downloads Next.js 14, React, and all UI dependencies defined in the workspace configuration.

Platform-Specific Audio Setup

Meetily requires additional configuration for system audio capture on each operating system.

macOS Requirements

  1. Install BlackHole virtual audio driver for system audio loopback (see the "System Audio" section in the repository README)
  2. Grant Microphone and Screen Recording permissions to the built app — required by ScreenCaptureKit in frontend/src-tauri/src/audio/

Windows Requirements

  1. Install Visual Studio Build Tools with the Desktop development with C++ workload
  2. No virtual audio driver needed — Tauri uses WASAPI loopback for system audio capture

Linux Requirements

Install ALSA and PulseAudio development headers plus build essentials:

sudo apt install libasound2-dev libpulse-dev cmake llvm libomp-dev

Complete Linux build instructions are available in [docs/building_in_linux.md](https://github.com/Zackriya-Solutions/meetily/blob/main/docs/building_in_linux.md).

Build and Run Meetily Locally

The repository provides convenience scripts that wrap Tauri development commands.

macOS and Linux


# Standard development build with info-level logging

./clean_run.sh

# Verbose debug output

./clean_run.sh debug

Windows

clean_run_windows.bat        # Development build and launch

clean_build_windows.bat      # Production build only

These scripts delegate to pnpm run tauri:dev for development or pnpm run tauri:build for production. The development server serves the Next.js frontend at http://localhost:3118 while the Rust backend runs natively.

Enable GPU Acceleration (Optional)

Whisper transcription performance improves significantly with GPU support:

  • macOS: Metal acceleration auto-detects; no configuration required
  • Windows/Linux: Build with explicit feature flags:

# NVIDIA CUDA

cargo tauri dev --features cuda

# AMD/Intel Vulkan

cargo tauri dev --features vulkan

The WhisperEngine struct in [frontend/src-tauri/src/whisper_engine/whisper_engine.rs](https://github.com/Zackriya-Solutions/meetily/blob/main/frontend/src-tauri/src/whisper_engine/whisper_engine.rs) handles model loading and inference dispatch based on available hardware.

Verify Your Local Setup

Confirm successful installation by completing these checks:

  1. App launches — Tauri window opens with the Meetily interface
  2. Audio devices detected — Click Start Recording and observe live level meters for Microphone and System audio
  3. Transcription flows — Speak for 10+ seconds; transcript segments appear in the UI
  4. Summary generates — Stop recording to trigger the AI summary pipeline

If dependencies are missing, check the console for perf_debug! logs emitted from [frontend/src-tauri/src/lib.rs](https://github.com/Zackriya-Solutions/meetily/blob/main/frontend/src-tauri/src/lib.rs).

Key Integration Code Examples

Invoke Recording Commands from Frontend

import { invoke } from '@tauri-apps/api/tauri';

async function startMeeting() {
  await invoke('start_recording', {
    mic_device_name: 'Built-in Microphone',
    system_device_name: 'BlackHole 2ch',  // macOS virtual device
    meeting_name: 'Engineering Standup'
  });
}

This Tauri command is implemented in [frontend/src-tauri/src/audio/recording_commands.rs](https://github.com/Zackriya-Solutions/meetily/blob/main/frontend/src-tauri/src/audio/recording_commands.rs).

Subscribe to Real-Time Transcripts

import { listen } from '@tauri-apps/api/event';

listen<{
  text: string;
  timestamp: string;
}>('transcript-update', event => {
  console.log('Transcription:', event.payload.timestamp, event.payload.text);
});

Events are emitted by the audio pipeline in [frontend/src-tauri/src/audio/pipeline.rs](https://github.com/Zackriya-Solutions/meetily/blob/main/frontend/src-tauri/src/audio/pipeline.rs).

Load Whisper Model in Rust

let engine = WhisperEngine::new().await?;
engine.load_model("base").await?;  // Options: tiny, base, small, medium, large

Model management lives in [frontend/src-tauri/src/whisper_engine/whisper_engine.rs](https://github.com/Zackriya-Solutions/meetily/blob/main/frontend/src-tauri/src/whisper_engine/whisper_engine.rs).

Critical Source Files for Local Development

Path Responsibility
frontend/src-tauri/src/lib.rs Tauri application entry point; command registration
frontend/src-tauri/src/audio/pipeline.rs Audio mixing, VAD gating, Whisper streaming
frontend/src-tauri/src/audio/recording_manager.rs Recording lifecycle orchestration
frontend/src-tauri/src/audio/recording_saver.rs Audio file persistence
frontend/src-tauri/src/whisper_engine/whisper_engine.rs Whisper model loading and inference
frontend/src/app/page.tsx Main meeting control UI
frontend/src/components/Sidebar/SidebarProvider.tsx Global meeting state context
scripts/clean_run.sh / clean_run_windows.bat Development build automation

Summary

  • Install four toolchains: Rust, Node.js 18+/pnpm, Tauri CLI, and platform audio libraries
  • Clone with git clone https://github.com/Zackriya-Solutions/meetily.git
  • Run helper scripts: ./clean_run.sh on macOS/Linux, clean_run_windows.bat on Windows
  • Verify audio capture via level meters and live transcription
  • Enable GPU acceleration with --features cuda or --features vulkan on Windows/Linux

Frequently Asked Questions

What is the minimum Node.js version for Meetily development?

Node.js 18 or higher is required. The frontend uses Next.js 14 features that depend on modern Node APIs. Use pnpm rather than npm for faster, deterministic installs.

Why does macOS require BlackHole for system audio?

macOS lacks native system audio loopback APIs. BlackHole creates a virtual audio device that Meetily's recording_commands.rs can capture alongside microphone input. Without it, only microphone transcription works.

How do I debug build failures in the Rust backend?

Run ./clean_run.sh debug for verbose logging. The perf_debug! macros in lib.rs emit detailed diagnostics about missing system libraries, permission errors, and audio device enumeration failures. Check that you have installed all platform-specific dependencies listed in docs/building_in_linux.md or the README.

Can I run Meetily without GPU acceleration?

Yes — CPU inference works on all platforms. The WhisperEngine automatically falls back to CPU mode if no GPU is detected. Expect slower transcription, especially with larger models (medium, large). Use tiny or base models for acceptable CPU performance.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →