Skip to content
KUROLABS
← Back to projectsPROJECTS / Cloe
Cloe
in development

Cloe

A local AI companion with persistent graph memory, an autonomous mind, four specialised sub-minds, and a transparent desktop presence.

Python 3.12 / Flask / Ollama / ComfyUI / Tauri v2 / JSON graph store / AGPL-3.0

Cloe is not a chat window with a personality prompt on top. She is a stack: a Flask backend, local models, a memory that is a graph rather than a transcript, four sub-minds that each do one job, and a desktop orb with real per-pixel transparency. Everything runs on one consumer GPU. Nothing is sent anywhere.

Memory is a graph, and it forgets on purpose

Roughly 6,700 nodes and 63,000 connections across five typed trees — knowledge, mood, personality, relationship, desire — and the count climbs every day she is running, so treat that as a reading rather than a final size. Every node carries a confidence score that decays over time, so something reinforced once in April does not carry the same weight as something reinforced weekly.

  • Five typed trees rather than one flat store
  • Confidence scoring with temporal decay
  • A compressor scores nodes on several factors and prunes with Jaccard similarity matching
  • Core identity nodes are protected from pruning — she cannot compress away who she is

Four sub-minds, and each one is its own service

Work she cannot do in a language model gets handed to a separate program with its own lifecycle, its own UI panel and its own claim on the GPU. They are separate processes on purpose: a 3D forge running out of VRAM should take down the forge, not the assistant, and the card has to be handed between them cleanly rather than fought over.

  • Raphael — diagnostic watcher. Its own service on :5002, reading her logs live so a fault gets named rather than noticed three days later
  • Vretil — working assistant: files and scheduling in plain language, behind a book-shaped panel
  • Metatron — 3D prop forge, reference image or text to a textured GLB
  • Jophiel — image engine. FLUX.1 [schnell] to make a picture, Qwen-Image-Edit to change one, on a self-hosted ComfyUI

Local models, and one of them is currently offline

Mistral-Nemo 12B for conversation and qwen2.5-coder for a separate coding workspace, both hosted by a local Ollama instance and coordinated through one Flask backend. A third model, moondream, does vision — an image is described by it first, then reacted to in character by the conversational one, so what is in the picture and what she thinks about it stay separate jobs. That one is disconnected at the moment after a GPU swap and is waiting to be wired back in. It is listed here because it is part of the design, not because it is running today.

The orb is genuinely transparent

Built with Tauri v2, using per-pixel transparency and coordinate mapping so clicks pass through the transparent regions to whatever is behind. She sits on the desktop rather than in a window.

She acts when nobody is talking to her

Self-directed research during idle periods, mood-driven responses that are not replies to anything, a diary on a schedule, and a wake-word listener. There is also a Minecraft mod bridge that lets her participate in a game and make her own decisions in it.

  • Idle research loop
  • Autonomous mood-driven behaviour
  • Minecraft mod bridge with independent decision-making

The failures are written up, not buried

Several of the harder problems have their own write-ups in the repository — the VRAM co-residency crash that killed the forge and the crash-forensics tooling that came out of it, an engine-lifecycle port that caught a bug on the way through, a sandbox write-escape, and a lost-update race in the memory store with the stress-test numbers that proved it was real. Plain prose, no source dumps. Read them on GitHub.

Runs on
One consumer GPU, fully local
Memory
~6,700 nodes / ~63,000 connections, and growing
Sub-minds
Raphael · Vretil · Metatron · Jophiel
Models
Mistral-Nemo 12B · qwen2.5-coder · moondream (vision, offline)
Frontend
Tauri v2, per-pixel transparent
Licence
AGPL-3.0
The Skills panel — all four sub-minds live, each with its own sigil. The dormant sockets stay visibly empty rather than being hidden.
The Skills panel — all four sub-minds live, each with its own sigil. The dormant sockets stay visibly empty rather than being hidden.
Her own stats view: memory reactor, current mood, system pulse, and the five mind trees with live node counts.
Her own stats view: memory reactor, current mood, system pulse, and the five mind trees with live node counts.