This is my submission for the Hacktoberfest Open-Source AI Challenge: Week 4 — “Ghost in the Machine.”
Repo Ofrenda: a memory timeline for code
Software outlives the people and conversations that made it. A Git log preserves dates, commit messages, contributors, and changed files, but it is hard to see the shape of a project's past in a terminal listing.
Repo Ofrenda turns that history into monthly chapters. Select a chapter and a locally run open-weight model writes a short remembrance from the Git record, with commit references beside the story.
This takes a different path through code archaeology from investigating a suspicious line: the aim is to help someone inheriting a repository see its seasons and milestones.
Try it
- Interactive preview: Repo Ofrenda on GitHub Pages
- Source code and setup: GitHub repository
The public preview uses a fictional neighbourhood library repository and clearly labeled sample stories. It does not call a hosted model; the model-backed experience runs locally, so repository history does not need to leave the developer's machine.
To run that experience with Ollama:
ollama pull qwen2.5:3b
python3 make_demo.py /tmp/ofrenda-demo
python3 repo_ofrenda.py /tmp/ofrenda-demo
Then open http://127.0.0.1:8787. The README has instructions for using the tool with another Git repository and choosing a different Ollama model.
How it works
- Git provides up to 500 commits across local branches: date, author, subject, and changed paths.
- Repo Ofrenda groups these records by month and renders a timeline.
- Selecting a chapter sends its commit metadata to the configured local Ollama endpoint.
- The prompt asks the model to stay within the supplied record and cite commit hashes. The app falls back to an evidence-only summary if the model is unavailable, does not cite a commit, or cites one outside the supplied records.
- The source commits remain visible beside the story.
Citations help readers inspect the evidence, but they do not prove that every sentence is supported. The narration is an interpretation, not an authoritative account of contributors' intent.
Why open innovation matters here
Commit messages and contributor names can reveal private project context. Repo Ofrenda binds its web server to 127.0.0.1, reads commit metadata rather than source files, and uses a local Ollama model instead of a hosted inference service. Readers can swap models to fit their hardware or run the timeline's evidence fallback while fixing a local model setup.
Local inference has trade-offs: the model needs to be downloaded first, and generation speed depends on your machine. Once installed, the model can narrate a chapter without sending its commit metadata to a hosted AI provider.
What I built and verified
- Python standard library for the local server and Git integration
- Git as the history source
- Ollama-compatible local model interface for open-weight narration
- A responsive HTML, CSS, and JavaScript interface
- An MIT license and a reproducible fictional Git fixture
I verified the local timeline and story endpoints against six fixture commits across three months, including the evidence-only fallback. I did not run Ollama's model in this build environment because Ollama was not installed and available memory was limited. The public preview is a static, synthetic example; model narration is available by running the open project locally.
Related reading
Two DEV posts helped shape the constraints: “NOT IN CORPUS — teaching a local model to abstain instead of hallucinate” by @qaevelyn, which emphasizes tested abstention when evidence is missing, and “I Built a Private AI Assistant That Queries My Git History and Project Management Data — Using Only Local LLMs” by @pouria_zand, which explores keeping repository questions local.
The current prototype groups history by month. Next, I would like to let people curate chapters around releases and compare each narration with the exact commit diff. What project memories would help you when you inherit a codebase?
Top comments (0)