SemSearch
A fast, 100% local, keyboard-driven multimodal semantic search engine for the Linux desktop. Find documents, PDFs, screenshots, photos, audio recordings, videos, and source code by meaning using unified Ollama embeddings.
Ollama v0.40.4+ Required
SemSearch relies on Ollama's native multimodal /api/embed endpoint introduced in v0.40.4+ to generate unified embeddings across text, images, and audio. Make sure your local Ollama installation is updated before running SemSearch.
Key Features
Cross-modal retrieval & instant desktop previewsTrue Cross-Modal Search
Type "black hole" and immediately find screenshots or downloaded pictures of a black hole—even when the file is named Captura de pantalla_20260927.png with zero matching text in the filename.
Multimodal Ollama Embeddings
Uses embeddinggemma-2 by default via Ollama and supports any verified multimodal embedding model with configurable context window validation (num_ctx).
Hybrid Lexical + Semantic Ranking
Combines instant SQLite FTS5 BM25 keyword search with vector cosine similarity and modality-aware Z-score normalization so exact matches and conceptual hits rank naturally.
Spotlight-Style Quick Panel
Summon a floating search bar from anywhere on your desktop with Ctrl+Shift+Space (or semsearch --panel) for instant keyboard-first navigation and live previews.
Interactive Multimodal Previews
Inspect PDF pages with yellow query highlights, high-DPI images, FFmpeg video keyframes, audio waveform scrubbers, and line/keyword-highlighted source code & documents right inside the panel.
Developer Source Code Search
Prefix any query with code: for symbol-aware retrieval across 60+ languages and jump straight to the matching line in VS Code, Cursor, Zed, Sublime, or JetBrains IDEs.
100% Private & Offline
Every extraction, float16 vector, and SQLite index stays strictly on your machine (~/.local/share/semsearch/). Secrets (.env, SSH keys, .pem, .kdbx) are automatically excluded.
Smart Background Indexing
Differential inotify filesystem watcher, 4-tier priority queue, AC/battery power policies via /sys/class/power_supply, and scheduled indexing windows.
23 Languages & RTL Support
Built-in localization for 23 languages with automatic system locale detection and full Right-to-Left (RTL) layout adaptation for Arabic, Persian, and Hebrew.
Interface Gallery
Quick search panel, code search & model settingsFloating Quick Search Panel (Ctrl+Shift+Space)
Instant pop-up launcher with grouped results and side-by-side live preview:

Semantic Source Code Search (code:)
Search functions, classes, and implementation logic by concept with line-level preview and one-click IDE opening:

Multimodal Model & Storage Settings
Connect to any local or remote Ollama instance, switch between verified multimodal embedding models, configure the context window size (num_ctx) validated against your model's maximum capacity, and manage your local index:

Documentation
Deep dive into architecture, ranking & extractorsArchitecture & Design
Explore the single-instance PySide6 daemon, QLocalServer IPC, dual SQLite WAL storage, 4-tier priority indexer, and differential inotify watcher.
Hybrid Search & Ranking
Deep dive into dual-query routing, modality-aware Z-score normalization, FTS5 keyword coverage, symbol definition scoring, and quality gating.
Multimodal Extractors
Learn how documents, two-stage PDFs, EXIF-normalized images, FFmpeg audio windows, perceptual-hash video frames, and source code are segmented without OCR.
Desktop UI & Shortcuts
Guide to the Floating Quick Search Panel, dynamic system tray icon, interactive multimodal previews, and deep-link desktop actions.
Configuration & Models
Reference for the 4-tab Settings dialog, 5-step Onboarding Wizard, Ollama multimodal model verification, config.json schema, and 23-language i18n.
Installation & CLI Setup
Step-by-step instructions for installing Ollama, pulling embeddinggemma-2, installing SemSearch via uv or pipx, and CLI usage.