Akụkọ: a local oral-history archive so Igbo family stories outlive the elders A developer built Akụkọ, a local oral-history archive that records Igbo elders' stories and uses open-weight models running on the user's own machine to transcribe, summarize, and extract people, places, events and proverbs. The tool verifies every extracted item against a verbatim quote in the transcript, flagging anything ungrounded as "not found in the transcript: please check," and stores each story as plain files with the original audio preserved as the record of truth. The project was submitted to the Hacktoberfest Open-Source AI Challenge Week 4. 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 "In Africa, when an old man dies, a library burns." Amadou Hampâté Bâ said that about oral cultures, and it is the problem I wanted to work on. Akụkọ Igbo for story or account is a local oral-history archive. You record an elder in the browser, or upload a phone recording, and open-weight models running on your own computer: 1.transcribe the story, 2.summarise it, and pull out the people, places, events and proverbs ilu , 3.suggest follow-up questions to ask next time, 4.keep everything as plain files you can read in twenty years. How I Understood the theme. Día de los Muertos is all about keeping the dead present by telling their stories. In Igbo tradition the ndị ichie are the ancestors and the elders of old. Akụkọ is a place for their voices to stay, not an AI pretending to be them. The only "ghost in the machine" here is a real person's own voice, kept safe to outlive them. This matters to me a lot because I grew up in my grandmothers and other elderly people care and they are the wisest set of people you could speak with, though i was younger I have learnt a lot from their knowledge and morals, it has helped shape me into an amazing young man who wants to contribute and do good for our society and this is one way of contributing and sharing those impactful voices of the old. Akụkọ walkthrough The sample story in the screenshots is fictional an invented elder and village , so no real family is shown. "When an elder dies, a library burns." Akụkọ Igbo for story or account is a local oral-history archive. Record an elder, or upload a phone recording, and open-weight models running on your own computer transcribe it and pull out the people, places, events and proverbs, each tied to the words the elder actually said. Nothing is uploaded anywhere. Built for Igbo family histories, but it works for any family. Built for the Hacktoberfest Open-Source AI Challenge: Week 4 Ghost in the Machine https://dev.to/challenges/hacktoberfest-week4-2026-10-26 . This project was started and completed during the challenge window October 26-31, 2026 . Honoring the past in the spirit of Dia de los Muertos: in Igbo tradition, ndi ichie are the ancestors and the elders of old, and their stories are what this keeps. A longer walkthrough is in docs/demo.webm . The sample… The open pieces The server is plain Python standard library. The UI is one HTML file. The archive is a folder: stories//audio. + story.json. Design choices that came from Igbo being a low-resource language The audio is the record; the transcript is a draft. With that error rate I could not pretend the transcript was truth. The recording is saved first and never deleted, the transcript sits next to a seekable player so you can listen and correct it, and Igbo recordings carry a visible warning. The model may not invent family history. A summariser that makes up an uncle is worse than none. Every person, place, event and proverb the model returns must include a verbatim quote, and the code checks that quote against the transcript, ignoring tone marks and punctuation: def norm s : s = unicodedata.normalize "NFD", str s or "" .lower s = "".join c for c in s if unicodedata.category c = "Mn" drop tone marks / dots return re.sub r" ^a-z0-9 +", " ", s .strip def ground items, transcript : t = " " + norm transcript + " " for it in items: ev = norm it.get "evidence" it "verified" = bool ev and " " + ev + " " in t return items Anything that fails is shown as "not found in the transcript: please check". The prompt also tells the model never to guess what a name or proverb means unless the speaker explained it. Long interviews. Transcripts are chunked to fit the model's context window, analysed per chunk, merged, and then summarised. Consent and restricted knowledge. Saving requires confirming the elder agreed. Stories can be marked Restricted, which keeps them out of exports. Local security. The server binds to 127.0.0.1, rejects unexpected Host headers DNS rebinding , and requires a custom header on every write cross-site requests . It has tests that use a fake model, including one where the "model" invents a person and the grounding check flags it. I built this with the help of an AI coding assistant Claude , and I tested and reviewed it myself. Privacy that is real, not promised. These recordings hold elders' voices, family names, and sometimes painful history. Nothing here leaves the machine. With a cloud API, I would have to ask an elder to trust a service they cannot see. Languages that closed services overlook. I did not have to wait for any vendor to add Igbo. A community fine-tune of an open model already existed and I could plug it in. When a better Igbo model appears, swapping it is a small change in one file asr.py . The same open ecosystem is what gives small languages a chance. It cannot disappear. The archive is plain files, with a Markdown export that needs no software. The tools are open and the models run offline. After the one-time model download, it works with no internet, which matters where connectivity is uneven. Zero running cost. An archive like this should not need a subscription to keep a grandmother's voice. Honest limits. Igbo transcription is rough today, and Gemma's Igbo understanding is limited, so summaries of Igbo recordings are weaker than English ones. Models download once on first use. The few Igbo words in the interface and prompts still need a native speaker's review. I would rather say so than hide it.