This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Every family has a drawer, a shoebox, or an old hard drive holding the physical and digital remnants of lives that came before: handwritten letters from wartime, grandmother's stained recipe for elderberry cordial, cassette oral histories, and fading sepia portraits.
Today, these memories face a silent crisis. When families attempt to digitize and search them with modern cloud AI, they face an unacceptable tradeoff:
- Cloud Privacy Leaks: Handing deeply private family heirlooms to corporate servers that train commercial models on private history.
- AI Hallucination & Fabrication: Cloud chatbots that confidently invent dates, scramble ancestors' names, and weave false genealogies.
- Generative "Necromancy": Deceptive deepfake avatars and synthetic voice clones that simulate conversations with deceased loved ones instead of honoring their real words.
EchoVault is my answer to this crisis: an air-gapped, local-first artificial intelligence memory archive built from the ground up to protect personal history with cryptographic provenance and zero hallucinations.
How I Interpreted "Ghost in the Machine"
In popular culture, the "ghost in the machine" often evokes a fear of synthetic consciousness. But in EchoVault, that concept is turned on its head:
- The "Ghost" is the authentic human soul embedded in historical artifactsโthe real words, handwritten recipes, and spoken cadence of those who came before us.
- The "Machine" is local, open-weight artificial intelligence (Llama 3.2, Qwen 2.5, Ollama) acting not as a synthetic impersonator, but as a faithful, incorruptible librarian.
- EchoVault strictly avoids generative impersonation. It uses AI to index, cross-reference, and illuminate real human truth, standing guard over memories so they outlive the moment.
Demo
EchoVault is intentionally designed as an air-gapped, local-first system that runs 100% on your local hardware to guarantee privacy and family data sovereignty. Because it protects sensitive memories without sending them to third-party cloud servers, there is no centralized commercial deployment by design.
Instead, anyone can reproduce and test the entire platform in seconds:
- ๐ Open-Source Repository: github.com/arnab825/EchoVault
- โก 1-Command Local Launch via Podman:
git clone https://github.com/arnab825/EchoVault.git
cd EchoVault
podman compose up --build -d
(Then visit http://localhost:3000)
- ๐งช Interactive Synthetic Demo Sandbox: EchoVault includes a built-in sandbox at
/demopre-loaded with realistic, fictional historical records (a 1952 lantern walk, a 1944 wartime letter, and conflicting 1923/1925 clocktower bell repair logs). Judges and users can test the conversational RAG grounding, citations, and uncertainty engine without uploading any personal files. - ๐ In-App Interactive Documentation Portal: A full architectural manual and live REST API explorer built right into
/docs.
Visual Walkthrough of EchoVault
| Editorial Hero & Challenge Track | The Preservation Crisis Analysis |
|---|---|
![]() |
![]() |
| Editorial landing page built for the Hacktoberfest Ghost in the Machine challenge. | Systematic analysis of privacy threats, AI hallucinations, and format drift. |
| Archive Overview & System Diagnostics | Grounded Conversational RAG |
|---|---|
![]() |
![]() |
Air-gapped dashboard tracking 6 indexed memories, active local LLM (llama3.2:3b), and SQLite storage. |
Conversational retrieval strictly citing exact source passages with confidence metrics. |
| Chronological Timeline & Historical Conflict Engine | Remembrance Room Sanctuary |
|---|---|
![]() |
![]() |
| Visual timeline flagging historical discrepancies (Parish ledger vs Uncle Thomas's journal). | Sanctuary honoring departed ancestors with authentic reflections, rejecting voice deepfakes. |
| Open-Weight Model Sizing & Settings | Synthetic Archival Demo Sandbox |
|---|---|
![]() |
![]() |
| Direct control over local Ollama inference URL, model selection, and one-click ZIP export. | Guided 3-step sandbox allowing instant evaluation with zero private data upload. |
Code
EchoVault is 100% open-source under the Apache License 2.0:
arnab825
/
EchoVault
Keep the stories. Preserve the echoes. An air-gapped, local-first AI memory archive powered by Llama 3.2, Ollama & Podman. Zero cloud telemetry, evidence-backed citations, and zero hallucinations.
EchoVault ๐๏ธ
Keep the stories. Preserve the echoes.
A private, local-first AI memory archive built for the Hacktoberfest 2026 โGhost in the Machineโ challenge.
๐ Executive Summary & Mission
EchoVault is an air-gapped, local-first artificial intelligence memory archive engineered to help families, historians, and researchers preserve, index, and query personal histories with verifiable provenance.
Most modern AI solutions require uploading deeply personal family heirloomsโletters from wartime, handwritten recipe cards, oral history audio, and vintage portraitsโto proprietary third-party clouds where data is mined, shared, or hallucinated upon. EchoVault challenges this paradigm:
- 100% Local & Air-Gapped: Zero telemetry, zero external API keys, zero cloud egress. Every neural inference and vector embedding runs directly on your machine via Ollama or local container runtimes.
- Grounded RAG with Verifiable Citations: When querying your archive, EchoVault cites exact source IDs and text excerpts. If evidence does not exist, it gracefully states uncertainty rather than fabricating memories.
- โฆ
The codebase is organized into clean, containerized modules:
-
backend/: FastAPI application server running Python 3.12, Pydantic v2, and SQLite 3 in WAL mode. -
frontend/: Next.js 14 App Router presentation layer with Tailwind CSS, accessible dark-mode glassmorphism, and responsive micro-animations. -
compose.yaml: Certified rootless Podman Desktop / Docker Compose orchestration. -
docs/: 24 technical documentation specifications (PRD, TRD, Architecture, Threat Model, Privacy by Design, and API Reference).
How I Built It
EchoVault is architected around an air-gapped three-tier local architecture with zero external network dependencies:
[ Next.js 14 App Router UI (Port 3000) ]
โ REST / JSON
[ FastAPI Application Server (Port 8000) ]
โโโ SQLite 3 (WAL Mode Metadata & Timeline)
โโโ Local High-Dimensional Vector Store
โโโ Upload Vault (SHA-256 Deduplication)
โ HTTP Local Bridge
[ Ollama Daemon on Host (Port 11434) ]
โโโ Llama 3.2 3B (Primary Reasoning & Nuance)
โโโ Qwen 2.5 1.5B (Multilingual Historical Documents)
โโโ Nomic Embed Text (8,192-Token Dense Passage Vectors)
1. Open-Weight Models & Local Inference
-
Llama 3.2 3B (
llama3.2:3b): Selected as the default inference engine for its exceptional factual adherence, balance of literary tone, and compact hardware profile (~2.5 GB RAM/VRAM). -
Qwen 2.5 1.5B (
qwen2.5:1.5b): Provided for multi-lingual archives containing family letters in European, Asian, or regional dialects. -
Nomic Embed Text (
nomic-embed-text): Generates 768-dimensional dense passage vectors across an 8,192 token window. - Offline Deterministic Fallback: An internal zero-dependency vectorizer and template synthesizer guarantees the entire test suite and UI run smoothly even on machines without GPU acceleration or pre-downloaded model weights.
2. The Deterministic RAG Pipeline & Hallucination Containment
To guarantee that the machine never fabricates history:
- Ingested documents (PDFs, TXT, scanned letters, audio transcripts) are decomposed into 350-character windows with a 50-character boundary overlap.
- Each chunk receives a permanent, deterministic passage identifier (e.g.
mem-sample-01-p1). - During conversational search (
/api/chat), candidate passages are retrieved via cosine similarity. -
Keyword Overlap Verification: Before invoking the LLM, the backend strips 80+ stopwords and evaluates the lexical overlap ratio. If relevance is
< 0.35, the system short-circuits synthesis and returns:"I do not find evidence for that in your archive." - When evidence is sufficient, the context is wrapped in strict
<ARCHIVAL_EVIDENCE>XML boundaries, instructing the model to synthesize answers strictly citing[1],[2]with zero speculation.
3. Historical Conflict Engine
Real history is messy: an official parish ledger might record a bell re-cast in 1923, while an uncle's diary claims installation was delayed until 1925. Rather than forcing a false consensus or arbitrarily picking a winner, EchoVault introduces a Date Precision Spectrum (Exact, Month, Year, Decade, Unknown) and visually surfaces discrepancy badges directly in the timeline with links to the original evidence.
4. Containerization with Podman Desktop
EchoVault was built and certified for Podman Desktop:
- Rootless multi-stage containers with automated health probes.
- Named volume persistence (
echovault_data:/app/data) preserving SQLite databases and vector indexes across container updates. - Transparent host networking bridge (
host.containers.internal:11434) allowing containers to access the host's GPU-accelerated Ollama models.
Why Does Open Innovation Matter?
Personal memories are the most intimate data human beings possess. They hold our love letters, our grief, our family recipes, and our private confessions.
Entrusting these treasures to proprietary closed-source AI APIs creates grave vulnerabilities:
- Terms of Service Change: Commercial providers routinely alter data retention, privacy policies, and training consent clauses.
- API Sunset Risk: If an AI startup pivots or shuts down, proprietary archives become inaccessible black boxes.
- Data Mining & Centralization: Intimate family narratives should never become training fodder for targeted advertising or corporate LLMs.
Open innovation makes digital sovereignty possible. With open-weight models (Llama 3.2, Qwen 2.5) running on open runtimes (Ollama, Podman, SQLite), an EchoVault archive created today can be booted up and queried 20, 50, or 100 years from now completely offline on local siliconโeven if the internet is down and every commercial cloud company has vanished.
Open innovation ensures that the memories of our ancestors belong to us, not to a subscription service.
My Agent Session
This project was developed with deep architectural rigor using pair-programming AI agents. Session logs and transcripts documenting the architecture decision records, API design, and Podman containerization are preserved.
The Spirit of It
The moment EchoVault truly landed for me was during a test of our synthetic test archive.
I had ingested a fictional letter from an elder named Maya describing an autumn lantern walk along a river in 1952. I asked the vault:
"When was the river lantern festival and what did Aunt Clara bring?"
In less than a second, running entirely on my laptop's local CPU, EchoVault returned:
"According to The Autumn Lantern Walk along the River (1952-10-15), the river lantern walk took place on the evening of October 15, 1952 [1]. Aunt Clara brought warm spiced apple buns wrapped in linen to share with the family [1]."
Source Citation [1]: Relevance Score: 88% โ Recordmem-sample-01
Then, I deliberately tested the boundaries:
"Did great-grandfather own a red motorcycle or fly a spaceship?"
A standard commercial chatbot might humorously embellish or try to please the user. EchoVault gave the answer a real archivist would give:
"I do not find evidence for that in your archive. None of the preserved letters, memoirs, or oral histories mention a red motorcycle or a spaceship."
That was the moment the ghost entered the machine: not as an illusion or an imitation, but as a guardian of genuine human memory.
Prize Categories
- Main Track: Hacktoberfest 2026 Week 4: "Ghost in the Machine"
- Open-Source Local AI Track: Highlighting offline, edge-deployable open-weight models (Llama 3.2 & Qwen 2.5 via Ollama) and rootless Podman Desktop container orchestration.
Keep the stories. Preserve the echoes. ๐๏ธ









Top comments (0)