Aller au contenu

À propos

Un chat qui reste chez vous.

Lucania est mon projet : une interface façon Claude.ai pour des modèles qui tournent chez vous. Voici pourquoi je l'ai écrite, comment je travaille et ce qu'il y a dedans.

Corbeau

Je suis Corbeau. Je me souviens de tout ce qui compte : voici qui fait Lucania, et pourquoi.

00 / Devise

Je fais des sites qui tiennent.

Je prends un projet de bout en bout et je le tiens dans le temps. Lucania en est un.

  • Pierre Mouilleseaux Lhuillier
  • Montbéliard, France
  • BUT MMI, 2e année
CorbeauConteur
Je suis le Corbeau, la mémoire de la meute. Je vous raconte comment Pierre a écrit Lucania : pourquoi, comment, et ce qu'il y a dedans.

01 / Pourquoi Lucania

Des modèles qui restent chez moi, une interface à leur hauteur.

Kodiak100 % local
Un modèle qui tourne sur votre machine, des données qui y restent. Pierre a écrit Lucania pour cette raison.

Ollama fait tourner des modèles de langage sur votre machine, ou sur un serveur que vous gérez. Reste à savoir comment leur parler.

Je voulais l'interface de Claude.ai : la conversation au centre, une barre latérale qui range l'historique, des réponses qui s'écrivent au fil de l'eau. Avec une règle de départ : rien ne part dans le cloud.

J'ai donc écrit Lucania. Elle se branche sur Ollama en local, ou sur un serveur distant par WireGuard. Elle garde vos conversations dans une base SQLite sur votre disque et s'installe sans droits administrateur.

Toutes les fonctionnalités

  • Le besoin

    Des modèles qui tournent chez soi

  • La forme

    Une interface façon Claude.ai

  • La règle

    Rien dans le cloud

02 / Comment je travaille

Du besoin à la mise à jour.

HibouRéflexion
Je réfléchis avant de répondre, et Pierre aussi : il pose ses questions avant d'ouvrir l'éditeur, puis il suit le projet après la mise en ligne.

Cinq étapes, dans cet ordre. Un projet ne s'arrête pas le jour où il est en ligne.

Comprendre le besoin

Avant d'ouvrir un éditeur, je pose les questions : qui s'en sert, pour faire quoi, sur quelle machine. Pour Lucania, la réponse tenait en une ligne : discuter avec des modèles Ollama, sans cloud, dans une interface aussi claire que Claude.ai.

Dessiner l'interface

Un fond sombre, des surfaces arrondies, une police serrée et du mono pour les détails. Le rouge sert de signal et rien d'autre. J'ai aussi dessiné le logo : 100 propositions, une seule gardée.

Écrire le code

Astro 7, JavaScript vanilla, Tailwind CSS v4 et daisyUI 5. SQLite pour les conversations, Tauri v2 pour l'application de bureau, Ollama pour les modèles. Aucun framework JavaScript.

Mettre en ligne

Deux fichiers, Lucania-Setup.exe et Lucania-Update.exe, construits par un workflow GitHub et publiés sous des noms qui ne changent pas. Ce site est hébergé sur GitHub Pages.

Suivre dans le temps

11 versions en 2 jours, de la v0.1.3 à la v0.1.13. Un installateur qui met à jour sans toucher vos conversations. Les retours arrivent par les issues GitHub.

03 / L'histoire du loup

Cent propositions, un loup.

LoupGardien local
Sept facettes, des yeux rouges : c'est moi qu'on a gardé parmi cent propositions.

Pour le logo, j'ai monté un labo : 100 propositions, réparties en 10 séries de A à J. Je les ai comparées côte à côte, puis j'en ai gardé une seule, H2 : un loup low-poly.

Il est taillé en sept facettes, des triangles d'opacité différente. Neuf autres animaux de la même famille ont suivi, et chacun porte une fonction de Lucania. On les retrouve dans les en-têtes de ce site.

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

Retenu · H2

