cd /news/artificial-intelligence/rest-in-notes-a-local-ai-that-haunts… · home › topics › artificial-intelligence › article
[ARTICLE · art-161438] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

Rest in Notes: A Local AI That Haunts You Back Into Your Own Vault

A developer built Haunted Vault, an open-source tool that scans a folder of Markdown notes (including Obsidian vaults), maps each note as a node and each [[wiki link]] as an edge, and marks notes untouched for 14 or more days as "ghosts." A local Ollama model (gemma3:1b) generates epitaphs and a "haunting report" for neglected notes, while open `- [ ]` todos age from Recent to Old to Abandoned. The stack is Flask, Ollama, D3.js and vanilla JS/CSS, with MongoDB Atlas as an optional store; the developer chose local inference so private notes never leave the machine.

by read4 min views3 publishedOct 31, 2026

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

Every note-taker has a graveyard. Mine is a folder of Markdown files I swore I'd come back to: half-finished lecture notes, a "project ideas" list from August, a todo that has said - [ ] revise since July.

Haunted Vault points at a folder of Markdown notes (an Obsidian vault works) and draws that graveyard. Each note is a node, each [[wiki link]] is an edge, and any note untouched for 14+ days becomes a ghost.

Click a ghost and a local model gives it a tombstone:

There's also a haunting report, a short, spooky-but-kind summary of your most neglected notes. Your open - [ ] tasks age from Recent to Old to Abandoned, so forgotten todos turn into ghosts too.

For the theme, I read "ghost in the machine" literally and emotionally. The ghosts are the parts of your own thinking that your tools quietly keep and never surface. The AI's job isn't to scare you. It's to make you feel a little guilty, then show you the way back in.

Notes you stop touching turn into ghosts. A local AI writes their epitaphs and tells you how to bring them back.

Live demo: https://hiyalukka.github.io/Haunted-Vault/

Built for the DEV x Hacktoberfest Open-Source AI Challenge, Week 4: Ghost in the Machine.

Point it at a folder of Markdown notes (an Obsidian vault works). It scans them and draws a graveyard map:

[[wiki links]]. Notes untouched for 14+ days become ghosts.- [ ] todos from your notes. Tasks also age from Recent to Old to Abandoned, so forgotten ones turn into ghosts too. Stack: Flask, Ollama running gemma3:1b (open-weight), D3.js, vanilla JS/CSS, and MongoDB Atlas as an optional store.

The pipeline is deliberately small:

scanner.py``[[links]] and ghost.py`` app.py``static/ Two design choices mattered most:

tasks.json. GHOST_MODEL to any model Ollama can run.

ollama pull gemma3:1b
python make_demo.py   # generates a demo vault with old and new notes
python app.py

A notes vault is about the most private thing you own: half-formed ideas, personal reflections, unfinished plans. A tool that asks an AI to comment on your abandoned notes is only usable if the notes never leave your machine.

That's what a closed API wouldn't give me. With an open-weight model on local inference there's no API key, no per-call cost, no rate limit, and it works offline. I can scan a whole vault without worrying what each call costs or who sees the text. And because the model is just a setting, anyone can swap in a bigger or smaller one that fits their hardware.

A 1B model is small, and I'd rather be honest about that. Its epitaphs can be cheesy, which suits a graveyard. For a short, structured, creative output like this, a small local model is enough, and the privacy is worth more than a bigger model's polish.

Most productivity tools are cheerful about your unfinished work. They show a progress bar, a streak, a gentle "you have 47 unread items." Nobody tells you the truth, which is that some of those notes were once the most exciting thing you'd thought of all week.

That's the feeling I built this around. A note isn't clutter. It's a version of you who cared about something enough to write it down. When you stop opening it, it doesn't disappear. It just goes quiet, and the machine keeps holding it.

So I made the machine speak for the dead, kindly. The epitaph gives the note back its dignity: this was an idea about something you wanted to understand. The cause of death is honest without being cruel: most notes don't die because the idea was bad, they die because life got busy. And the resurrection ritual is deliberately small, fifteen minutes and one step, because the only way to bring a ghost back is to walk into the room.

If someone opens the graveyard, sees a cluster of grey nodes, and thinks oh, I forgot about that one, and then actually opens it, the project did its job. It's a ghost story where the ghost isn't there to haunt you. It's there to be remembered.

Best use of Gemma

Best use of MongoDB

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @haunted vault 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/rest-in-notes-a-loca…] indexed:0 read:4min 2026-10-31 · —