Edda est un serveur de bibliothèque numérique personnel : catalogue OPDS 1.2 & 2.0, interface Vue 3, lecteur EPUB intégré, un seul binaire. Kvasir est l'agent IA qui enrichit ce catalogue tout seul, et Muninn et Huginn sont les applications qui le mettent entre vos mains, sur liseuse e-ink comme sur tablette.
Mimisbrunnr — le puits de savoir. Un serveur, son agent, et deux applications de lecture. Chacune s'utilise seule.
Serveur eBook léger : catalogue OPDS 1.2/2.0, interface web Vue 3, lecteur EPUB intégré, le tout en un binaire statique avec frontend embarqué.
/opds) et 2.0 (/opds/v2)Agent Go autonome qui pilote une ou plusieurs bibliothèques Edda via leur serveur MCP : enrichissement des métadonnées, chat sur le catalogue, maintenance en lot.
audit) : fusionne séries et auteurs mal orthographiésbatch) résiliente aux quotas LLMApplication Kotlin/Compose taillée pour les liseuses Boox : le catalogue OPDS 2.0 d'Edda, en noir sur blanc, sans animation, avec de grandes cibles tactiles.
Le frère moderne de Muninn — Hugin & Munin, les corbeaux d'Odin. Même catalogue, style Material 3 pour tablette, et un lecteur EPUB intégré.
Edda parle OPDS : tout lecteur compatible peut s'y brancher. Deux applications maison vont plus loin — téléchargement, lecteur intégré, synchronisation — et le lecteur web d'Edda reste toujours là, sans rien installer.
Lire sur une Boox voulait dire naviguer la web UI dans un navigateur e-ink poussif, télécharger, puis retrouver le fichier. Muninn est un client de catalogue natif, pensé e-ink d'abord : chercher, toucher, télécharger, lire.
La même bibliothèque sur un écran couleur : carrousels, couleur dynamique Material You, mode sombre, navigation adaptative — et cette fois le livre s'ouvre dans l'application.
Aucune exclusivité : le catalogue est un flux OPDS standard. Voici les clients éprouvés, par plateforme.
Catalogue OPDS intégré, et surtout la seule application tierce qui synchronise sa progression avec Edda via l'endpoint kosync.
Synchronisation kosyncGestionnaire de catalogues OPDS classique ; ajoutez l'URL /opds avec le jeton en paramètre.
Lecteur multi-formats (EPUB, PDF, CBZ…) avec navigation des catalogues OPDS.
Ses « catalogues réseau » acceptent un flux OPDS personnalisé, sur mobile comme sur bureau.
Lecteur EPUB de bureau signé Readium, avec navigation des flux OPDS 1.x et 2.x.
Lecteur EPUB léger capable d'ouvrir un catalogue OPDS distant.
Le vétéran OPDS sur iOS : ajout de catalogues, téléchargement et lecture dans l'app.
Pour la bande dessinée et les comics : monte un catalogue OPDS comme source de séries.
Via le plugin OPDS Client : récupère les nouveautés du catalogue dans la bibliothèque calibre locale.
Le lecteur EPUB d'Edda tourne dans l'onglet, avec swipe et raccourcis clavier ; l'interface est aussi une PWA installable, service worker hors-ligne inclus.
https://votre-serveur/opds (OPDS 1.2) ou /opds/v2 (OPDS 2.0, JSON).Authorization: Bearer, ou en ?token= pour les lecteurs qui ne savent pas envoyer d'en-tête.# OPDS 1.2 — en-tête Bearer curl -H "Authorization: Bearer VOTRE_JETON" \ https://votre-serveur/opds # OPDS 2.0 — jeton en paramètre d'URL curl "https://votre-serveur/opds/v2?token=VOTRE_JETON"
Edda expose un serveur kosync compatible KOReader : la position de lecture suit l'appareil, sans service tiers. Le pourcentage est partagé avec le lecteur web d'Edda, on passe donc de la liseuse au navigateur sans perdre sa page.
/opds).Les lecteurs consomment un flux OPDS standard. Kvasir, lui, entre par le serveur MCP après un appairage par code one-time.
Muninn, Huginn, KOReader, navigateur — OPDS 1.2 / 2.0
Catalogue, métadonnées, utilisateurs — expose un serveur MCP
Client MCP qui lit et écrit le catalogue via un LLM
Anthropic, Ollama Cloud… pour raisonner sur chaque livre
Un binaire statique, frontend embarqué, prêt à l'emploi.
Flux de navigation et d'acquisition compatibles avec tous les lecteurs OPDS.
Extraction instantanée (titre, auteurs, couverture, série, tags) et refus des doublons par hachage SHA-256.
Profils enfants, filtres par âge (3+ à 18+), plafond d'âge par profil.
Une URL pour un livre, une série, un tag ou un auteur : aperçu HTML, OPDS 1.2 ou 2.0, sans compte, révocable.
Tableau de bord par utilisateur : totaux, notes, top auteurs/tags/séries, graphe sur 12 mois.
File de lecture ordonnée, liste de souhaits et recommandations entre utilisateurs, exposées en OPDS.
Lecteur intégré avec navigation entre livres, swipe et raccourcis clavier.
Endpoint kosync natif : la progression suit l'appareil et rejoint le lecteur web.
Accès des agents IA au catalogue via le Model Context Protocol.
Installable comme application, service worker pour la consultation hors connexion.
Callbacks HTTP sur le cycle de vie des livres, sauvegardes SQLite nocturnes avec rétention.
Le binaire se met à jour depuis les releases de la forge, directement depuis l'interface.
Lancez le serveur, branchez un lecteur, puis appairez l'agent.
# Build (Go 1.24+) go build -o edda . # Démarrer avec le backend SQLite AUTH_PASSWORD=secret \ BACKEND=sqlite ./edda # Web : http://localhost:8080 # OPDS : http://localhost:8080/opds # OPDS2 : http://localhost:8080/opds/v2
Ou en conteneur : AUTH_PASSWORD=secret docker compose up -d, le dossier books/ est monté sur /data/books.
# Boox / e-ink : Muninn adb install muninn-vX.Y.apk # Tablette Android : Huginn adb install huginn-vX.Y.apk # Puis dans l'app : URL du serveur # + jeton OPDS (page de compte Edda)
Les APK sont attachés à chaque release de muninn-eink et huginn-tablet — ou lisez simplement dans le navigateur.
# Installer go install git.helheim.net/mimisbrunnr/\ kvasir-agent/cmd/kvasir@latest # Appairer (code généré dans l'admin Edda) kvasir pair \ --nxt-opds https://books.example.com \ --code K4Q9-PN2X \ --name example # Enrichir toute la bibliothèque kvasir batch --instance example
Le flag --nxt-opds garde l'ancien nom du serveur, avant qu'il ne devienne Edda.
L'essentiel sur Edda, Kvasir et les applications de lecture.
Edda est un serveur de bibliothèque eBook personnel et auto-hébergé écrit en Go. Il expose un catalogue OPDS 1.2 (/opds) et OPDS 2.0 (/opds/v2) consultable depuis n'importe quel lecteur OPDS, fournit une interface web Vue 3 avec lecteur EPUB intégré, et se distribue en un seul binaire statique avec frontend embarqué.
Trois voies. Le lecteur web d'Edda, installable comme PWA, ne demande rien à installer. Les deux applications maison — Muninn pour les liseuses e-ink Boox, Huginn pour les tablettes Android — ajoutent le téléchargement, un lecteur Readium intégré (Huginn) et la synchronisation. Enfin, n'importe quel lecteur OPDS tiers fonctionne : KOReader, Moon+ Reader, Librera, FBReader, Thorium, Foliate, KyBook 3, Panels.
Ajoutez le catalogue https://votre-serveur/opds (OPDS 1.2) ou /opds/v2 (OPDS 2.0) dans le lecteur, puis authentifiez-vous avec le jeton OPDS de l'utilisateur : en-tête Authorization: Bearer, ou paramètre ?token= pour les lecteurs qui ne gèrent pas les en-têtes.
Oui, sans service tiers : Edda expose un serveur kosync. Dans KOReader, Outils → Progress sync → Custom sync server = l'URL de votre instance, identifiant = votre nom d'utilisateur Edda, mot de passe = votre jeton OPDS. Le pourcentage de progression est partagé avec le lecteur web d'Edda.
Kvasir est un agent IA autonome écrit en Go qui se connecte à une ou plusieurs instances Edda via leur serveur MCP. Il enrichit automatiquement les métadonnées (tags, résumés, classification d'âge, séries), fusionne les séries et auteurs mal orthographiés lors d'une passe audit, répond à des questions sur le catalogue et exécute des batches de maintenance. Il fonctionne avec plusieurs backends LLM comme Anthropic ou Ollama Cloud.
Edda expose un serveur MCP (Model Context Protocol). Kvasir s'y connecte comme client après un appairage par code one-time : les secrets sont négociés entre les deux services, rien ne transite par la ligne de commande. L'agent lit et écrit ensuite le catalogue en s'appuyant sur un LLM pour raisonner sur chaque livre.
Oui. Edda, Kvasir, Muninn et Huginn sont quatre projets open-source publiés sur la forge git.helheim.net sous l'organisation Mimisbrunnr. Edda se lance via un binaire Go ou Docker ; Kvasir s'installe avec go install ou via une image Docker d'environ 25 Mo ; Muninn et Huginn se sideloadent depuis les APK des releases.