DEV Community

V V Koushik
V V Koushik

Posted on AI-assisted

Lantern Archive: Keeping Small Memories Alive with Local AI

Hacktoberfest Open-Source AI Challenge: Ghost in the Machine Submission 👻🌼

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

What I Built

A person’s story often lives in small details: how they made tea, something they always said, or a skill they taught someone.

Lantern Archive helps turn those details into a remembrance using an open-weight model running locally.

You enter someone’s name, your relationship to them, and up to eight memories. The application can then:

  • Suggest an open-ended question to help you recall another detail.
  • Turn your notes into a first draft of a remembrance.
  • Attach source numbers so you can compare each generated line with its original note.
  • Let you edit, copy, or download the text.

I interpreted “Ghost in the Machine” through the memories we carry forward. The person using the app supplies the memories and decides which words belong in the final remembrance.

Demo

Watch the Lantern Archive video walkthrough

The application includes a fictional example about Mira, a grandmother who saved orange peels in a blue tin for tea. It gives people a way to explore the workflow without entering personal family information.

This submission demonstrates the local application. To try it yourself, follow the repository’s setup instructions and select Try a fictional example.

Code

View the source code and setup instructions on GitHub

The application code is MIT licensed. Model weights are downloaded separately under their own license.

The repository also includes high-level and low-level design documents.

How I Built It

The local application uses:

  • Qwen3.5-4B, an open-weight language model.
  • llama.cpp, which runs the model locally.
  • A Q4_K_M GGUF model conversion to reduce memory requirements.
  • A Python standard-library server.
  • HTML, CSS, and JavaScript for the browser interface.

The request flow is:

Browser → local Python server → llama.cpp → local model → editable draft

For remembrance generation, the model returns structured JSON containing one line for each supplied note. The application checks that the number of returned lines matches the number of notes, then adds source numbers itself.

This makes the output easier to review. It does not guarantee factual accuracy: the model can still change a nuance or introduce an unsupported detail, so every line needs a human check.

Names and notes are retained in the browser’s localStorage. The local Python server does not save them. Generated drafts must be copied or downloaded to keep them.

For related community reading, see @dedupedai’s guide to serving a local API with llama.cpp and @vivek_greenitive_812555c7’s offline desktop AI architecture.

Why Does Open Innovation Matter?

Family memories can be deeply personal. Local inference means these notes can stay on the user’s own computer.

After downloading the runtime and model, Lantern Archive works without internet access. It needs no hosted inference account and has no per-request API charge, although it still requires suitable hardware.

Open weights and an open runtime also give the project room to change. Someone can inspect the prompts, adjust the output constraints, or experiment with another compatible GGUF model.

For this project, that control matters more than relying on a hosted service that could change its pricing, availability, or behavior.

The open pieces power both central features: asking a follow-up question and drafting the remembrance.


Top comments (0)