Dodai est une extension de navigateur open-source conçue pour être votre second cerveau. Elle combine un puissant système de gestion de connaissances personnelles (PKM) avec des capacités d'intelligence artificielle locales, fonctionnant grâce à Ollama. Capturez, organisez, et interagissez avec vos informations comme jamais auparavant, directement depuis votre navigateur.
Le cœur de l'application. Le Canvas est un environnement interactif où vous dialoguez avec l'IA pour créer des "artefacts" :
- Génération de Contenu : Demandez à l'IA de rédiger des articles, des poèmes, des résumés ou tout autre type de document Markdown.
- Modification Itérative : Affinez et modifiez les artefacts générés avec des instructions en langage naturel (ex: "rends ce texte plus concis", "adopte un ton plus professionnel").
- Historique des Versions : Chaque modification crée une nouvelle version de l'artefact, vous permettant de naviguer et de revenir à des états précédents.
Un système de gestion de connaissances (PKM) complet, directement dans votre navigateur.
- Éditeur Riche : Un éditeur de notes basé sur BlockNote, offrant une expérience d'édition moderne et fluide.
- Organisation Hiérarchique : Organisez vos notes dans une arborescence de dossiers avec une profondeur illimitée.
- Système de Tags : Taguez vos notes pour une organisation transversale et retrouvez facilement l'information.
- Graphe de Tags Interactif : Visualisez les connexions entre vos notes grâce à un graphe de tags dynamique.
- Import/Export : Sauvegardez et restaurez vos notes aux formats JSON ou Markdown (ZIP).
Discutez avec votre assistant IA à tout moment depuis le panneau latéral du navigateur.
- Chat Contextuel : L'assistant peut utiliser le contenu de la page que vous consultez pour fournir des réponses plus pertinentes.
- Raisonnement de l'IA : Visualisez les étapes de pensée de l'agent pour comprendre comment il arrive à ses conclusions.
- Sauvegarde en Note : Transformez n'importe quelle réponse de l'assistant en une nouvelle note en un seul clic.
Conversez directement avec vos notes !
- Mode "Mémoire" : Activez le mode RAG pour que l'assistant base ses réponses sur le contenu de votre base de notes personnelles.
- Sources Citées : L'assistant indique quelles notes ont été utilisées pour formuler sa réponse, vous permettant de vérifier et d'approfondir.
Augmentez les capacités de votre IA en la connectant à des outils externes via le Model Context Protocol (MCP).
- Configuration Facile : Ajoutez des serveurs MCP depuis la page d'options pour donner à votre agent l'accès à de nouvelles capacités (ex: interagir avec le système de fichiers local, appeler des APIs, etc.).
- Découverte Automatique : Les outils disponibles sont automatiquement découverts et mis à disposition de l'agent.
Obtenez des suggestions d'autocomplétion basées sur l'IA directement dans les champs de texte de n'importe quelle page web.
- Suggestions Contextuelles : L'IA analyse le texte que vous écrivez, ainsi que le contenu de la page, pour proposer des complétions pertinentes.
- Acceptation Simple : Acceptez les suggestions d'une simple combinaison de touches (Ctrl+Espace).
Sauvegardez du contenu depuis n'importe quelle page web grâce au menu contextuel.
- Sauvegarde de Sélection : Sélectionnez du texte et sauvegardez-le directement dans une nouvelle note.
- Sauvegarde de Page : Capturez l'URL et le titre d'une page pour créer une note de référence.
- Tagging Automatique par IA : Lors de la capture, l'IA analyse le contenu et suggère automatiquement des tags pertinents pour une organisation sans effort.
Le projet est structuré en monorepo géré avec pnpm et Turbo.
chrome-extension/: Le cœur de l'extension, contenant lemanifest.tset le script d'arrière-plan (background). C'est ici que les services principaux commeagent-service,mcp-serviceetrag-servicesont orchestrés.pages/: Contient les différentes vues (interfaces utilisateur) de l'extension, chacune étant une application Vite indépendante (Popup, Side Panel, Options, Canvas, Notes, etc.).packages/: Héberge le code partagé à travers le monorepo :storage: Une abstraction robuste au-dessus dechrome.storagepour une gestion de données typée et réactive.ui: Une bibliothèque de composants React partagés, construite avec TailwindCSS.shared: Utilitaires et hooks partagés.- Et d'autres paquets pour la configuration (Vite, TSConfig, i18n, etc.).
Pour lancer ce projet en local, suivez ces étapes :
- Node.js :
v22.12.0ou supérieure. - pnpm :
v9.15.1ou supérieure. - Ollama : Installez Ollama sur votre machine.
- Un modèle IA : Téléchargez au moins un modèle.
ollama pull llama3
-
Clonez le dépôt :
git clone https://github.com/votre-utilisateur/votre-repo.git cd votre-repo -
Installez les dépendances :
pnpm install
-
Configurez l'environnement : Copiez le fichier d'exemple
.env. Aucune modification n'est nécessaire pour démarrer.cp .example.env .env
-
Lancez le build en mode développement : Cette commande va construire l'extension et surveiller les changements de fichiers.
pnpm dev
-
Chargez l'extension dans votre navigateur :
- Ouvrez la page des extensions (
chrome://extensionsouedge://extensions). - Activez le "Mode développeur".
- Cliquez sur "Charger l'extension non empaquetée".
- Sélectionnez le dossier
distà la racine du projet.
- Ouvrez la page des extensions (
.
├── chrome-extension/ # Coeur de l'extension (background, services)
├── pages/ # Chaque sous-dossier est une UI de l'extension
│ ├── canvas/ # Espace de travail génératif
│ ├── notes/ # Interface de gestion des notes
│ ├── side-panel/ # Panneau latéral de chat
│ ├── popup/ # Popup de l'extension
│ └── ... # Autres vues (options, etc.)
├── packages/ # Code partagé
│ ├── storage/ # Gestion du stockage
│ ├── ui/ # Composants React partagés
│ ├── shared/ # Hooks et utilitaires
│ └── ... # Configurations (Vite, TypeScript, etc.)
└── ...
Les contributions sont les bienvenues ! Que ce soit pour rapporter un bug, proposer une nouvelle fonctionnalité ou soumettre une pull request, n'hésitez pas.
- Forkez le projet.
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/ma-super-feature). - Commitez vos changements (
git commit -m 'Ajout de ma-super-feature'). - Poussez vers la branche (
git push origin feature/ma-super-feature). - Ouvrez une Pull Request.
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

