# Ofrenda: A Private, Offline Remembrance Writer for Día de los Muertos

> Source: <https://dev.to/laiba_ashfaq_4b3f4b363ad4/ofrenda-a-private-offline-remembrance-writer-for-dia-de-los-muertos-i3d>
> Published: 2026-11-01 06:18:28+00:00

*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)*

**Ofrenda** is a local app for writing a remembrance of someone who has died, built for Día de los Muertos.

You enter their name, favorite foods and songs, and then share memories. If you get stuck, the model acts as a gentle oral-history interviewer and asks one question at a time, like "What did their kitchen smell like on a Sunday?" When you're ready, it writes a short remembrance addressed to them, plus a "For the ofrenda" list of items to place on the altar, drawn from the foods, songs and objects you mentioned.

For the theme, I read "ghost in the machine" as the memory of a person, kept alive by the stories we tell. I deliberately did not make the model speak as the dead. It only interviews and writes down, and it is instructed to use **only the facts you give it** and never invent details about a real person.

A local, offline tool for writing a remembrance of someone you've lost, in the spirit of Día de los Muertos Open-weight model (via Ollama), Python standard library only, no cloud, no accounts, no telemetry.

```
ollama pull llama3.2        # or any model: OFRENDA_MODEL=gemma3:4b python3 ofrenda.py
python3 ofrenda.py          # open http://127.0.0.1:8731
```

Pull the plug on your Wi-Fi afterwards. It still works.

Remembrances are saved as `.md` + `.json` in `./ofrenda_data/`.

Ofrenda is a local app for writing a remembrance of someone who has died. You enter their name, favorite foods and songs, then share memories. If you get stuck, the model acts as a gentle oral-history interviewer and asks one question at a time ("What did their kitchen smell like on a Sunday?"). It then writes a short remembrance addressed to…

To run it yourself:

```
ollama pull llama3.2
python3 ofrenda.py
# open http://127.0.0.1:8731
```

`llama3.2`, and you can swap it with `OFRENDA_MODEL=gemma3:4b python3 ofrenda.py`.
Stories about someone who has died are among the most private things a person owns. With a closed API, every one of those memories would travel to a server I don't control, under terms that can change.

Running an open-weight model locally gave me things a hosted API couldn't:
