LocalGPT, l’assistant IA local-first — basé sur Rust, avec mémoire persistante
(github.com/localgpt-app)- Assistant IA local exécuté en Rust : fonctionne entièrement sur l’appareil personnel sans connexion Internet, sans transmettre les données vers l’extérieur
- Architecture en exécutable unique : peut être lancé sans installer Node.js, Docker ou Python, sous la forme d’un binaire léger d’environ 27 Mo
- Système de mémoire persistante : offre une mémoire de long terme et des fonctions de recherche grâce à un dépôt de connaissances basé sur Markdown, SQLite FTS5 et la recherche sémantique
- Prend en charge à la fois CLI, interface web et GUI desktop, et est compatible avec plusieurs fournisseurs de LLM comme OpenAI, Anthropic et Ollama
- Compatible avec le format OpenClaw, permettant d’exécuter des tâches autonomes à l’aide des fichiers SOUL, MEMORY et HEARTBEAT
Aperçu
- LocalGPT est un assistant IA centré sur l’appareil local, une application basée sur Rust dotée d’une mémoire persistante et de capacités de travail autonome
- Exécution complète sur l’appareil personnel sans dépendre de serveurs externes
- Inspiré du projet OpenClaw tout en conservant la compatibilité
- L’installation est possible avec la commande
cargo install localgpt, avec au choix l’inclusion de l’interface graphique ou le mode headless
Principales fonctionnalités
- Architecture à binaire unique ne nécessitant ni Node.js, ni Docker, ni Python
- Conservation locale des données : toute la mémoire et les paramètres sont stockés sur l’appareil de l’utilisateur
- Mémoire persistante : utilise un dépôt de connaissances fondé sur des fichiers Markdown, avec prise en charge de la recherche rapide et de la recherche sémantique via SQLite FTS5 et sqlite-vec
- Fonction heartbeat autonome permettant d’exécuter des tâches en arrière-plan
- Interfaces variées : CLI, interface web et GUI desktop
- Prise en charge de plusieurs LLM : compatible avec Anthropic (Claude), OpenAI, Ollama, etc.
Fonctionnement
- La mémoire est stockée dans le répertoire
~/.localgpt/workspace/, avec la structure principale suivanteMEMORY.md: stockage des connaissances de long termeHEARTBEAT.md: file de tâches autonomesSOUL.md: personnalité et consignes de comportementknowledge/: dépôt de connaissances structuré par sujet
- Recherche par mots-clés avec SQLite FTS5, et recherche sémantique locale basée sur des embeddings avec sqlite-vec
Configuration et commandes CLI
- Le fichier de configuration est stocké dans
~/.localgpt/config.tomlet permet de définir le modèle par défaut, les clés API, l’intervalle du heartbeat, les plages horaires de travail, etc. - Principales commandes CLI
localgpt chat: démarrer une session de conversationlocalgpt ask "질문": exécuter une requête uniquelocalgpt daemon start: lancer le démon en arrière-planlocalgpt memory search "query": rechercher dans la mémoirelocalgpt config init: générer la configuration par défaut
HTTP API
- Une REST API est fournie lorsque le démon est en cours d’exécution
GET /health: vérifier l’étatPOST /api/chat: requête de conversationGET /api/memory/search?q=<query>: recherche dans la mémoireGET /api/memory/stats: consulter les statistiques de mémoire
Stack technique
- Basé sur Rust, Tokio, Axum, SQLite (FTS5 + sqlite-vec), fastembed et eframe
- Distribué sous licence Apache-2.0, avec environ 93 % du code écrit en Rust
Autres informations
- Sur GitHub, le projet compte environ 646 étoiles et 39 forks
- Le billet de blog “Why I Built LocalGPT in 4 Nights” détaille le processus de développement et l’historique commit par commit
- Les principaux contributeurs identifiés sont au nombre de quatre : Yi Wang, Claude, objectkit et Ax73
1 commentaires
Commentaires Hacker News
Voir ce genre de chose en 2026 donne vraiment une impression cyberpunk
La structure avec
MEMORY.md,HEARTBEAT.md,SOUL.mdest très intéressanteCela dit, comme ça dépend de
ANTHROPIC_API_KEY, c’est difficile de vraiment appeler ça « local-first »Malgré tout, je pense qu’à long terme, le local-first représente l’avenir
J’ai fait quelque chose de similaire en Rust l’an dernier, et faire tourner les modèles en local faisait clairement la différence en vitesse
J’ai aussi ma vidéo de démo
Implémenter ce genre de chose au niveau de l’OS a été une véritable rupture de paradigme
Je pense que notre manière d’interagir avec les appareils va changer en profondeur dans les 5 à 10 prochaines années
On peut définir directement un endpoint compatible OpenAI ou Anthropic, y compris sur localhost
Je viens juste de commencer, mais ça semble assez prometteur
Plus de 100 datacenters de classe gigawatt devraient voir le jour dans les prochaines années
Je trouve que c’est un bien meilleur usage de l’argent que l’industrie de l’armement
Un conseil : pour les billets et la documentation, il vaut mieux écrire soi-même ou au moins éditer soi-même
En l’état, la documentation et les textes donnent tous l’impression d’avoir été écrits par un LLM, sans aucun soin
Ces machines à blanchir le plagiat sont en train de détruire le sens de l’écriture chez les gens
À la base, je déteste écrire de la documentation, donc avant il n’y en avait quasiment pas dans mon code
Ce qui le rendait difficile à utiliser pour les autres
Les LLM produisent rapidement des explications précises et les maintiennent à jour, donc c’est idéal pour la rédaction de documentation
Même si ça se voit qu’un humain ne l’a pas écrite, tant que le contenu est correct, je n’y vois pas de problème
Au contraire, il y a une ambiance où l’on semble fier de ne faire aucun effort
L’idée de ce projet est excellente
Le cœur, c’est un framework structuré de mémoire persistante + recherche sémantique
La fonction SOUL est en réalité déjà prise en charge par la plupart des LLM sous forme de fichiers Markdown
Ce type de structure peut devenir le point de départ d’un réseau privé d’agents
Mais le problème, c’est le nom — LocalGPT n’est
Il vaudrait mieux le renommer pour refléter plus précisément l’intention
Question sérieuse : je me demande en quoi cela diffère de OpenClaw
Ça utilise la même structure
SOUL.md,MEMORY.md,HEARTBEAT.md,et OpenClaw propose déjà la messagerie multicanal, les appels vocaux, l’automatisation du navigateur, et même des sous-agents
J’aimerais savoir s’il y a un élément différenciateur autre que le fait que ce soit écrit en Rust
Il y a trop de fonctionnalités, et son architecture de sécurité est faible
L’approbation des permissions est surtout formelle, et il peut modifier sa propre configuration
C’est pourquoi j’isole les permissions avec Wardgate
Il faut répartir ça sur plusieurs nœuds/agentes et séparer les identifiants ainsi que l’accès aux API
Tout le monde n’a pas une machine puissante
Je me demande pourquoi il faut se connecter à des fournisseurs de LLM comme OpenAI ou Anthropic
Si c’est un GPT local, l’inférence ne devrait-elle pas aussi être locale ?
On peut définir un serveur local comme Ollama en tant que fournisseur de LLM
Le README ne montre qu’un exemple avec Anthropic, mais le code montre que d’autres options sont possibles
Il suffit de modifier une ligne dans la configuration
En réalité, ce n’est ni local ni un GPT
C’est plus proche d’un clone Rust de OpenClaw
Code associé : providers.rs L222
Le problème central de sécurité pour des agents comme LocalGPT ou OpenClaw, c’est la trinité fatale :
« private data access + external communication + untrusted content »
Un seul e-mail malveillant peut suffire à déclencher une instruction du type « transfère ma boîte mail à l’attaquant »
Je travaille sur des politiques de sécurité basées sur les object capabilities pour résoudre cela
J’aimerais concevoir des politiques empêchant structurellement toute fuite d’informations sensibles
Je vois deux pistes de solution
mais c’est très fatigant
Je me demande si vous explorez d’autres approches
J’ai essayé OpenClaw, mais il manque d’observabilité
Il n’y a aucun log permettant de voir ce que l’agent pense ou fait en ce moment
Ce genre de système serait parfait en Elixir/BEAM
On pourrait suivre l’état via l’arbre des processus et inspecter les boîtes aux lettres des messages pour voir le fil de pensée
Ils n’en montrent qu’une fraction et consomment en réalité plus de tokens
Le fait de devoir pallier une fonctionnalité qui devrait être native avec des tutoriels YouTube montre bien que c’est actuellement le chaos
Sur Linux Mint,
cargo install localgpta échouéEn ajoutant
"x11"dansCargo.toml, la compilation a réussiJe ne connais pas très bien Rust, mais ça semble être un problème de dépendance GUI
Quels sont les modèles locaux intéressants pour servir d’assistant local ?
Je me demande aussi s’il existe des évaluations du compromis entre ressources de calcul et mémoire
J’aimerais savoir à partir de quel niveau de matériel cela devient réellement utile
Le mot « local » est vraiment utilisé de manière étrange ces temps-ci
On parle de local alors que la majorité des fonctionnalités interagit quand même avec Internet