This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Ghost BBS is a terminal app where you hold a séance with the ghosts of dead technology: GeoCities, Adobe Flash and MSN Messenger. Each ghost mourns its golden age and gently roasts the modern web. Switch ghosts anytime with /switch flash.
I read "Ghost in the Machine" literally: the ghosts are the technologies that haunt our memories. GeoCities shut down in 2009, Flash reached end of life in 2020, and MSN Messenger was retired in 2013. Millions grew up on them, and they vanished almost overnight. I wanted to give them one last chance to talk.
Demo
{https://youtu.be/lBhTMguBGYg}
Code
{https://github.com/kanhvee/ghost-bbs}
Single Python file, standard library only. No dependencies, no API keys.
How I Built It
The app runs on Gemma 3 (4B), an open-weight model, served locally by Ollama. It streams replies from Ollama's local HTTP API and keeps separate conversation history per ghost. Each ghost is a shared set of persona rules plus a short factual bio (name, year of death, what it was known for), so a small model stays in character without inventing wild history.
ollama pull gemma3:4b
python ghost_bbs.py
Why Does Open Innovation Matter?
- It works offline. A séance shouldn't need an internet connection.
- Your chats stay on your machine. Nothing is sent to any server.
- Nobody can switch it off. These technologies died when their owners shut them down. A closed API can be deprecated or retired the same way. Open weights keep running as long as you keep the file.
- The honest tradeoff: a 4B model is less factual and consistent than a frontier model, so the ghosts sometimes drift. For a spooky persona, that mostly adds to the charm.
The Spirit of It
PASTE A REAL SHORT EXCHANGE FROM YOUR CHAT, plus one sentence on how it felt (funny, eerie, nostalgic).
Prize Categories
Best Use of Gemma: Gemma 3 runs locally and powers every ghost's voice.
Top comments (0)