Technology
A local-first AI stack, built in Europe, that respects how learning actually happens.
Whisper for speech, Mistral and EuroLLM for summaries, Tauri for the desktop shell. Everything runs on your machine. The cloud is optional, opt-in, and never default.
Foundation models
Three open-weight families. All three European in spirit, two in origin.
We picked the AI stack that best serves a European education product: open weights, on-device first, with European foundation models leading the summarisation tier.
Speech recognition
Whisper (open-weight, GPU-accelerated)
OpenAI's Whisper model compiled to native code via Whisper.cpp, running locally with Metal (macOS), CUDA (NVIDIA), or Vulkan (AMD / Intel) acceleration. Recognises 50+ languages, no internet required. Voice Activity Detection (Silero VAD) filters silence before transcription, cutting processing load by ~70% on long sessions.
Summarisation · French
Mistral AI
Ministral 3B (recommended for most laptops), Ministral 8B (power), and Mistral Nemo 12B (premium) — European foundation models running entirely on-device via llama.cpp. The same models that power some of Europe's flagship AI products, with no data leaving your machine.
Summarisation · EU consortium
EuroLLM
EuroLLM 1.7B (ultra-light) and EuroLLM 9B (multilingual) — purpose-built for European languages and educational contexts by an EU research consortium. Sovereign AI by construction.
Architecture
Four layers. No cloud round-trip required for any of them.
The desktop shell, the inference engines, the local store, and the optional cloud providers. Each layer is replaceable; none of them is required to talk to a server we control.
Layer 01
Native desktop shell (Tauri + Rust)
The application is a Tauri app, not an Electron one. Rust handles audio capture, file I/O, and OS-level integration; the UI ships as a Next.js / React surface inside a webview. Tauri keeps the binary small (~12 MB shell) and the privilege boundary tight.
Layer 02
On-device inference engine (llama.cpp + Whisper.cpp)
Both the speech-to-text and the summarisation models run through purpose-built C++ inference engines (Whisper.cpp + llama.cpp) bound to Rust. GGUF format means quantised models stream from disk and use 30-60% less RAM than naive PyTorch loads.
Layer 03
Local SQLite store, encrypted at rest
Recordings, transcripts, and summaries live in a SQLite database in your application support directory. API keys for optional cloud providers are encrypted with AES-256 before being written to disk.
Layer 04
Optional cloud AI providers (BYOK)
If you want to use cloud models — Mistral Cloud, OpenAI, Anthropic, Google Gemini, or a self-hosted Ollama server — you bring your own key. Cloud is opt-in per session, not a global toggle. The free tier is fully local; the Pro tier unlocks managed cloud access.
Compliance
Designed against the regulations the institutions we serve are bound by.
EU AI Act, GDPR, WCAG. Three frameworks that this stack was architected against from day one — not retrofitted.
EU AI Act, Article 50
Transparent AI labelling
All AI-generated content is clearly marked. Model names and versions are disclosed in the UI for every summary.
GDPR — Article 25
Privacy by design and by default
Recordings, transcripts, and summaries never leave the device by default. The privacy posture is the architecture, not a setting.
WCAG 2.2 Level AA
Accessibility built in
Reduced motion, high contrast, low-stim mode, full keyboard navigation, and screen-reader semantics — first-class concerns, not bolt-ons.
See it for yourself
Read the source. Run it locally.
The full source for the desktop app and the website is open source on GitHub.