This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
Every memory holds a story worth keeping.
Try Echoes: the-memory-lantern.streamlit.app
Explore the code: GitHub — echoes-memory-lantern
What I Built
Echoes — The Memory Lantern transforms a personal memory into a written keepsake that you can read, listen to, and download.
You begin by describing a memory in your own words. It could be a grandmother's kitchen, a familiar street that has changed over time, or a friendship that became an important part of your life. You then choose one of four writing styles:
- Warm and Nostalgic
- Poetic and Reflective
- Gentle and Comforting
- Simple and Heartfelt
Echoes uses an AI language model to turn that memory into a reflection shaped by your chosen style. You can listen to the result using ElevenLabs text-to-speech or your browser's built-in speech synthesis. You can also download the written keepsake and, when audio generation is available, its narrated version.
The idea behind Echoes is simple: sometimes, we want to do more than remember a moment. We want to put it into words.
How I interpreted "Ghost in the Machine"
When I thought about this challenge, I imagined a quieter kind of haunting.
Not a ghost appearing in a machine, but the memories that stay with us long after the people, places, and seasons connected to them have changed or passed.
I thought about the idea of an ofrenda — a place where memories and remembrance are given space. It inspired the metaphor behind Echoes: a small lantern that helps us bring a fading moment into words and give it a voice.
Echoes does not claim to resurrect anyone, recreate a deceased person, or impersonate someone. It works with the memory you choose to share and helps you shape it into something you can keep.
The machine doesn't bring the past back. It helps you give the past a place in the present.
Demo
Try the live application: Echoes — The Memory Lantern
Watch the walkthrough:
The walkthrough demonstrates the project and its core workflow. You can also explore the live application yourself.
Code
GitHub repository: sudiksha8639-debug/echoes-memory-lantern
The repository includes the application code and setup instructions for running it with your own API keys.
How I Built It
Echoes is a Python application built with Streamlit. I kept the workflow intentionally straightforward: enter a memory, choose a writing style, generate a keepsake, and decide whether to listen to or download it.
The main technologies are:
- Python and Streamlit: Build the application interface, handle memory input and style selection, display generated writing, and provide download options.
-
openai/gpt-oss-120bthrough Groq: Generate the written keepsake. The model is open-weight, but Echoes uses Groq's hosted inference API rather than running the model locally. - ElevenLabs text-to-speech: Turn the generated text into narrated audio.
- Browser Speech Synthesis API: Provide an alternative way to listen when ElevenLabs narration is unavailable.
-
python-dotenv: Help manage environment variables during local development so API keys do not need to be hard-coded into the source.
One practical detail I had to account for was that external services can have usage limits. That's why having browser-based speech synthesis as a fallback is useful: the narration experience does not have to depend entirely on the availability of the ElevenLabs service.
What the project does not do yet
Echoes is an early version, and I want to be clear about its limitations.
- It does not run the language model locally or operate fully offline.
- It does not currently provide a persistent library for organizing and revisiting saved keepsakes.
- It relies on external services for AI text generation and, when selected, ElevenLabs narration.
The memory text is sent to the AI provider to generate the reflection. If you choose ElevenLabs narration, the generated text is also sent to that service. Anyone using the application should avoid entering highly sensitive personal information unless they are comfortable sharing it with those providers.
Why Does Open Innovation Matter?
For a project built around something as personal as memory, the technology matters just as much as the experience.
Using an open-weight model gives developers more flexibility to experiment with how AI applications are built and deployed. The model behind Echoes is not inherently tied to a single hosted inference provider, even though my current implementation uses Groq for convenience.
In a future version, the model could potentially be served through a different compatible setup, including self-hosting where the necessary hardware and software requirements can be met. That could create opportunities to explore different deployment choices and greater control over where personal text is processed.
Open-weight models also give developers and researchers opportunities to evaluate, experiment with, and adapt models in ways that may not be possible with a closed API alone, subject to the applicable model licence.
There is an important distinction, though: using an open-weight model does not automatically make an application private or open-source in every respect. Echoes currently depends on hosted services, including Groq and ElevenLabs. A locally hosted version with a carefully designed privacy approach is a possible direction for future development, not a feature the current application already provides.
For me, open innovation means having room to learn, experiment, and improve a project rather than treating the first implementation as the only possible one.
The Spirit of It
I built Echoes around the idea that technology does not need to imitate the people we miss to help us remember them.
Sometimes, all we need is a little help finding the words for a moment that mattered.
A memory may change with time. The details may soften, and the world around it may move on. But writing it down gives us something tangible to return to — a small light against forgetting.
That is what Echoes is meant to be: not a machine that brings the past back, but a lantern for the stories we carry forward.
Built solo by @sudiksha_das_.
Top comments (0)