Mémoire des Anciens: The Grimoire of Souls A computer science and AI student in Togo built Mémoire des Anciens, a local-first web app that records relatives telling oral memories, transcribes them with faster-whisper, and uses Gemma via Ollama to generate a written "page-souvenir" for each recording. The app stores memories as JSON and audio files on disk, exports everything as Markdown, and falls back to displaying the raw transcription when the model returns invalid JSON or Ollama is unavailable. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine https://dev.to/challenges/hacktoberfest-week4-2026-10-26 Some stories disappear without any noise at all. Nobody decides to lose them. They simply stop being told, and one day they are gone. When those voices go quiet, the memories go with them. Mémoire des Anciens "Elders' Memory" , with the subtitle Le Grimoire des Âmes The Grimoire of Souls , is a small web app for keeping those voices. You record a relative telling a memory, either straight from your browser's microphone or by uploading an audio file mp3, wav, m4a or webm . The app transcribes what was said, then turns the transcription into a page-souvenir , a memory page with: All the memories are gathered in the Ofrenda , a gallery of every page-souvenir. The name comes from the altars families build for Día de los Muertos, where people place photos, food and favourite things to honour those who came before. This ofrenda is made of stories and voices instead of marigolds. You can also Exporter export everything as Markdown, so your family's memories are plain text files that you own. I am a computer science and AI student in Togo. On our African continent, and in countries like Togo, many of our stories disappear in very insignificant ways: quietly, without anyone noticing. My grandfather championed our culture and the old traditions. So I built Mémoire des Anciens, a grimoire where a voice can be written down and kept. The theme asks for a ghost in the machine. Mine isn't spooky. It is the gentle kind: a voice that stays in the machine, so it isn't lost. DEMO VIDEO: https://youtu.be/1TPFicEQ2Ls https://youtu.be/1TPFicEQ2Ls Recording a memory , from the microphone or an audio file: The page-souvenir that Gemma writes from the transcription: The gallery , where every memory is kept: Préservez les histoires orales de famille : enregistrez ou téléversez un proche qui raconte un souvenir l'app le transcrit puis génère une page-souvenir . 100 % local : faster-whisper + Gemma via Ollama aucun appel à un service cloud. Prérequis : Python 3.11+, Ollama https://ollama.com , ffmpeg conseillé. python -m venv .venv && source .venv/bin/activate Windows : .venv\Scripts\activate pip install -r requirements.txt ollama pull gemma3 Le modèle Whisper « small » ~480 Mo se télécharge une seule fois au premier usage ; ensuite tout fonctionne hors ligne. ollama serve si Ollama n'est pas déjà lancé uvicorn main:app --port 8000 puis ouvrir http://localhost:8000 Variables optionnelles : OLLAMA MODEL défaut gemma3 , OLLAMA URL , WHISPER MODEL défaut small . To run it yourself: pip install -r requirements.txt ollama pull gemma3 uvicorn main:app --port 8000 Then open http://localhost:8000 . Everything runs on the machine in front of you. small model. It is a download of about 480 MB, done once. After that it works fully offline. uvicorn main:app --port 8000 . static/index.html . ./data/