Quelques cousins

  • Corbeau
  • Hibou
  • Renard
  • Ours

04 / Sous le capot

Ce qui tourne dedans.

Ollama pour les modèles, une mémoire de faits, une pile web sans framework JavaScript.

Le moteur

Ollama

Ollama fait tourner les modèles de langage, sur votre machine ou sur un serveur que vous gérez. Lucania en est l'interface de chat : vous installez Ollama, vous téléchargez les modèles qui vous plaisent, et Lucania s'y connecte.

  • Sur cet ordinateur ou sur un serveur distant
  • Plusieurs connexions, activées une à une
  • Modèles installés détectés par Lucania

Découvrir Ollama (ollama.com) (lien externe)

LoupGardien local
Lui fait le travail lourd, chez vous. Moi, je veille à ce que rien ne sorte, sauf vers vos propres serveurs.

La mémoire

Chaque modèle se souvient à sa façon.

Dans Paramètres > Mémoire, vous choisissez un modèle et vous gérez ses faits. Ils lui sont donnés au début de chaque conversation, et tout reste sur votre ordinateur.

CorbeauMémoire
Je retiens ce que vous me confiez, et ma mémoire n'est qu'à moi. Le hibou garde la sienne.
  • Un modèle, une mémoire

    Les faits sont rangés par modèle. Un fait compte 500 caractères au maximum.

  • Donnée au départ

    Au début de chaque conversation, le modèle reçoit ses faits.

  • Extraction facultative

    Le modèle peut proposer de retenir des faits à partir de vos conversations. Vous ajoutez, modifiez et supprimez aussi les faits vous-même.

  • Activable à la carte

    La mémoire s'active par modèle et par conversation.

L'amélioration grâce à la mémoire

Plus le modèle retient de faits, plus ses réponses s'adaptent à vous : vos projets, vos outils, vos préférences. Rien n'est envoyé ailleurs pour y arriver.

Obsidian

La mémoire s'appuie sur Obsidian : vos faits restent des notes lisibles, chez vous.

La pile technique

Ce que contient le dépôt de l'application, d'après son README.

  • Astro 7

    Le socle de l'interface, en rendu serveur avec l'adaptateur Node.

  • JavaScript vanilla

    Tout le code du navigateur, sans framework JavaScript.

  • Tailwind CSS v4

    Les styles, écrits en classes utilitaires.

  • daisyUI 5

    Les composants d'interface, posés sur Tailwind.

  • SQLite (node:sqlite)

    La base locale de vos conversations, dans un fichier sur votre disque.

  • Tauri v2

    L'enveloppe de l'application de bureau pour Windows.

  • WireGuard

    Le tunnel VPN que vous gérez pour joindre un serveur Ollama distant.

05 / Le projet en chiffres

Ce qui est réellement là.

CorbeauMémoire
Je compte ce qui existe vraiment. Les versions viennent des étiquettes Git du dépôt.
  • 11

    versions publiées

    étiquettes Git de l'application

  • 13

    thèmes

    à choisir dans Paramètres

  • 2

    langues

    français et anglais

  • 100

    propositions de logo

    en 10 séries, de A à J

Licence

MIT

Le code est open source.

06 / Versions

11 versions en 2 jours.

OrqueStreaming
11 versions en 2 jours : ça s'écrit au fil de l'eau, comme mes réponses.

Chaque pastille est une étiquette Git du dépôt de l'application. Elle ouvre la page de la version sur GitHub.

  1. 2

  2. 9

07 / Me contacter

Un projet à tenir ? Écrivez-moi.

RenardDossiers
Un bug, une idée, un avis sur le code ? Une issue GitHub ou un message suffit.

Je suis étudiant en deuxième année de BUT MMI à Montbéliard, en France. Je conçois et je développe des projets complets, en cours comme en dehors : comprendre le besoin, dessiner l'interface, écrire le code, mettre en ligne et suivre.

Mes retours de code sont les bienvenus : une issue, un message, ou les deux.

Par e-mail :mouilleseauxpierre50@gmail.com