Wollama est une application de chat pour Ollama. Elle fonctionne dans le navigateur, avec Electron sur ordinateur et avec Capacitor sur mobile.
Les conversations et les réglages restent disponibles hors ligne. Quand le serveur revient, RxDB synchronise les données avec PouchDB.
- Chat en streaming avec rendu Markdown, coloration du code, pièces jointes et historique local.
- Recherche dans les conversations, les messages et les noms d’assistants.
- Compagnons configurables : modèle, prompt système, voix, ton, humeur, spécialisation et avatar.
- Entrée vocale avec Whisper et lecture des réponses avec Piper ou Chatterbox.
- Téléchargement et sélection des modèles Ollama depuis les réglages.
- Base de connaissances RAG alimentée par des fichiers ou une page web.
- Skills avec commandes slash, dont
/help,/summarizeet/translate. - Hooks avant et après traitement des messages, avec activation depuis les réglages.
- Agents de recherche web et de lecture de page.
- Onboarding, profil local protégé par mot de passe et connexion facultative pour la synchronisation.
- Thème clair ou sombre, cinq langues et interface responsive.
- Liens profonds sur mobile et fonctionnement hors ligne.
| Partie | Technologies |
|---|---|
| Client | Svelte 5, SvelteKit, Vite, Tailwind CSS 4, @medyll/css-base |
| Serveur | Node.js, Express, PouchDB |
| Stockage client | RxDB et IndexedDB |
| Bureau | Electron |
| Mobile | Capacitor |
| IA et audio | Ollama, Whisper, Piper, Chatterbox |
| Tests | Vitest et Playwright |
- Node.js 20 ou plus récent
- pnpm 11
- Ollama sur
http://127.0.0.1:11434 - Android Studio uniquement pour Android
Préparez au moins un modèle Ollama :
ollama serve
ollama pull mistralgit clone https://github.com/medyll/wollama.git
cd wollama
pnpm installLes modèles audio sont facultatifs :
pnpm setup:audioLancez le serveur et le client dans deux terminaux :
pnpm dev:serverpnpm dev:clientLe client écoute sur http://localhost:5173 et le serveur sur http://localhost:3000.
Pour Electron :
pnpm dev:electronPour Android :
pnpm build
pnpm --filter @wollama/client exec cap sync android
pnpm --filter @wollama/client exec cap run androidpnpm check
pnpm test:client -- --run
pnpm test:serverTests navigateur :
pnpm --filter @wollama/client exec playwright install
pnpm --filter @wollama/client exec playwright testÉtat actuel : 224 tests client et 76 tests serveur passent. Playwright couvre notamment l’onboarding, le shell du chat, les réglages, le responsive, les compagnons, les skills et la synchronisation entre appareils.
wollama/
├── client/ Application Svelte, Electron et Capacitor
├── server/ API Express, Ollama, audio, RAG, skills et agents
├── shared/ Schémas et types partagés
└── packages/ Paquets internes, dont Chatterbox
Le schéma de données de référence se trouve dans shared/db/database-scheme.ts.
Si Ollama refuse les requêtes du client, autorisez son origine :
OLLAMA_ORIGINS="*" ollama serveLes données du serveur sont stockées dans server/db_data/. Effacer les données du navigateur déclenche une nouvelle synchronisation depuis le serveur.