This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Every developer has a graveyard of abandoned side projects.
Repos with names like todo-app-final-v2, dormant since 2022, holding half-finished auth systems and a single TODO: fix this comment. We pour hours into them, hit a wall, and then abandon them in the dark, never to be opened again.
I built Repo Necromancer to give these codebases a voice.
You paste the URL of a dead GitHub repository. The app uses the GitHub API to read its description, how long it's been dead, and its final few commit messages. Then, it feeds that data into Gemma and generates a dramatic, melancholic eulogy spoken from the perspective of the project itself.
It laments the features it never got, the bugs it still carries, and the developer who abandoned it for a shiny new framework.
Example output from an abandoned project:
"I was supposed to be a revolution. In my final days, your commits changed from 'feat: add authentication' to 'fix typo' to 'give up for tonight'. I still have that memory leak in the user controller. You left me for a Rust tutorial. I hope it makes you happy."
Demo
Code
How I Built It
Stack: FastAPI, HTMX, GitHub API, and Gemma (via Google AI Studio).
Because I only had a weekend, I built this as a single-file Python app (main.py). FastAPI handles the backend, HTMX handles the form submission without a page reload, and the UI uses a spooky, monospace terminal aesthetic.
The hardest part was the prompt engineering. If you just ask an LLM to "write a sad story about this repo," it sounds generic. I had to force the AI into a very specific persona. The prompt explicitly tells Gemma:
- Speak in the first person ("I was meant to be...").
- Frame the actual last 3 commit messages from the GitHub API as its "final words".
- Keep it under 150 words to maintain the punchy, melancholic tone.
I also hit a funny bug: because Gemma on Google's API is a "thinking" model, it would sometimes write its own internal monologue before the eulogy ("The user wants a sad story. I will mention the bugs..."). I had to write a custom Python parser to strip out the AI's thoughts and extract only the final eulogy.
Why Does Open Innovation Matter?
This project is entirely an artistic, creative use of AI. It turns cold, structured data (JSON from the GitHub API) into an emotional narrative.
Open-source models like Gemma are perfect for this because they don't have the rigid, sanitized "safety" filters of closed APIs. A closed model (like ChatGPT) might refuse to roleplay as a "dead" repository, or it might give a dry, corporate response that ruins the "Ghost in the Machine" vibe.
Open models allow for true, uncensored creativity and weird, experimental art. It lets developers use AI not just for productivity, but for commentary and storytelling.
Prize Categories
- Best Use of Gemma — Gemma 3 4B via Google AI Studio.
- Best Use of Render — FastAPI app deployed on Render.
Top comments (0)