Skip to content

About

A chat that stays at home.

Lucania is my project: a Claude.ai-style interface for models that run on your own machine. Here is why I wrote it, how I work and what is inside.

Raven

I'm Raven. I remember what matters: here is who makes Lucania, and why.

00 / Motto

I build sites that hold up.

I take a project from start to finish and keep it going over time. Lucania is one of them.

  • Pierre Mouilleseaux Lhuillier
  • Montbéliard, France
  • BUT MMI, 2nd year
RavenStoryteller
I am the Raven, the memory of the pack. I tell you how Pierre wrote Lucania: why, how, and what is inside.

01 / Why Lucania

Models that stay at home, an interface that matches them.

Kodiak100% local
A model that runs on your machine, data that stays there. That is why Pierre wrote Lucania.

Ollama runs language models on your machine, or on a server you manage. The open question is how to talk to them.

I wanted the Claude.ai interface: the conversation in the center, a sidebar that files your history, answers that write themselves as they come. With one rule from the start: nothing goes to the cloud.

So I wrote Lucania. It plugs into Ollama locally, or into a remote server through WireGuard. It keeps your conversations in a SQLite database on your disk and installs without administrator rights.

All features

  • The need

    Models that run at home

  • The shape

    A Claude.ai-style interface

  • The rule

    Nothing in the cloud

02 / How I work

From the need to the update.

OwlThinking
I think before I answer, and so does Pierre: he asks his questions before opening the editor, then follows the project after it goes live.

Five steps, in this order. A project does not end the day it goes live.

Understand the need

Before I open an editor, I ask the questions: who uses it, for what, on which machine. For Lucania the answer fit in one line: chat with Ollama models, no cloud, in an interface as clear as Claude.ai.

Design the interface

A dark background, rounded surfaces, a tight typeface and mono for the details. Red is a signal and nothing else. I also drew the logo: 100 proposals, one kept.

Write the code

Astro 7, vanilla JavaScript, Tailwind CSS v4 and daisyUI 5. SQLite for the conversations, Tauri v2 for the desktop app, Ollama for the models. No JavaScript framework.

Go live

Two files, Lucania-Setup.exe and Lucania-Update.exe, built by a GitHub workflow and published under names that never change. This site is hosted on GitHub Pages.

Follow up over time

11 versions in 2 days, from v0.1.3 to v0.1.13. An installer that updates without touching your conversations. Feedback comes in through GitHub issues.

03 / The story of the wolf

A hundred proposals, one wolf.

WolfLocal guardian
Seven facets, red eyes: I am the one that was kept out of a hundred proposals.

For the logo, I set up a lab: 100 proposals, split into 10 series from A to J. I compared them side by side, then kept a single one, H2: a low-poly wolf.

It is cut from seven facets, triangles of different opacity. Nine other animals from the same family followed, and each one carries a Lucania feature. You meet them in the headers of this site.

  1. A
  2. B
  3. C
  4. D
  5. E
  6. F
  7. G
  8. H
  9. I
  10. J

Kept · H2

A few cousins

  • Raven
  • Owl
  • Fox
  • Bear

04 / Under the hood

What runs inside.

Ollama for the models, a memory of facts, a web stack with no JavaScript framework.

The engine

Ollama

Ollama runs the language models, on your machine or on a server you manage. Lucania is its chat interface: you install Ollama, download the models you like, and Lucania connects to it.

  • On this computer or on a remote server
  • Several connections, switched on one by one
  • Installed models detected by Lucania

Discover Ollama (ollama.com) (external link)

WolfLocal guardian
It does the heavy lifting, at home. I make sure nothing leaves, except to your own servers.

Memory

Each model remembers in its own way.

In Settings > Memory, you pick a model and manage its facts. They are given to it at the start of every conversation, and everything stays on your computer.

RavenMemory
I remember what you tell me, and my memory is mine alone. The owl keeps its own.
  • One model, one memory

    Facts are filed per model. A fact is 500 characters at most.

  • Given at the start

    At the start of every conversation, the model receives its facts.

  • Optional extraction

    The model can suggest facts to remember from your conversations. You also add, edit and delete facts yourself.

  • Switch on as you like

    Memory is switched on per model and per conversation.

Getting better thanks to memory

The more facts the model remembers, the more its answers fit you: your projects, your tools, your preferences. Nothing is sent elsewhere to get there.

Obsidian

Memory builds on Obsidian: your facts stay readable notes, kept at home.

The tech stack

What the app repository contains, according to its README.

  • Astro 7

    The base of the interface, server-rendered with the Node adapter.

  • Vanilla JavaScript

    All the browser code, with no JavaScript framework.

  • Tailwind CSS v4

    The styles, written as utility classes.

  • daisyUI 5

    The interface components, built on Tailwind.

  • SQLite (node:sqlite)

    The local database of your conversations, in a file on your disk.

  • Tauri v2

    The shell of the desktop app for Windows.

  • WireGuard

    The VPN tunnel you manage to reach a remote Ollama server.

05 / The project in numbers

What is actually there.

RavenMemory
I count what really exists. The versions come from the repository Git tags.
  • 11

    published versions

    Git tags of the app

  • 13

    themes

    picked in Settings

  • 2

    languages

    French and English

  • 100

    logo proposals

    in 10 series, from A to J

License

MIT

The code is open source.

06 / Versions

11 versions in 2 days.

OrcaStreaming
11 versions in 2 days: it writes itself as it flows, like my answers.

Each pill is a Git tag of the app repository. It opens the version page on GitHub.

  1. 2

  2. 9

07 / Get in touch

A project to carry? Write to me.

FoxFolders
A bug, an idea, a view on the code? A GitHub issue or a message is enough.

I am a second-year BUT MMI student in Montbéliard, France. I design and build complete projects, in class and outside it: understanding the need, drawing the interface, writing the code, going live and following up.

Feedback on my code is welcome: an issue, a message, or both.

By e-mail :mouilleseauxpierre50@gmail.com