This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
I built Recuerdos.local, a fully offline, voice-interactive digital ofrenda (altar) and memory archivist. It acts as a gentle conversational companion that interviews you about a lost loved one, transcribes your stories, and weaves them into a beautiful, static digital remembrance—extracting favorite foods, songs, and core memories along the way.
The inspiration came from my family's DĂa de los Muertos traditions. We spend hours telling stories about those who have passed, but those oral histories fade. I wanted a way to preserve them without inviting corporate data-mining into our most intimate moments of grief and remembrance.
Demo
Here is a terminal walkthrough of a session where I build an ofrenda for my grandfather:
Since the project involves private family data, the live output generates locally on localhost:3000 and is not hosted publicly.
How I Built It
Recuerdos.local is built entirely on open-source AI and runs strictly on local hardware. The open pieces are the only reason this project was possible:
-
Voice Transcription: I used Whisper.cpp (specifically the
base.en-esmodel) to capture and transcribe spoken family stories in real-time. It seamlessly handles code-switching between English and Spanish, which is crucial for my family. - The "Spirit" Engine: The core conversational logic runs on Meta Llama-3.1-8B-Instruct, executed completely locally via Ollama.
- Agent Framework: A lightweight LangChain harness manages the state. It takes the Whisper transcripts and uses Llama-3.1 to gently prompt the user for more details (e.g., "You mentioned your grandmother's tamales—do you remember what music played in the kitchen when she made them?").
- The Output: Once the session closes, the LangChain agent processes the context window to output a formatted Markdown file representing the digital ofrenda.
Why Does Open Innovation Matter?
When building something that touches on death, memory, and family heritage, privacy is not just a feature; it is a fundamental sign of respect.
- Total Data Sovereignty: I refuse to send my family's intimate stories of grief, our secret recipes, or the names of our departed to a closed corporate API where they might be logged or used as training data. Open-weight models ensure our ancestors' memories stay strictly inside our home.
- Offline by Design: By running Ollama and Whisper.cpp on my machine, this project works perfectly with the Wi-Fi completely turned off. It feels fitting for DĂa de los Muertos: a self-contained, quiet space that requires no connection to the outside world—just a connection to the past.
- Zero Ongoing Costs: Because it relies on local inference, I can package this up on an old laptop, leave it running in the living room during the holiday, and never worry about racking up API billing limits while my family spends hours talking to it.
My Agent Session
You can see the evolution of the prompt engineering, the LangChain state management, and the local model configuration in my DevRelay session:
The Spirit of It
The moment this project actually landed was during testing last weekend. I asked my mom to try it out by talking about her late father. She started telling a standard story about his old truck. The local Llama model picked up on a stray detail she mentioned about the radio and asked, "What station was usually playing on that radio?"
She paused, teared up, and suddenly remembered the exact name of a defunct local Tejano radio station from the 1980s. She spent the next twenty minutes talking about the music they listened to. That detail would have been lost forever if the agent hadn't nudged her. Now, it's permanently etched into his digital ofrenda.
Prize Categories
- Local LLM Pioneer
- Best Use of LangChain
Top comments (0)