KEMBAR78
fastrepl/hyprnote | DeepWiki
Menu

Overview

Relevant source files

This page introduces Hyprnote, an AI-powered meeting notes application focused on privacy, local-first operation, and real-time transcription and enhancement. It summarizes the system's purpose, high-level architecture, and core technical approach. For details on specific subsystems, see the Architecture and Core Features sections.

Purpose

Hyprnote is a desktop application for capturing, transcribing, and enhancing meeting notes using on-device AI. Its primary goals are:

  • Local-first operation: All audio, transcription, and AI processing runs on the user's device by default.
  • Privacy: No meeting data leaves the device unless the user explicitly enables cloud integrations.
  • Real-time workflow: Users can record meetings, view live transcripts, and generate AI-enhanced summaries or chat with an AI assistant.
  • Extensibility: The system is built as a modular Tauri application with a plugin-based backend and a monorepo workspace.

This page covers:

  • What Hyprnote is and its core value proposition
  • High-level system architecture and major components
  • Technology stack and workspace structure

For details on:

  • Plugin system architecture, see [2.2]
  • Audio and speech processing, see [4]
  • AI and language model integration, see [5]
  • User interface, see [6]

Sources: Cargo.toml10-254 pnpm-lock.yaml1-700

What is Hyprnote?

Hyprnote is a desktop application for private, AI-powered meeting notes. It enables users to:

  • Record meetings and capture audio from microphone and speakers
  • Generate real-time transcripts using on-device speech-to-text (STT) models
  • Enhance and summarize notes using local large language models (LLMs)
  • Search, organize, and review meeting content in a unified interface

Key Properties:

AspectDescription
ArchitectureTauri 2.8 (Rust backend, plugin system) + React 19.2 (TypeScript frontend)
Privacy ModelLocal-first: all ML models (STT, LLM) run on-device by default
DistributionNative binaries, multi-channel (staging, nightly, stable)
PlatformsmacOS 14.2+, Windows (WebView2), Linux (WebKitGTK 4.1)
LicensingKeygen license validation, offline fallback supported

Distribution channels are configured via tauri.conf.json, tauri.conf.nightly.json, and tauri.conf.stable.json.

Sources: Cargo.toml10-254 pnpm-lock.yaml1-700

Core Capabilities

Feature-to-Plugin Mapping

Below is a mapping of user-facing features to backend plugin code entities. This diagram bridges the natural language feature space to the code entity space.

Diagram: "Feature-to-Plugin and Code Entity Mapping"

Core Features and Corresponding Code Entities:

FeatureCode Entity / PluginDescription
Real-time Transcriptiontauri-plugin-listener, hypr-audio, tauri-plugin-local-stt, hypr-whisperCaptures audio, performs VAD, streams to STT, stores transcript
AI Enhancementtauri-plugin-template, hypr-template, tauri-plugin-local-llm, hypr-llmRenders Jinja templates, streams LLM output for note enhancement
AI Chattauri-plugin-local-llm, hypr-llmContext-aware chat, OpenAI-compatible API
Data Persistencetauri-plugin-db, hypr-db-userStores sessions, events, words, tags, etc.
Offline OperationAll above plugins/cratesAll models and data local by default
Integrationsplugins/calendar-apple, plugins/calendar-google, crates/nangoCalendar and OAuth integrations

Sources: Cargo.toml10-254 pnpm-lock.yaml1-700 plugins/db plugins/listener plugins/local-stt plugins/local-llm crates/audio crates/whisper crates/llm crates/template crates/db-user

System Architecture

High-Level System Overview

The Hyprnote system is organized as a layered desktop application, with a React frontend, a Rust backend, and a modular plugin system. The following diagram shows the major systems and their relationships, using code entity names for traceability.

Diagram: "Overall System Architecture (Code Entity Mapping)"

Architectural Layers and Key Code Entities:

