DEV Community

Rohit Itagi
Rohit Itagi

Posted on AI-assisted

Stop Searching Your Screenshots. Just Ask.

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🀝

This is a submission for the

Remember Why β€” You Saved It for a Reason

What I Built

The Problem

People save screenshots while learning and working because something seems important at the time. Later, those screenshots become difficult to search, and the original context is often forgotten.

I wanted to solve that problem with a simple question:

What if you could ask your own saved screenshots what you were interested in at the time?

Built for a Friend

I built Remember Why for my friend Rakshitha, who regularly saves screenshots while learning and working, but later has trouble remembering what she saved and why it mattered.

The goal was to turn those forgotten screenshots into a searchable personal memory instead of another folder of files.

The Solution

Remember Why is a local-first AI memory assistant that helps people rediscover forgotten context behind saved screenshots.

Instead of searching through hundreds of screenshots by hand, you can ask questions such as:

  • β€œWhat did I save about MCP?”
  • β€œWhat did I save about PyTorch?”
  • β€œWhy did I save MCP_Architecture.png?”

Remember Why retrieves relevant screenshot memories using semantic search.

For β€œwhy did I save this?” questions, it combines temporal proximity with semantic relationships to provide possible context.

It deliberately does not pretend to know the user's true intent. Retrieved OCR, filenames, timestamps, and similarity scores are treated as evidence, while inferred context is clearly labeled.

Demo

Video Demo: https://youtu.be/8UyR7Y0YTQ8

The demo shows:

  1. Asking Remember Why about saved MCP memories.
  2. Retrieving relevant memories using semantic search.
  3. Displaying the original saved screenshot.
  4. Exploring related memories.
  5. Showing possible context.
  6. Observing the LangGraph agent execution through Sentry.

Code

GitHub: https://github.com/Rohith-Itagi7/remember-why.git

How I Built It

  • Qwen3 4B + Ollama β€” local open-weight LLM for AI inference.
  • LangGraph β€” orchestrates the AI agent and its tool-calling workflow.
  • MCP Python SDK β€” exposes screenshot-memory capabilities as tools the agent can use.
  • Tesseract OCR β€” extracts text from screenshots locally.
  • Sentence Transformers (all-MiniLM-L6-v2) β€” converts screenshot text into semantic embeddings.
  • FAISS β€” stores and searches those embeddings for semantic memory retrieval.
  • Sentry Agent Tracing β€” provides observability into the actual agent, model, and tool execution.

The core pipeline is local:

Screenshots
    ↓
Tesseract OCR
    ↓
Sentence Transformers
    ↓
FAISS
    ↓
MCP Tools
    ↓
LangGraph Agent
    ↓
Qwen3 4B via Ollama
    ↓
Grounded Response
Enter fullscreen mode Exit fullscreen mode

Why Does Open Innovation Matter?

  • Privacy: The core memory pipeline runs locally, so personal screenshots do not need to be uploaded to a closed AI API.

  • Model freedom: Qwen3 4B runs locally through Ollama, and the model can be changed without redesigning the application around a single proprietary API.

  • Open agent architecture: LangGraph and MCP let me control how the agent discovers and uses memory tools instead of relying on a fixed closed-agent workflow.

  • Custom retrieval: Sentence Transformers and FAISS let me build and modify the semantic-memory layer myself.

  • Transparency: The OCR, embeddings, retrieval, MCP tools, and agent behavior can be inspected and modified rather than treated as black boxes.

  • Cost: Once the open-weight model and local components are installed, the core AI workflow can run locally without per-request AI API costs.

  • Reproducibility: Others can run and adapt the project using the same open components with their own local data.

Prize Categories

Sentry Agent Tracing

Remember Why uses Sentry Agent Tracing to observe the actual LangGraph agent execution, including model operations, MCP/tool execution, and HTTP operations.

Team Submission

Solo submission β€” no teammates.

Top comments (0)