{
  "id": 11983149,
  "title": "Recall: A Local-First AI Memory for Everything You’ve Saved",
  "url": "https://urgent.news/2026/10/04/recall-a-local-first-ai-memory-for-everything-youve-saved",
  "topic": "ai",
  "section": "AI",
  "published": "2026-10-04T18:38:17.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/spreadsheets600/recall-a-local-first-ai-memory-for-everything-youve-saved-2o9a"
  },
  "original_language": "en",
  "account": "Title: Recall: A Local-First AI Memory System for Personal Information Organization\n\nRecall is a personal memory system designed by the author for a friend who has a tendency to save a multitude of files, including screenshots, useful webpages, PDFs, notes, images, and various other files. The primary challenge faced by the author was not merely storing these files but locating them when needed. Traditional keyword searches become ineffective when the user cannot recall the exact words associated with the information.\n\nRecall addresses this issue by transforming scattered files into searchable memories. Users can ingest text, webpages, images, screenshots, PDFs, and other file formats, then search the entire collection using natural language. For instance, instead of searching for a specific filename, users can input a description or context, such as \"the screenshot where GitHub could not resolve the host,\" to retrieve the relevant memory.\n\nThe system operates locally, meaning all data remains on the user's device without the need for cloud accounts or APIs. Once a memory has been processed, searching does not require a generative AI model running in the background, ensuring fast retrieval. The code for Recall is open-source, available on GitHub, and includes the backend, frontend, ingestion pipeline, search system, tests, and technical documentation.\n\nThe core functionality of Recall utilizes AI primarily during the ingestion process, rather than for every query. Content is converted into metadata and text, with images processed through OCR and image captioning to become searchable. Embeddings are generated from the searchable text for semantic retrieval, stored in SQLite using FTS5 for lexical search and FAISS for vector retrieval. The final search combines BM25 lexical search, vector search, and metadata + recency + exact-match signals for accurate results.\n\nRecall employs several design constraints to ensure efficiency and usability. The database serves as the source of truth, allowing the FAISS index to be rebuilt as needed. Ingestion is idempotent, using content hashes to prevent repeated processing of the same file. The system is designed to handle AI failures gracefully, ensuring search functionality remains available even if optional AI models are unavailable. The application is optimized for typical laptops, eliminating the need for a dedicated GPU.\n\nThe use of open innovation in Recall allows for the implementation of important features locally, such as image captioning, OCR, and semantic embeddings, without the need to send personal data to remote services. This approach changes the trade-off from uploading personal data to a remote service for AI interpretation to processing data locally, storing useful representations, and performing searches without an online AI dependency. This model also facilitates easier experimentation with different models, as they can be swapped, compared, or removed without requiring significant redesign of the application.",
  "summary": "This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend What I Built I built Recall , a local-first personal memory system for a friend who has a habit of saving everything: screenshots, useful webpages, PDFs, notes, images, and random files that might be useful someday. The problem was not storing those things. It was finding them again. A normal keyword search works…",
  "key_points": [
    "Recall is a local-first AI memory system for organizing personal files.",
    "Users search memories using natural language instead of keywords.",
    "The system processes files locally without cloud accounts or AI during queries."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}