LayerCode EntityDescription
Presentationapps/desktop2/srcReact UI, state management, routing
IPC BridgeTauri IPC, @tauri-apps/apiType-safe command bridge
Plugin Layerplugins/*Rust plugins for audio, STT, LLM, DB, etc.
Core Cratescrates/*Audio I/O, LLM inference, DB core, etc.
Data LayerSQLite via crates/db-userLocal data persistence

Sources: Cargo.toml10-254 pnpm-lock.yaml1-700 apps/desktop2/src-tauri plugins/listener plugins/local-stt plugins/local-llm plugins/db crates/audio crates/whisper crates/llama crates/db-core crates/db-user

Technology Stack

Backend

ComponentTechnology / CrateCode Reference
Application FrameworkTauri 2.8Cargo.toml90-110
LanguageRust 1.90.0+Cargo.toml20-21
DatabaseSQLite via libsqlcrates/db-core crates/db-user
Audio Processingcpal, cidre (macOS), wasapi (Windows)crates/audio
STT EngineWhisper.cpp via hypr-whispercrates/whisper plugins/local-stt
LLM Enginellama.cpp via hypr-llamacrates/llama plugins/local-llm
Templatingminijinjacrates/template
IPC Type Safetyspecta, tauri-spectaCargo.toml209-211
Observabilitytracing, SentryCargo.toml201-203

Frontend

ComponentTechnology / PackageCode Reference
UI FrameworkReact 19.2pnpm-lock.yaml145-146
RoutingTanStack Routerpnpm-lock.yaml81-83
State ManagementZustand, Tinybasepnpm-lock.yaml156-173
EditorTiptap 3.xpackages/tiptap/package.json23-41
UI ComponentsRadix UIpackages/ui/package.json19-37
StylingTailwind CSSpackages/ui/package.json61
Build ToolVitepnpm-lock.yaml211-213
Type SafetyTypeScript 5.8+pnpm-lock.yaml208-210

Platform-Specific Features

Feature flags in Cargo.toml enable GPU acceleration and platform-specific audio backends:

  • macOS: Metal GPU, CoreML
  • Windows: Vulkan, DirectML, OpenBLAS
  • Linux: Vulkan, ALSA

Sources: Cargo.toml10-254 pnpm-lock.yaml1-700 packages/ui/package.json1-65 packages/tiptap/package.json1-62

Project Structure

The Hyprnote repository is a monorepo with both Rust (Cargo) and JavaScript/TypeScript (pnpm) workspaces.

Workspace Organization

Diagram: "Monorepo Structure (Code Entity Mapping)"

Key Code Entities by Domain:

DomainCode EntityPath
Audiohypr-audiocrates/audio
LLMhypr-llmcrates/llm
STThypr-whispercrates/whisper
Databasehypr-db-usercrates/db-user
Templateshypr-templatecrates/template
UI Components@hypr/uipackages/ui
Editor@hypr/tiptappackages/tiptap
Utilities@hypr/utilspackages/utils

Sources: Cargo.toml10-254 pnpm-lock.yaml1-700 packages/ui/package.json1-65 packages/tiptap/package.json1-62 packages/utils/package.json1-30

Build and Deployment

Release Channels

ChannelConfig FileIdentifierUpdate Endpoint
Stagingtauri.conf.jsoncom.hyprnote.devNot updatable
Nightlytauri.conf.nightly.jsoncom.hyprnote.nightlyNightly CDN
Stabletauri.conf.stable.jsoncom.hyprnote.stableStable CDN

Each channel uses a different bundle identifier and update endpoint. LLM and STT models are bundled or downloaded as resources.

Build Pipeline

Diagram: "Build, Test, and Release Pipeline"

Build steps include:

  • Frontend build with Vite (pnpm build)
  • Rust backend build with Tauri (tauri build)
  • Platform-specific packaging and code signing
  • Artifact upload and release publish via CrabNebula Cloud

Sources: Cargo.toml10-254 pnpm-lock.yaml1-700

Development Environment

Prerequisites

ToolVersionPurpose
Rust1.90.0+Backend compilation
Node.js18+Frontend tooling
pnpmLatestPackage management
Python3.xBuild scripts
PoetryLatestPython dependencies
protoc25.7Protocol buffer compilation

Platform-Specific:

  • macOS: Xcode Command Line Tools
  • Windows: Visual Studio Build Tools, MSVC
  • Linux: libwebkit2gtk-4.1-dev, libasound2-dev, build essentials

Development Workflow

Development Commands:

Testing:

Type Safety Workflow:

  1. Define Rust command in apps/desktop/src-tauri/src/commands.rs with #[specta::specta]
  2. Add to collect_commands![] in lib.rs252-259
  3. Run cargo test -p desktop export_types to generate bindings
  4. Import from @/types in TypeScript: import { commands } from "@/types"

Sources: apps/desktop/package.json6-16 apps/desktop/src-tauri/src/lib.rs263-279 apps/desktop/src-tauri/tauri.conf.json7-11


Summary: Hyprnote is a sophisticated local-first desktop application that combines real-time audio processing, speech-to-text transcription, and AI-powered content enhancement. Built with Tauri and React, it leverages a plugin-based architecture for modularity and uses local ML models (Whisper, Llama.cpp) to ensure privacy. The system supports multiple platforms with GPU acceleration and provides optional cloud integrations while maintaining offline-first operation.