cd /news/ai-tools/seance-shell-a-local-ghost-that-haun… · home › topics › ai-tools › article
[ARTICLE · art-161800] src=dev.to ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

Séance Shell: A Local Ghost That Haunts Your Terminal

A developer built Séance Shell, an open-source terminal companion that uses a local Gemma 3 model via Ollama to whisper a single eerie reflection after selected commands like git reset --hard or pytest. The tool sends only a sanitized structured context to the model, validates output to one sentence of at most 15 words, and stays silent if the model is unavailable, running entirely offline with no cloud API or account.

by read3 min views1 publishedNov 1, 2026

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine

Séance Shell is a haunted terminal. A small ghost lives in your Bash or Zsh session, watches for the moments that matter, and murmurs a single eerie sentence about what just happened.

It reacts to two kinds of events:

git reset --hard, git clean -fd, or rm pytest, npm run build, or cargo build Once the command has finished, the ghost speaks:

$ git reset --hard HEAD~1
ghost: the past has accepted your changes, and forgotten your future.

That's the whole product. The ghost is a companion for reflection, not an assistant for execution. It never suggests commands, never runs anything, and never offers advice.

How I read the theme: the prompt suggested "a haunted terminal that possesses your shell and whispers back eerie commentary." I wanted that, but with restraint. Most AI tools are loud and eager to help. A good ghost lingers at the edge of the room, says one unsettling thing, and goes quiet. Séance Shell is a ghost that knows its place.

A quiet, local-AI terminal companion that offers one short reflection after selected commands. The ghost is atmospheric, not an assistant: it gives no advice, runs no generated text, and never retries a command.

$ git reset --hard HEAD~1
ghost: the past has accepted your changes, and forgotten your future

Reflections are generated independently by Ollama on your machine with gemma3:latest. Model output is validated before display. If the local model is unavailable, the reflection is skipped.

seance reflect --context request—short sanitized context. Shell hooks do not send the command text to the model. To run it locally you need Ollama and the gemma3:latest model. The shell hook works without the model, so the ghost only goes silent if Ollama isn't running.

The open-source pieces are what make this work:

gemma3:latest) No cloud API, no hosted inference, no account. Three design decisions shaped the build.

The shell doesn't send the raw command string to the model. It sends a structured description:

The model gets enough to set a mood but nothing it could be tricked by or leak. It is not a coding agent and can't be steered by arbitrary shell content.

The model is asked for one sentence, at most 15 words and 180 characters. If the response is malformed, multi-line, or too long, it's discarded and the ghost stays silent. The text on screen is a constrained artifact, not whatever the model felt like saying.

Séance Shell never retries commands, never executes anything, and never reinterprets what you did. It's a passive observer. That modesty is what makes it usable in a place where you're making decisions at speed.

A terminal is about as personal as software gets. It holds your file paths, repo names, half-finished experiments, and the commands you'd rather not explain. An always-on ghost watching that is only acceptable if it lives on your own machine.

Open-weight models made that possible in three ways:

A closed API could have written the sentences. It couldn't have given me a ghost that is private, offline, and mine, and that's the part that makes it feel like a haunting rather than a service.

The first time it fired, I ran git reset --hard HEAD~1 on a throwaway branch and the ghost answered: "the past has accepted your changes, and forgotten your future." It was a small moment, but the one-line reminder that I had just erased something did what no warning dialog ever has. It made me .

Best Use of Gemma: Gemma 3 runs locally through Ollama as the model behind every one of the ghost's reflections.

── more in #ai-tools 4 stories · sorted by recency
── more on @séance shell 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/seance-shell-a-local…] indexed:0 read:3min 2026-11-01 · —