memsearchmanual
MEMSEARCH / MANUAL

Memsearch manual

Search files and iCloud Photos on your Mac by meaning, using a local index and Google Gemini embeddings.

Memsearch is an open-source macOS app for semantic search. It indexes supported files and iCloud Photos, stores their vectors in a local ChromaDB collection, and lets you search with the details you remember instead of an exact filename.

Latest behavior only

This manual describes the current main branch and is maintained by hand. It has no version selector and does not fetch content from the application repository at build time.

Choose your path

Requirements

Use caseRequired
Desktop appmacOS, a Gemini API key, and network access for Gemini calls
iCloud PhotosPhotos permission; network access when an asset must be downloaded from iCloud
Backend or CLI from sourcePython 3.12 or newer and uv
Electron app from sourceNode.js and npm, in addition to the backend requirements
Raycast extensionRaycast, Node.js/npm for source installation, and a running Memsearch backend

Get a Gemini key from Google AI Studio. The current packaged app can locate or install uv while preparing its backend on first launch.

Key concepts

What runs where

ComponentRoleDefault connection
Electron desktop appOnboarding, search UI, settings, backend lifecyclehttp://127.0.0.1:7242
FastAPI backendIndexing, Photos access, embedding calls, vector searchListens on 127.0.0.1:7242
ChromaDBPersistent vector index and result metadataLocal filesystem
Google GeminiCreates document/image and query embeddingsGoogle API over the network
Raycast extensionSearch and index-status commandshttp://localhost:7242 by default
memsearch CLIDirect indexing, search, status, clear, and server commandsRuns backend modules locally

The API has no authentication. Keep it bound to the loopback host unless you understand the exposure described in the API security note.

The basic workflow

  1. Add one or more folders, and optionally allow Photos access.
  2. Start indexing. Memsearch extracts or prepares content and asks Gemini for embeddings.
  3. Memsearch writes vectors, file metadata, and thumbnail references to local storage.
  4. Enter a natural-language query. The query is embedded and compared with the local vector index.
  5. Open a result in its native app, Photos, or Finder.

Local index does not mean offline indexing

ChromaDB and thumbnails remain on your Mac, but content used to create embeddings is sent to Google Gemini. Searches also send the query text to Gemini.

Manual map

PageWhat it covers
Quick startRelease installation, quarantine workaround, onboarding, and first search
SearchQuery syntax, filters, scores, and result actions
IndexingFolders, progress, cancellation, formats, exclusions, and clearing
Photos and peoplePhotoKit permissions, iCloud assets, face-name data, and Photos actions
RaycastSource installation, commands, filters, actions, and connection checks
CLIEvery current command, argument, and example
ConfigurationEnvironment variables, persisted settings, paths, and precedence
APICurated endpoint reference and errors
Privacy and architectureData flow, local storage, Gemini payloads, logs, and key storage
TroubleshootingStartup, permissions, API-key, indexing, port, log, and reset fixes

The project source and releases are available on GitHub and the Releases page.

On this page