Installation & CLI Setup
This guide covers installing system prerequisites, setting up Ollama v0.40.4+ with the embeddinggemma-2 multimodal model, installing SemSearch, and using its command-line interface.
1. System Requirements
| Component | Minimum Requirement | Notes |
|---|---|---|
| Operating System | Linux Desktop (X11 or Wayland) | Uses XDG paths, inotify, /sys/class/power_supply, and system tray. |
| Python | Python >= 3.11 |
Required for modern typing and PySide6 >= 6.8.0. |
| Ollama | v0.40.4 or higher | Required for multimodal /api/embed support across text, images, and audio. |
| FFmpeg | ffmpeg (recommended) |
Required for decoding audio streams and sampling video keyframes. |
| Clipboard Utils | wl-copy (Wayland) or xclip (X11) |
Optional, used when copying file URIs with Ctrl+C. |
Installing System Dependencies
2. Ollama Setup & Multimodal Model
SemSearch requires Ollama v0.40.4+ running locally (http://localhost:11434) or on your network.
Install or Update Ollama
Pull embeddinggemma-2
Pull the default multimodal embedding model:
Or pull a quantized GGUF variant directly from Hugging Face:
3. Installing SemSearch
You can install SemSearch directly from GitHub as an isolated desktop/CLI tool using uv or pipx, or inside a local virtual environment.
Method 1: Using uv (Recommended)
To upgrade to the latest release:
Method 2: Using pipx
To upgrade:
Method 3: From Source (Local Virtual Environment)
Run tests using the virtual environment:
4. CLI Usage & Single-Instance Forwarding
Once installed, the semsearch entry point launches the application or forwards commands over local Unix domain socket IPC (semsearch_ipc_<uid>) if an instance is already running:
| Command | IPC Action | Description |
|---|---|---|
semsearch or semsearch --daemon |
DAEMON |
Starts SemSearch anchored in the system tray and listens for the global hotkey (runs the Onboarding Wizard on first launch). |
semsearch --panel |
SHOW_PANEL |
Opens or focuses the Floating Quick Search Panel (ideal for custom WM/Wayland keybindings). |
semsearch --settings |
SHOW_SETTINGS |
Opens the 4-tab Settings Dialog directly. |
Binding semsearch --panel in Window Managers / Wayland Compositors
While SemSearch includes a built-in global hotkey listener (pynput), Wayland compositors (GNOME Wayland, KDE KWin Wayland, Sway, Hyprland) isolate global key events. You can bind semsearch --panel directly in your desktop environment or compositor configuration for instant zero-latency activation:
5. Desktop Autostart & Storage Paths
Enabling "Start SemSearch automatically on desktop login" in Settings → General writes a FreeDesktop entry to ~/.config/autostart/semsearch.desktop:
[Desktop Entry]
Type=Application
Name=SemSearch
Comment=Linux desktop semantic search engine
Exec=/home/username/.local/bin/semsearch --daemon
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Summary of Local File Paths
| Path | Purpose |
|---|---|
~/.config/semsearch/config.json |
User configuration file (AppConfig). |
~/.config/autostart/semsearch.desktop |
FreeDesktop login autostart entry. |
~/.local/share/semsearch/index.sqlite |
General documents, PDFs, images, screenshots, audio, and video index. |
~/.local/share/semsearch/code.sqlite |
Dedicated source code and Jupyter notebook index. |