This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
👻 RepoSéance: Summoning the Ghost of Forgotten Code with Open-Source AI
Somewhere on GitHub, there are projects that once had ambitious roadmaps, enthusiastic contributors, and big ideas.
Then the commits stopped.
The README remained. The dependencies aged. The issues went unanswered. And the original context slowly disappeared.
What if we could summon those projects' digital ghosts and ask them what happened?
Meet RepoSéance, a local-first AI-powered software archaeology tool that reconstructs the story of forgotten repositories and helps developers bring them back to life.
What I Built
RepoSéance interprets the Week 4 theme, Ghost in the Machine, as a story about digital memory.
Software repositories preserve code, but understanding a project often requires more than reading its latest files. Important context can be scattered across commit messages, configuration changes, documentation, TODOs, and test failures.
RepoSéance brings those clues together using open-weight AI.
Point it at a local Git repository, and it investigates the project's history, searches for unfinished work, and generates a structured report called a Ghost Profile.
The Ghost Profile has five parts:
👻 1. The Last Words
A chronological account of significant changes near the end of the project's development. What was being built? Which areas changed most? What does the available history suggest about the project's final active phase?
🕯️ 2. Unfinished Business
A prioritized list of potential unfinished tasks, including TODO and FIXME markers, incomplete documentation, and tests that currently fail when safely executed.
🪦 3. The Graveyard
A report of potential maintenance concerns, such as declared dependencies with old version constraints, deprecated API usage detected by available checks, and suspiciously stale project configuration.
These are investigation leads, not automatic declarations that something is broken.
📜 4. The Séance Transcript
An atmospheric narrative that explains the repository's history in plain English, with references to the evidence behind its claims.
The AI can make the experience spooky, but it cannot invent commits, contributors, events, or developer intentions.
⚡ 5. The Resurrection Plan
A practical recovery roadmap: what to inspect first, which checks to run, what documentation to update, and which small improvement could make the project useful again.
The aim is to turn digital archaeology into actionable maintenance work.
Because abandoned software doesn't always need to remain abandoned. Sometimes it just needs someone willing to understand it.
Demo
Live demo: [Will be added soon]
The ideal demonstration uses a small, public or personally owned Git repository with a meaningful commit history.
The workflow:
- Select a local repository.
- Let RepoSéance inspect its Git history, file structure, and selected project files.
- Watch the Ghost Profile appear, with evidence-linked findings.
- Explore unfinished work and the suggested resurrection plan.
- Export the report as Markdown to share with a potential maintainer.
Code
Contributions that would be especially valuable include support for more languages, better repository analysis, additional local models, and improved evidence verification.
How I Built It
RepoSéance is designed around a simple architecture: deterministic software analysis gathers the evidence, and an open-weight language model turns that evidence into an understandable investigation.
1. Repository forensics
Python handles repository inspection using Git history, file-tree traversal, configuration parsing, and targeted searches for TODOs, FIXMEs, documentation, and test files.
Git metadata provides timestamps, commit messages, changed-file information, and other available historical clues.
The application limits which files are analyzed, excludes common generated directories, and avoids treating arbitrary repository content as trusted instructions.
2. Open-weight AI inference
A compact instruction-tuned model, such as Qwen2.5-3B-Instruct or another compatible open-weight model, generates summaries and structured findings from the collected evidence.
A local inference runtime such as llama.cpp can make this practical without requiring a hosted LLM API.
The model is responsible for interpretation and explanation—not for inventing repository facts.
3. Evidence-grounded reports
Every important finding should reference a verifiable source, such as a commit hash, file path, line number, or command result.
The report separates:
- Observed facts
- AI-generated interpretations
- Unverified hypotheses
- Recommended actions
If the repository lacks sufficient evidence to explain why development stopped, RepoSéance should say so instead of inventing a dramatic backstory.
4. Interactive interface
A lightweight Streamlit interface presents the Ghost Profile as an interactive investigation board.
Users can inspect findings, expand their supporting evidence, filter maintenance concerns, and export the report as Markdown.
5. Safety by design
The first version performs read-only repository analysis. It does not automatically execute repository scripts, install dependencies, modify source files, or push commits.
Any optional test execution should require explicit user approval and appropriate isolation.
This keeps the experience useful without giving an AI model unrestricted control over potentially untrusted code.
Why Does Open Innovation Matter?
Forgotten software should not need a subscription to be understood.
A closed AI API could summarize a repository, but it would introduce a remote dependency into a workflow that may involve proprietary code, unpublished projects, security-sensitive components, or private development history.
Open-weight AI gives RepoSéance another path.
Privacy: Repository content can remain on the developer's machine rather than being uploaded to a third-party model provider.
Offline analysis: Once the model and required dependencies are installed, the core analysis can run without a live AI API, subject to the local runtime's requirements.
Model freedom: Developers can swap models, compare their explanations, tune prompts, and adapt the system for different programming languages and repository sizes.
Cost control: Local inference avoids per-token API charges, although it still consumes hardware resources and requires initial setup.
Long-term independence: The project is not tied to the continued availability, pricing, or policies of one hosted AI service.
There is also a deeper connection to open-source preservation.
An abandoned repository may still contain useful ideas, educational examples, or functionality that someone needs. Open tools make it easier for new maintainers to investigate that code and decide whether it deserves another life.
The model is replaceable. The evidence is inspectable. The analysis can be repeated.
That is the kind of digital archaeology I want to build.
The Spirit of It
For me, the most interesting part of RepoSéance is the idea that software has a form of memory.
Every commit records a decision. Every renamed function hints at an evolving design. Every TODO represents work someone thought mattered enough to leave behind.
But code cannot always tell us the full story.
RepoSéance is an experiment in recovering as much context as the evidence allows, without pretending that an AI can read the minds of developers who are no longer there.
Imagine opening a forgotten project and receiving this message:
"The last recorded change was five years ago. The authentication module was being refactored, three TODO markers remain in the payment workflow, and the test suite currently fails on a dependency compatibility issue. The reason development stopped is unknown. Here are three steps to investigate before you decide whether to revive it."
That's the moment I want to create.
Not a fake ghost claiming to know the past, but a useful digital archivist helping the living decide what to do next.
Some projects are dead. Some are merely waiting for someone to understand them.
👻 RepoSéance — The past left clues. The future needs maintainers.
Top comments (0)