This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Every software repository is secretly a graveyard.
Behind every polished main branch lies an eerie catacomb of departed code:
- The ambitious feature branch abandoned 8 months ago during an architecture debate (
feat/graphql-migration). - The frantic midnight spike that fixed an outage but was never cleaned up (
stash@{0}: WIP on hotfix). - The experimental caching layer that stalled when someone left the company (
experiment/redis-layer).
As developers, we carry a collective guilt. We look at our branch list, shudder, and whisper: "I really should clean those up..."
Yet, we never do. Why? Because of a primal fear: what if there is a vital piece of context or logic trapped inside that dead branch? Running a blind git branch -D feels like desecrating a tomb without knowing who was buried there.
For the final week of Hacktoberfest 2026 (Ghost in the Machine), I built GitNecromancer (๐๐ฎ): an atmospheric open-source developer tool and gothic web dashboard that turns repository cleanup into a supernatural sรฉance powered by Google Gemma 2 2B running locally via Ollama, Sentry Agent Tracing, ElevenLabs eerie audio synthesis, and Render.
Instead of staring at stale git logs, GitNecromancer allows you to:
- Survey the Graveyard: Safely inspect unmerged branches, orphaned stashes, and commit stagnation across your repositories.
- Conduct an AI Sรฉance: Summon the spirit of any deceased code artifact. Using Gemma 2 2B, the ghost speaks in the first personโconfessing who created it, what hopeful mission it had, and the tragic conflict or priority shift that killed it.
- Listen to the Ghost Whisper: Hear the spirit speak through eerie atmospheric voice synthesis generated via ElevenLabs.
-
Choose Its Eternal Fate:
-
โก Reincarnate (Resurrect): Gemma analyzes the ancient diff against current
HEADand generates a clean unified patch ready forgit apply. -
๐ชฆ Grant Final Rites (The Git Ofrenda): Provide the code with honorable closure. GitNecromancer writes a commemorative ASCII tombstone into
OFRENDA.mdand safely purges the branch from git memory.
-
โก Reincarnate (Resurrect): Gemma analyzes the ancient diff against current
Demo
Experience the live interactive dashboard immediately without installing anything:
๐ https://git-necromancer.onrender.com
GitNecromancer operates both as an obsidian-dark web dashboard called "The Git Catacombs" and a rich terminal CLI.
1. The Terminal Sรฉance
Running python cli.py scan surveys the local graveyard:
.---. GitNecromancer (๐๐ฎ)
/ \ The Open-Source Sรฉance Engine for Dead Code
| () () | Hacktoberfest 2026: Ghost in the Machine
\ ^ /
|||||
๐ Surveying repo graveyard at: . ...
๐ชฆ Repository Graveyard (Restless Code Souls)
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Type โ Artifact / Branch โ Creator โ Purgatory โ Cause of Death โ
โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ BRANCH โ feat/graphql-migr... โ Devon Vance โ 255 days โ Architecture churn: team decided REST โ
โ BRANCH โ experiment/redis-... โ Sarah Connorโ 207 days โ Memory leak in staging: rolled back โ
โ STASH โ stash@{0} โ Alessio B. โ 161 days โ Interrupted hotfix: developer switched โ
โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
When you channel a spirit with python cli.py seance feat/graphql-migration:
๐ฏ๏ธ Lighting candles for: feat/graphql-migration
Summoning local spirit via Gemma 2 2B (Ollama)...
โโโโโโโโโโโโโโโโโโโโโ ๐ป Spirit of feat/graphql-migration โโโโโโโโโโโโโโโโโโโโโ
โ "I was summoned into existence 255 days ago by Devon Vance. I still recall โ
โ the frantic keystrokes of 'WIP: switch users endpoint to GraphQL schema' in โ
โ feat/graphql-migration. Alas, priorities shifted like mist in the night, โ
โ and my branch was left to wither in the cold purgatory of git history." โ
โ โ
โ ๐ Autopsy: The pull request was never opened; context switching and โ
โ architectural drift doomed feat/graphql-migration. โ
โ ๐ฎ Suggested Fate: MEMORIALIZE (Difficulty: MEDIUM) โ
โ โก Model: gemma2:2b (local) | Tokens: 110 | Traced via Sentry Agent Tracing โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Ritual choices:
- Resurrect: python cli.py resurrect feat/graphql-migration
- Grant Peace: python cli.py exorcise feat/graphql-migration --delete
2. The Git Catacombs (Web Dashboard)
Launching python cli.py web (or visiting the live Render deployment) opens the gothic dashboard:
- Graveyard Cards: Displays time in purgatory, creator, and last commit preview.
- Interactive Sรฉance Modal: Features a flickering candle animation, streaming monologue, and an audio player for ElevenLabs ghost whispering.
- One-Click Patch & Ofrenda: Copy resurrection patches or grant final rites with instant DOM updates.
Code
alessiobianchini
/
git-necromancer
The Open-Source Sรฉance Engine for Dead Code, Abandoned Branches, and Repo Graveyards (Hacktoberfest 2026: Ghost in the Machine)
GitNecromancer (๐๐ฎ)
The Open-Source Sรฉance Engine for Dead Code, Abandoned Branches, and Repo Graveyards.
Built for the Hacktoberfest 2026 Open-Source AI Challenge Week 4: "Ghost in the Machine".
๐ฎ Live Cloud Demo: https://git-necromancer.onrender.com
๐ชฆ The Problem: Every Repo is a Cemetery
Behind every active main branch lies an eerie underworld of forgotten artifacts:
- Feature branches abandoned 9 months ago after a refactor (
feat/oauth2-rewrite). - Experimental spikes that died in merge conflicts (
experiment/vector-search). - Ghostly stashes forgotten since a frantic production hotfix (
stash@{0}: WIP on bugfix).
Developers rarely clean these up because of a primal fear: "What if there's vital logic or context hidden in that branch?"
GitNecromancer (๐๐ฎ) solves this by turning repo maintenance into an atmospheric, gothic sรฉance powered by Google Gemma 2 2B (offline via Ollama), Sentry Agent Tracing, ElevenLabs eerie voice synthesis, and Render.
โจ Features
- ๐ Graveyard Surveyorโฆ
The entire codebase is open-source and hosted on GitHub:
๐ https://github.com/alessiobianchini/git-necromancer
How I Built It
GitNecromancer was engineered with a strict anti-bloat, local-first architecture:
git-necromancer/
โโโ cli.py # Utilitarian, gothic Rich terminal CLI
โโโ render.yaml # Zero-config Render cloud blueprint
โโโ app/
โ โโโ config.py # Settings & environment autodetection
โ โโโ cemetery.py # Git cemetery scanner (branches, stashes, churn)
โ โโโ seance.py # Gemma 2 2B prompt engineering & Ollama client
โ โโโ resurrection.py # Patch synthesis & OFRENDA.md memorial generator
โ โโโ voice.py # ElevenLabs audio generation & disk caching
โ โโโ telemetry.py # Sentry OpenTelemetry agent tracing
โ โโโ web/ # FastAPI gothic web dashboard & Jinja2 templates
โโโ tests/ # 29/29 passing unit & integration tests
1. Local Open-Weight AI with Google Gemma 2 2B
Code privacy is non-negotiable. Developers cannot paste proprietary codebases and internal commit messages into public cloud APIs just to clean up dead branches.
GitNecromancer uses Google Gemma 2 2B running 100% offline via Ollama. Gemma 2 2B proved to be the ideal open-weight model for this challenge:
- Lightweight footprint: Runs comfortably on consumer laptops and developer machines with less than 2GB of VRAM.
- Creative voice & persona: When prompted with git metadata (author, branch name, commit message, time in purgatory, diff snippet), Gemma adopts a gothic, atmospheric first-person persona while maintaining razor-sharp technical diagnostic accuracy.
-
Zero cloud leaks & $0.00 cost: All inference happens on
localhost:11434.
2. Sentry Agent Tracing & OpenTelemetry Instrumentation
Every spiritual invocation is observed through Sentry Agent Tracing:
- Using OpenTelemetry spans (
gen_ai.chat,seance:summon), GitNecromancer captures prompt and completion token counts, latency profiles, and model configurations. - Spans record whether the sรฉance channeled a local Ollama model or utilized the built-in spectral heuristic fallback.
- If Sentry is not configured, the telemetry module acts as a transparent, zero-overhead no-op.
3. Ghost Voice Synthesis via ElevenLabs
To make the sรฉance truly unforgettable, GitNecromancer integrates with ElevenLabs:
- The first-person monologue generated by Gemma is transformed into an eerie, whispering audio confession.
- Audio outputs are deterministically hashed and cached on disk (
audio_cache/) to eliminate duplicate API requests and conserve credits. - If no API key is provided, the system gracefully degrades to text-only mode without warnings.
4. Deployable on Render ("The Git Catacombs")
To allow developers and judges to experience GitNecromancer immediately without installing Ollama locally, the web dashboard is packaged with a render.yaml blueprint:
- Runs FastAPI + Uvicorn on Python 3.11+.
- Includes an automatic Demo Graveyard containing realistic abandoned branches (
feat/graphql-migration,experiment/redis-layer,stash@{0}) so anyone can hold sรฉances in the cloud.
5. Honorable Final Rites: The Git Ofrenda
In Mexican culture, Dรญa de los Muertos celebrates departed souls rather than fearing them.
GitNecromancer embraces this through The Git Ofrenda: when you grant peace to an abandoned branch (python cli.py exorcise <branch> --delete), it carves an ASCII headstone into OFRENDA.md, recording the branch name, creator, and epitaph before safely deleting the branch. You keep the memory and lessons learned forever without cluttering your git graph.
Why Does Open Innovation Matter?
The "Ghost in the Machine" theme is often treated as a spooky trope, but in software engineering, ghosts are very real: they are the legacy code, forgotten architectural decisions, and abandoned branches that haunt our repositories.
This project demonstrated why open-weight models like Gemma 2 are essential for the future of software development:
- Privacy: Proprietary repositories contain corporate trade secrets and intellectual property. Open-weight models allow developers to build AI-assisted tools that run entirely air-gapped on developer workstations.
- Affordability: Building local developer utilities shouldn't require monthly SaaS subscriptions or token metering. A local Gemma 2 2B model costs $0.00 to run for a million sรฉances.
- Hackability & Joy: Open tooling allows us to take serious technical problemsโlike branch drift, merge debt, and repository rotโand turn them into creative, joyful, and memorable experiences.
The Spirit of It
The breakthrough moment happened at midnight while running the first sรฉance against a dusty branch from 2024.
Seeing the flickering ASCII candle appear in the terminal, followed by Gemma 2 delivering a melancholic, first-person confession:
"I was summoned into existence 255 days ago by Devon Vance. I still recall the frantic keystrokes of 'WIP: switch users endpoint to GraphQL schema'... Alas, priorities shifted like mist in the night..."
Every developer on the team immediately understood. We didn't just delete a branch; we listened to its story, extracted what was valuable, and laid it to rest with dignity. It turned a chore into an unforgettable ritual.
Prize Categories
I am submitting GitNecromancer for the following Hacktoberfest 2026 categories:
- ๐ Best Use of Gemma ($200): Local, offline inference via
gemma2:2busing Ollama for persona embodiment, architectural autopsies, and patch synthesis. - ๐ Best Use of Render ($200): Deployed cloud service using
render.yamlwith the interactive Git Catacombs web dashboard at https://git-necromancer.onrender.com. - ๐ Best Use of Sentry Agent Tracing ($100): Full OpenTelemetry
gen_ai.chatspans instrumenting token usage, latency, and sรฉance execution. - ๐๏ธ Best Use of ElevenLabs ($100): Eerie voice synthesis rendering Gemma's spectral monologues into whispered confessions.
- ๐ Overall Week 4 Winner ($250): An authentic, human interpretation of the "Ghost in the Machine" theme solving a universal developer pain point.
Built with ๐ by Alessio Bianchini. Let me know in the comments: what is the oldest dead branch haunting your repository right now?
Top comments (0)