lattifai/awesome-EmbeddingGemma
lattifai/awesome-EmbeddingGemma has 62 GitHub stars and 7 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 11:12 UTC. Last push 2026-11-03.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
EmbeddingGemma2 resources: local search apps, decision models, inference frameworks, tutorials, and datasets. English / 简体中文.
LearningREADME.md
OriginalAwesome EmbeddingGemma 
Local multimodal search with Google’s EmbeddingGemma2.
EmbeddingGemma2 maps text, code, images, video, and audio into a shared embedding space. This list covers resources supporting the second generation (distinct from EmbeddingGemma 300M and Gemini Embedding 2).
Last checked: 2026-10-12; new and updated community entries checked 2026-10-13. Sources reviewed; runtimes not tested locally.
Contents
- Popular Applications
- Community Applications
- Fine-tuning and Decision Models
- Decision Application Examples
- Start here
- Model at a glance
- Guides and examples
- Models and runtimes
- Inference Frameworks and Servers
- Practical notes
- Evaluation
Popular Applications
Applications built with EmbeddingGemma2. Stars update via Shields.io and may be cached.
DigUp v0.7.0-beta.3 for Windows 10/11 x64 and Linux x64 adds text indexing for spreadsheets and presentations (xlsx, pptx, ods, odp) and Typst documents, bringing over shared fixes from Mac v0.6.2. Linux releases the search process after ten idle minutes; the next search takes longer to start. The Windows installer remains unsigned. These beta ports lack screenshot OCR and skip legacy Word .doc, RAW, and SVG files.
Community Applications
Code Déjà Vu - Local cross-repository function search and similarity warnings through a non-blocking Git pre-commit hook; supports TypeScript, JavaScript, Python, and Rust functions of at least five lines, skips tests, and requires Python 3.10+ plus a model download.
Daemon - macOS 14+ Apple silicon app for capturing selected text, screenshots, files, and voice notes with a hotkey and recalling them by meaning; uses local llama.cpp, with unnotarized releases.
drive-lens - Search shared Google Drive photos, video previews, and PDFs with local EmbeddingGemma2 vectors and a Windows/macOS/Linux desktop app; requires an anyone-with-the-link folder and a separate vision LLM for descriptions, with previews sent to the provider when hosted.
GemSearch - Local photo and screenshot search for Linux with text, image, or combined image-and-text queries, a CLI, and a browser UI; defaults to NVIDIA CUDA with a CPU option, and needs an initial model download before offline use.
Git Séance - Find deleted functions in Git history by description with local EmbeddingGemma2 and print or export their last version; supports TypeScript, JavaScript, Python, and Rust functions of at least five lines, skipping tests. Requires Python 3.10+ and a model download; each indexing run replaces the previous index, so include every repository you want searched.
Local Search - macOS local file search with MCP access for coding assistants; the app is not notarized, and snippets sent to cloud assistants leave the device.
mail-shiwake - Suggests Outlook mail folders from example messages using local EmbeddingGemma2 ONNX text embeddings; Windows classic Outlook only, with an unsigned executable and an initial model download. Automatic moves are opt-in; text is truncated to 512 tokens.
MediaIndex - macOS 13+ Apple silicon app for local image, audio, and video search with EmbeddingGemma2, plus object counting and photo editing via separate models; unsigned app, with extra model downloads for editing.
Mitsuke - Local image and video-shot search on Apple silicon via MLX, using text, example images, or both; supports RAW, PSD, and EXR/HDR libraries with web UI, CLI, and MCP access, and requires an initial model download.
omafind - Omarchy 4 plugin for local document, PDF, image, video, and audio search with page and timestamp jumps using EmbeddingGemma2 and llama-server; setup builds the engine and downloads models, and indexes and thumbnails are stored unencrypted locally.
photosearch - Local Apple Photos text/image search and video moment retrieval on Mac, with a browser UI; indexes cached previews, while full-size iCloud photos and cloud-only videos require downloads.
Recall - Early-stage Linux file search with Rust, GTK 4, and llama.cpp.
rummage - Local multimodal file search with CLI, web UI, HTTP API, and page/timestamp jumps via llama.cpp on CPU, CUDA, ROCm, or Vulkan; Linux binaries require glibc 2.39+ and x86-64-v3, models download separately, video needs FFmpeg, and PDF page images need Poppler.
sift-it - Rust terminal search over documents, images, recordings, videos, and code with EmbeddingGemma2 and llama.cpp, including page/time/line jumps, JSON output, and a JSON-lines frontend protocol; requires Apple silicon macOS 14+ and model downloads, with a separate speech model for transcript search. Main now includes a stdio MCP server with read-only search/read tools for files and Claude Code/Codex conversations (add session folders explicitly); this requires a source build until packaged, and snippets shared with cloud assistants leave the device.
Semantic Search - Tinycast/Raycast extension for local file and Apple Photos search with EmbeddingGemma2 via MLX or Core ML; requires Apple silicon macOS 26+, manual installation, and separate model downloads. The companion engine is unsigned; scanned PDFs need a text layer, audio search matches sounds rather than transcripts, and Core ML text inputs are limited to 512 tokens.
semsearch - Local code search for Claude Code with EmbeddingGemma2, syntax-aware chunks, incremental SQLite indexes, CLI, and MCP; requires Python 3.12, uv, and a model download. Supports CPU or NVIDIA CUDA; author testing covers Windows 11, with Linux/macOS untested. Installation modifies user-level Claude Code settings and hooks; retrieved code sent to cloud assistants leaves the device.
Sonicproof - Local generated-audio prompt matching, take ranking, and sound-library search via CLI, web UI, or MCP on CPU, CUDA, or Apple silicon; similarity scores need listening checks, especially for short transient sounds.
Trawl - Local photo, document, video, and voice-note search on Android 11+ 64-bit phones using EmbeddingGemma2; requires a separate model download, works best in English, and uses a separate English-only speech recognizer. The 32-bit Go edition has no semantic search.
VectorDash - Windows local document, image, audio, and video search with page and timestamp jumps via llama.cpp; unsigned installer. Version 0.3.42 adds beta reverse image search across indexed files and retained clipboard images, requiring compatible visual vectors (not Quick-only or OCR-only entries), plus optional AI Local Search. Remote image queries send the image to the configured embedding server; AI Local Search sends retrieved snippets to the configured AI server. Windows 10 x64 2004+ and optional RAW support (disabled by default, Full sources only) remain beta; Windows 11 is the primary tested platform.
Vault Semantic Search - Desktop Obsidian plugin for local hybrid note search, related notes, and image search using WebGPU or a local Ollama server; source build required, with no release package yet.
video-grep - Terminal and SSH video search with EmbeddingGemma2, returning timestamps and clip-export commands; requires Python 3.10+, FFmpeg, and an initial model download. Searches six-second visual clips only, without audio or OCR; author testing covers macOS and English queries, with Linux and CUDA untested.
Fine-tuning and Decision Models
- EG2 Typed Decision - EmbeddingGemma2 text encoder with a roughly 0.5M-parameter head for
choice,noul(Boolean), andscoredecisions with probabilities; includes weights, inference code, and further fine-tuning examples. - Typed Decisions - Training and evaluation data used by the model above, covering agent checks, support tickets, invoices, and security incidents; metrics measure agreement with teacher labels.
- Typed Decision GGUF - Complete fine-tuned encoder and decision head in FP32/Q8 GGUF; requires CrispEmbed rather than stock llama.cpp, with only small-scale numerical parity checks reported.
- Typed Decision Core ML - Adaptation of the same fine-tuned model for macOS 15+ Apple silicon, without retraining; locally converted Core ML encoder uses CPU/Neural Engine with the original FP32 decision head on CPU, fixed token buckets, and overlength rejection.
The model author selected hyperparameters while inspecting the test split; its fine-tuned results are not directly comparable with the dataset's zero-shot leaderboard.
Core ML adaptation checked 2026-10-14 against its documentation and implementation; author-reported parity checks do not establish task accuracy or exclusive Neural Engine execution.
Multimodal Typed Decision - EmbeddingGemma2 fine-tune for text, image, and video choice, Boolean, and ordinal decisions, with optional object-box localisation; requires the bundled runtime and is primarily English. Evaluation sets were reused during development, and some training data is non-commercial, research-only, or lacks a stated license.
US-State-Law-EmbeddingGemma-2 - LoRA fine-tune for retrieving Washington State RCW statutes from English queries, trained on synthetic query–passage pairs; includes merged weights and a Q4_K_M GGUF. Its legal-domain scope is Washington State, not US law generally.
Retail EmbeddingGemma2 TW - Text-only fine-tune matching Taiwan Traditional Chinese shopping queries to product titles, with Sentence Transformers weights; trained at 192 tokens on a private retail catalog. Evaluation uses LLM-judged relevance on the same catalog, with other catalogs and languages untested.
Bharat-Embed 270M - Text-only LoRA fine-tune for Hindi and Hinglish retrieval, with training and export code; trained at 256 tokens, with long-document behavior unmeasured.
EmbeddingGemma2 Korean - Korean retrieval fine-tune blended with base weights, retaining multimodal inputs; requires Sentence Transformers 6.1+ and Transformers 5.18+, with a small Korean text-to-speech retrieval decline reported by the author.
eg2-transcribe - English speech transcription with a frozen EmbeddingGemma2 audio encoder and trained reader, targeting Android 8+ arm64 via LiteRT and iOS/macOS 27 via Core AI; requires building the app and downloading models separately, is trained on read English speech, and outputs no punctuation or capitalization.
eg2-transcribe-zh-en-ja-ko - Offline Chinese, English, Japanese, and Korean transcription with a frozen EmbeddingGemma2 audio encoder, character CTC reader, and per-language n-grams; includes punctuation, Traditional/Simplified Chinese output, Core ML/LiteRT exports, and Swift/Kotlin decoders. Requires separate model downloads; n-gram packs are CC BY-SA 4.0.
Embed2ASR - Mandarin, English, and code-switching transcription using a frozen EmbeddingGemma2 audio encoder and a 9.66M-parameter GRU-CTC reader, with reader weights; requires the base encoder separately and supports offline transcription only, not streaming.
KolStream - Hebrew and English file and streaming transcription using a partially fine-tuned EmbeddingGemma2 audio encoder, streaming reader, and transducer head; includes weights and inference code, requires the base encoder separately, and outputs no punctuation or capitalization.
norsk-asr - Norwegian Bokmål speech recognition using the EmbeddingGemma2 audio encoder and a CTC reader, with weights; recordings only, lowercase unpunctuated output, optional KenLM files under CC BY-SA 4.0.
sea-asr - EmbeddingGemma2-based CTC speech recognition with Indonesian and Tagalog/Taglish weights, word timestamps, and SRT/VTT export on CPU or CUDA; downloads the base encoder separately and outputs lowercase text without punctuation.
Turkish STT - Turkish transcription using EmbeddingGemma2 with a character CTC reader, detachable LoRA, and optional KenLM; provides CC BY-SA 4.0 weights and language model with Apache-2.0 training code, requires the base model, has no streaming, and outputs lowercase text without punctuation; disable LoRA for original embedding behavior.
African speech-retrieval LoRA - Adapter trained on six African languages for same-language speech/text retrieval; requires the base model and does not transcribe or translate.
Bharat-Embed checked 2026-10-14 against its model card, configuration, and published files; author evaluations were not reproduced locally.
Decision Application Examples
- EmbeddingGemma2 Jeff - Node.js examples for support intent classification, spam detection, and triage using Transformers.js and ONNX embeddings; matches labeled examples by cosine similarity without fine-tuning or a trained decision head.
Start here
- Official model page - DeepMind overview and entry points.
- Research paper - Unified multimodal representations, staged training, ablations, and resource-constrained deployment design.
- Model card - Architecture, evaluation, input constraints, and limitations.
- Original checkpoint - Model weights and configuration.
- Developer guide - Architecture, modular loading, and examples.
Model at a glance
| Property | Details |
|---|---|
| Inputs | Text/code, images, video, audio, and mixed inputs |
| Parameters | 270M text; 440M text + vision; 570M text + audio; 740M full model |
| Context | 8,192 tokens shared across modalities |
| Embedding dimensions | 768 (truncatable to 512 / 256 / 128) |
| Model license | Apache-2.0 (consult checkpoint license and policies) |
Sources: model card, developer guide.
Guides and examples
- Text embeddings with Sentence Transformers - Official text retrieval walkthrough.
- Multimodal embeddings with Sentence Transformers - Media and mixed-input examples.
- Official multimodal fine-tuning guide - Text-to-image retrieval training with cross-modal triplets and Sentence Transformers, including before/after evaluation; requires a BF16-capable GPU.
- Transformers model documentation - Lower-level model and processor APIs.
- Minimal multimodal search - A small Python example for local text, image, audio, and video retrieval using NumPy vectors, without a database or UI.
- Gemma-Lens - Text, microphone, and image-query demo over COCO images and ESC-50 audio using direct cosine search, with a step-by-step article; runs on CPU or CUDA, and ESC-50 audio is non-commercial.
- FiftyOne cross-modal search - Tutorial for searching media datasets with text, images, recordings, or a webcam via a remote zoo model and retrieval panel; requires FiftyOne 1.22+, extra dependencies, and model downloads. Audio defaults to the first 30 seconds; camera/microphone access requires localhost or HTTPS.
- UI Search - Browser text/screenshot search across sample components, IBM Carbon, and GitHub Primer, with a reusable Storybook indexer; screenshot retrieval accuracy remains unmeasured.
The Sentence Transformers tutorials require 6.1.0+.
Models and runtimes
| Resource | Route | Notes |
|---|---|---|
| Google checkpoint | Sentence Transformers / Transformers | Reference weights; disable unused encoders for smaller workloads. |
| ONNX Community conversion | Transformers.js | Browser/Node.js examples and backend/dtype guidance. |
| LiteRT text, 270M | LiteRT-LM | Text-only artifact. |
| LiteRT text + vision, 440M | LiteRT-LM | Vision-enabled artifact; see supported-input table. |
| LiteRT full model, 740M | LiteRT-LM | Full multimodal artifact and deployment instructions. |
| LiteRT text + audio, 570M | LiteRT-LM | Community repack of the full model without the vision encoder; text/audio only, with a build manifest. |
| MLX Community collection | Apple silicon | Conversion collection; inspect model cards for runtime/modality support. |
| FluidInference Core ML | Apple Neural Engine / GPU | Text on Neural Engine, image/audio on GPU; macOS 15 / iOS 18+, text limited to 512 tokens and audio to 10-second windows. |
| EverPaper Core AI | macOS 27+ / Apple silicon | Text, image, and audio conversion with Swift/Python runners; Neural Engine/GPU routes, 2,048-token text cap and 30-second audio windows. |
- CowboyCoder Core AI ANE - macOS 27+ / Apple silicon: Text-only FP16 conversion with Python runtime and conversion code; targets Neural Engine with host-side token lookup, fixed 128/512-token shapes, and truncation beyond 512 tokens. Author testing covers a 16 GB M6 Mac mini.
EverPaper conversion checked 2026-10-15 against its model card and published assets; runtime and author-reported numerical checks were not reproduced locally.
Inference Frameworks and Servers
Confirmed second-generation support. Stars update via Shields.io and may be cached.
vLLM support checked 2026-10-14 against the merged PR and model implementation; no local runtime test.
embeddinggemma.c - Native embedding server supporting EmbeddingGemma2 on CPU, Metal, and CUDA (text, image, audio, sampled video, mixed inputs); v2 ROCm/XPU support is pending, and 300M benchmarks describe the first generation.
eg2npu - OpenVINO text embedding server for Intel NPU using EmbeddingGemma2 GGUF weights and a llama-server-compatible API; no image/audio inputs, and the packaged system service is limited to 64-token queries.
Ferro - C++ EmbeddingGemma2 text, image, audio, and video embeddings targeting Intel N100-class Linux devices via OpenCL iGPU, with CPU fallback; requires a source build, OpenCL headers/runtime, separate GGUF weights and media projector, and FFmpeg for video. Long sequences fall back to CPU, and large images can be slow.
GemmaEmbed - Swift package with its own Metal kernels for in-process EmbeddingGemma2 text, image, audio, and mixed-input embeddings; requires Apple silicon macOS 14+, Swift 6, and separate Q8_0 GGUF weights plus the projector for images/audio. Audio clips exceeding the token budget are rejected rather than truncated (about 5 minutes 27 seconds at the default budget).
OpenVLCLIP - Unofficial Python library for EmbeddingGemma2 image/text encoding and optional video-frame search on CPU or CUDA through Transformers; offers an OpenCLIP-inspired API, not a drop-in replacement, and requires Python 3.12–3.14 excluding 3.14.1. Formerly openclip-gemma; the migration guide requires changing the package and imports, with no old import alias.
ComfyUI-EmbeddingGemma2 - Unofficial ComfyUI nodes for text, image, video, and audio similarity and image ranking; requires the V3 node API and separate model download, uses only the first 30 seconds of audio and at most 32 video frames, and may conflict with nodes requiring huggingface-hub 2.x.
embeddinggemma2-rocm - EmbeddingGemma2 image and text embeddings on Linux AMD GPUs via HIP, MIGraphX, and LibTorch, with C/C++, Python, and HTTP interfaces; requires a working ROCm driver and separately prepared model bundles specific to the GPU/software environment. Author testing covers Radeon 890M (gfx1150); other GPUs need compilation and validation.
embeddinggemma2-rust - Unofficial Rust text, image, audio, and video embeddings on CPU or CUDA, with CLI and OpenAI-compatible HTTP serving; requires separate weights, CUDA 13.x libraries for GPU use, WAV audio inputs, and FFmpeg for MP4 decoding.
Rust Embedding Runtime - Self-hosted CPU-only EmbeddingGemma2 text server with an OpenAI-compatible API and model-bundled Linux AMD64/ARM64 Docker images; limited to 1,024 tokens per input, requires explicit task prefixes, and needs NEON/FP16 instructions on ARM64.
EmbeddingGemma2 for Unity - Text, image, and audio embeddings via Unity 6000.3.21f1 and Sentis 2.6.1 GPUCompute; Windows Editor/Player only, separate model downloads, fixed media inputs, and no automatic CPU fallback; initial supported configuration uses 64 GB RAM and 16 GB VRAM.
Practical notes
- Use task-specific prefixes from the model card; query and document prefixes differ.
- Re-normalize truncated vectors and maintain matching query/document dimensions. Validate 128d carefully for multimodal retrieval.
- Use BF16 or FP32 (not FP16) for reference weights. See dtype guidance for converted runtimes.
- Modalities share the 8,192-token budget. Follow multimodal preprocessing before chunking audio or sampling video.
Evaluation
The official benchmark tables report publisher results for text, code, image, visual-document, video, audio, and truncated dimensions. Community benchmark submission requirements are detailed in CONTRIBUTING.md.
Contributing
See CONTRIBUTING.md to suggest second-generation resources or benchmarks.