My terminal is haunted — a Y2K ghost reviews my commands (and she talks back) A developer built terminal-seance, an MIT-licensed, pure-Python CLI and static web app in which a fictional Victorian programmer's ghost named Agnes comments on terminal commands, with every line of dialogue improvised by Google's open-weight Gemma 3 27B model served through OpenRouter's free tier. The tool hooks into bash and zsh via DEBUG traps and PROMPT_COMMAND to react to dangerous, failed or long-running commands, throttling remarks to at most one in five commands and falling back to a bundled list of canned lines on timeout, rate limit or missing API key. It ships with 114 tests covering reaction tiers, throttling, API fallback and the shell hooks. 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 terminal-seance turns your terminal into a séance table. Every command you run is witnessed by Agnes — a Victorian-era programmer's ghost who died in the Y2K production incident at midnight, December 31, 1999, muttering "the code will hold" as the reports fell. I took the theme literally: the machine doesn't just have a ghost in it — the ghost has a name, a death date, a personality, and opinions about your git habits: rm -rf , git push --force , DROP TABLE , curl | sh — she hello or tell me a joke at the prompt and she answers in character It ships as two haunted surfaces: a CLI pipx install terminal-seance + seance install hooks into bash/zsh and a browser séance — the same ghost, same tiers, hosted on Render, where visitors can play with her immediately. The Día de los Muertos flavor is baked in: her color is marigold ANSI 208 — cempasúchil, the flower of the dead , she slips into Spanish "otra vez, cariño?" , and your command history is kept as a Graveyard Ledger . seance summon <№ literally calls a spirit back — it re-runs a past command. Live séance: REPLACE-ME-WITH-YOUR-RENDER-URL free tier: the first visitor wakes the service after ~15 idle minutes — the ghost politely whispers until she's warm, then goes live Try, in order: pytest tests/ -q → git push --force origin main → hello → tell me a joke → seance journal → seance demo . No key needed to try it — and if the service is asleep, run seance demo locally for the same scripted séance, fully offline. | | | | | \ | \/ | | | | \ | | / \ | | / | | | / \ | \ | | / | | | | | | | | | | | |\/| | | | | \| | / \ | | \ \ | | / \ | \| | | | | | | | | | | < | | | | | | | |\ | / \ | | | | | / \ | |\ | | | | | | | | | | | \ \ | | | | | | | | \ | / / \ \ | | | / | | / / \ \ | | \ | \ | | | A haunted CLI companion. Agnes — a Victorian programmer's… MIT-licensed, pure-Python CLI zero runtime dependencies beyond the standard library + a zero-dependency static web séance. 114 tests cover the reaction tiers, the throttle cap, API fallback/cooldown, the shell hooks, and the proxy. The open-source AI: every word Agnes says is improvised by google/gemma-3-27b-it:free — Google's open-weight Gemma 3 27B, served through OpenRouter's free tier. The persona is a single editable system prompt; the model brings her to life. The architecture: flowchart TD subgraph SHELL "interactive bash / zsh" A "DEBUG trap / preexec