Push-to-talk voice notes for Obsidian, transcribed entirely on-device with Google's Gemma 4 (E2B / E4B) running in-process via transformers.js. No server, no API key — fully offline after a one-time model download.
🚀 Install here: https://community.obsidian.md/plugins/gemmanotes
✨ New: Magic rewrite is available for any selected text. Use local Gemma 4 model to rephrase any text!
This plugin makes network requests solely for the purpose of a one-time download of the required transcription and rewriting models, as well as the ONNX Runtime WebAssembly execution engines. Once downloaded, all models run locally and in-process. No data or recording is ever sent to any remote server.
The network request destinations are:
https://huggingface.co): Used to download the model weights, tokenizers, and configuration files for the selected model variants:onnx-community/whisper-tiny.en)onnx-community/gemma-4-E2B-it-ONNX)onnx-community/gemma-4-E4B-it-ONNX)https://cdn.jsdelivr.net): Used by Hugging Face transformers.js to dynamically download the required ONNX Runtime WebAssembly library files.To perform in-process inference on-device, this plugin uses the following WebAssembly binary file:
ort-wasm-simd-threaded.asyncify.wasm (and related ort-wasm*.wasm files): These are official, compiled WebAssembly modules of the Microsoft ONNX Runtime library. They are fetched from the jsDelivr CDN and are used to execute the deep learning models locally within Obsidian. They are compiled from the open-source source code hosted at the official ONNX Runtime repository.This plugin writes to the system clipboard:
navigator.clipboard.writeText. The plugin never reads from the clipboard.ort-wasm-simd-threaded.asyncify.wasm from ONNX Runtime) to execute model inference in-process. WebAssembly engines may internally use dynamic code compilation (such as new Function()) to optimize runtime kernel performance. No dynamically generated JavaScript from external sources is ever executed.