This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Moirai is a local-first, cloud-augmented "Narrative OS" for Windows that transforms passive digital behavior into an actionable life narrative. Instead of being another productivity tool that demands manual input, it acts as a background chronicler—observing, compressing, and narrating your digital life through the metaphor of the Greek Fates (Clotho, Lachesis, Atropos).
The core paradigm is: Clotho captures the raw moment, Lachesis weaves meaning, and Atropos grants you the final cut. It is built for developers and knowledge workers who want to reflect on how they actually spend their time, rather than being interrupted by real-time "productivity" pings. The theme of open innovation is interpreted here as privacy-first agency: the system is designed to keep sensitive raw data local while using open-weight models to generate meaning, and it is architected to eventually run fully offline with local LLM inference.
Demo
Code
The full codebase is available on GitHub:
🔗 https://github.com/AtharvRG/moirai
It is a monorepo with four main components:
-
clotho/– Go-based system capture and telemetry spooler. -
lachesis/– Go + Groq AI narrative generation pipeline. -
atropos/– Electron + React desktop control center. -
aphrodite/– Next.js marketing site.
The project is MIT-licensed, and the README includes build instructions for each component.
How I Built It
The architecture is deliberately split into four open-source-friendly components, each using open-weight models where it matters most:
| Component | Role | Stack | Open AI / Model |
|---|---|---|---|
| Clotho (Spinner) | System capture & telemetry | Go (Windows APIs: UI Automation, Raw Input, Windows Graphics Capture) | N/A – purely local capture |
| Lachesis (Measurer) | Narrative generation | Go, batch processing service | Groq API with Llama 3.3 Versatile, Llama 4 Maverick, and Llama Vision for OCR and narrative summaries |
| Atropos (Cutter) | User interface & control | Electron, React, TypeScript, Zustand | Consumes Lachesis output (local JSON/Markdown) |
| Aphrodite (Landing) | Project showcase | Next.js, React, TypeScript, WebGL | N/A – marketing only |
Key open-source AI choices:
- Lachesis uses Groq as the inference provider, which serves open-weight Llama models (Llama 3.3, Llama 4 Maverick, Llama Vision). This gives the project fast, low-latency inference without locking into a closed proprietary model.
- The data pipeline is local-first: Clotho stores telemetry locally in a hierarchical Year/Quarter/Week/Day structure, and only redacted screenshots and metadata are sent to Groq for OCR and narrative generation.
- The future roadmap explicitly targets local LLM inference (offline mode) for V2, which is only feasible because the models are open-weight.
The project does not rely on a single monolithic agent framework; instead, it uses lightweight Go services for capture and processing, and an Electron shell for the human-in-the-loop control center. This makes the system auditable, modifiable, and extendable by anyone who wants to adapt the narrative logic or swap the model provider.
Why Does Open Innovation Matter?
Open innovation is the architectural backbone of Moirai, not just a licensing checkbox. It matters for three concrete reasons:
Privacy without compromise. Closed APIs force you to send raw user data to a black box. By using open-weight models (via Groq) and keeping capture local, Moirai can guarantee that raw keystrokes are never stored, screenshots are redacted before transmission, and a
Ctrl+Shift+Endkill switch wipes unprocessed data instantly. A closed-API-only design would make these guarantees impossible to audit or enforce.Offline and local inference as a real option. The V2 roadmap includes local LLM inference for offline mode. This is only possible because the models are open-weight. A closed API would permanently tie the project to an internet connection and a vendor's pricing/availability.
Community ownership of the narrative logic. The "three fates" pipeline (capture → weave → cut) is implemented as separate, readable Go and TypeScript modules. Anyone can fork the repo, replace Lachesis with a different open model, adjust the intent classification, or build a new UI for a different OS. Open innovation here means the user owns the story—both the data and the code that interprets it.
The Spirit of It
The moment Moirai "lands" is not a flashy demo—it is the quiet shift in how you see your own day. The README's philosophy captures it best:
"Moirai does not manage your time. It reveals the story of how you spend it. The system embraces 'epistolary latency'—rather than interrupting you with real-time suggestions, it observes for 5–10 minutes before weaving a narrative summary. This transforms the AI from an intrusive assistant into a perceptive diarist, someone who reflects rather than reacts."
The spirit of the project is reflection over optimization. In a world of Pomodoro timers and real-time productivity scores, Moirai asks a different question: What did today actually feel like? The Three Fates metaphor is not just branding—it is a design constraint. Clotho does not judge; Lachesis does not interrupt; Atropos lets you cut the narrative if it feels wrong. It is a tool for keeping a story alive, not a dashboard for shaving minutes off your day.
For a developer, the most moving moment is seeing the first _summary.md generated from your own telemetry—a plain-text chronicle of a Tuesday afternoon that you half-remember, now woven into a sentence you can actually reflect on. That is the moment the project stops being a system-monitoring tool and becomes a mirror.
Top comments (0)