Pourquoi j'ai créé AIdaemon : un agent IA auto-hébergé que vous contrôlez depuis votre téléphone
J'utilisais des agents IA pour le codage depuis un certain temps. Claude Code, Codex, Cursor, Windsurf, Open Code. Ils ont changé ma façon d'écrire des logiciels. Mais c'était tout. L'IA restait confinée à l'éditeur.
Puis OpenClaw est apparu. Un agent IA open source capable de contrôler réellement vos applications, d'envoyer des messages, de gérer votre boîte de réception. Pas seulement du codage, mais tout ce qui se trouve sur votre ordinateur. Cela m'a fait réfléchir à ce que les agents IA pourraient faire d'autre.
Mais je voulais quelque chose de différent. Je n'avais pas besoin d'un agent qui contrôle Spotify ou gère mes lumières intelligentes. J'en avais besoin un qui réside sur mon serveur, exécute des commandes de terminal, déploie du code et se souvienne de ce sur quoi je travaillais la semaine dernière. Quelque chose que je pourrais contacter par message depuis mon téléphone lorsque je suis loin de mon bureau et qui effectuerait un vrai travail de développement sur ma machine.
C'est pourquoi j'ai construit AIdaemon.
Qu'est-ce qu'AIdaemon ?
AIdaemon est un agent IA auto-hébergé qui s'exécute comme un service d'arrière-plan (daemon) sur votre machine. Vous communiquez avec lui via Telegram, Slack ou Discord, et il peut exécuter des commandes de terminal, naviguer sur le Web, gérer des fichiers, exécuter des tâches planifiées et se souvenir des choses entre les sessions. C'est un binaire Rust unique. Pas besoin de Docker, pas de dépendances Node.js. Il suffit de le copier sur n'importe quelle machine et il fonctionne.
Considérez cela comme avoir un assistant compétent fonctionnant en permanence sur votre serveur ou votre ordinateur portable, que vous pouvez contacter de n'importe où.
Pourquoi ne pas simplement utiliser OpenClaw ?
J'ai en fait commencé avec OpenClaw. L'idée était brillante, mais lorsque j'ai creusé, je me heurtais constamment à des choses qui n'existaient pas encore. Je voulais approuver les commandes directement depuis mon téléphone avant qu'elles ne s'exécutent. Je voulais voir les étapes que l'IA suivait en temps réel, pas seulement le résultat final. Des choses de base pour un outil qui exécute des commandes sur votre machine.
Ensuite, j'ai rencontré un bug où OpenClaw ne fonctionnait pas avec Gemini. Je l'ai corrigé et j'ai ouvert une pull request, mais la file d'attente des PR était énorme. Je savais qu'il faudrait des jours, peut-être plus, avant que ma correction n'arrive dans la branche principale. C'est là que j'ai eu une révélation. Si je dois continuer à corriger le projet de quelqu'un d'autre pour obtenir ce dont j'ai besoin, autant construire le mien et l'utiliser comme expérience d'apprentissage pour comprendre comment les agents IA personnels doivent être architecturés, leurs cas limites, leurs limitations et tout ce qui se trouve entre les deux.
De plus, OpenClaw était perceptiblement lent sur l'un de mes Macs. Pour quelque chose qui est censé fonctionner comme un service d'arrière-plan, la performance compte. Cela m'a donné envie de quelque chose de plus léger.
Mais le plus grand manque était la mémoire. OpenClaw ne l'avait pas encore. Chaque conversation repartait de zéro. Aucun contexte de la veille, aucun souvenir des projets sur lesquels vous travaillez, aucun apprentissage des erreurs passées. Je ne pouvais pas accepter cela.
La question est donc passée de « comment faire fonctionner OpenClaw pour moi » à « à quoi ressemblerait mon démon IA idéal ? ». Je continuais à me heurter à la même frustration. J'étais loin de mon ordinateur et j'avais besoin de vérifier quelque chose, de redémarrer un service ou d'exécuter une commande rapide. Le SSH depuis mon téléphone fonctionne à la rigueur, mais c'est pénible pour tout ce qui dépasse ls.
Et si je pouvais simplement envoyer un message Telegram du type « vérifie si le service nginx est en cours d'exécution » et obtenir une réponse ? Ou « déploie les dernières modifications sur staging » ? C'était l'idée centrale inspirée par OpenClaw.
La mémoire a été la première chose que j'ai conçue
Dès le premier jour, je savais qu'AIdaemon devait se souvenir des choses. Pas seulement l'historique de discussion, mais des connaissances réelles. Quels projets je gère. Quels outils je préfère. Quelles erreurs j'ai rencontrées auparavant et comment je les ai corrigées.
Toutes les six heures, un processus d'arrière-plan examine les conversations récentes et extrait des faits durables. Des choses comme « David utilise Cloudflare pour le déploiement » ou « le serveur de staging fonctionne sur le port 3002 ». Les anciens faits sont remplacés lorsque de nouvelles informations arrivent, de sorte que les connaissances restent à jour.
Il apprend également des erreurs. Lorsqu'AIdaemon rencontre une erreur puis la résout avec succès, il stocke le modèle et la correction. La prochaine fois qu'une erreur similaire apparaît, il sait déjà quoi faire.
Les flux de travail sont également appris. Si je construis, teste et déploie une application Rust de la même manière plusieurs fois, AIdaemon remarque le modèle. Après suffisamment d'exécutions réussies, la procédure est automatiquement promue au rang de compétence réutilisable. Aucune configuration manuelle n'est nécessaire.
Tout cela est soutenu par des plongements vectoriels (vector embeddings) pour la recherche sémantique, pondérés par la fraîcheur et l'utilité. Les faits qui n'ont pas été rappelés depuis 30 jours diminuent progressivement. La mémoire reste pertinente sans nettoyage manuel.
La mémoire est également respectueuse de la vie privée. Les faits sont étiquetés avec des niveaux de visibilité, de sorte que les informations partagées dans un message privé ne fuient jamais vers un canal d'équipe.
Comment ça marche
L'architecture est simple. AIdaemon démarre comme un service système (launchd sur macOS, systemd sur Linux) et se connecte à vos canaux de messagerie. Lorsqu'un message arrive, il passe par une boucle d'agent.
- Classification de l'intention - Un modèle rapide détermine ce que vous voulez. Une réponse rapide, une tâche à exécuter, une automatisation à configurer.
- Sélection d'outils - L'agent choisit parmi plus de 40 outils intégrés en fonction de votre demande
- Exécution avec sécurité - Les commandes passent par des flux d'évaluation des risques et d'approbation avant de s'exécuter
- Mise à jour de la mémoire - Le contexte important est stocké pour les conversations futures
Les outils
AIdaemon est livré avec plus de 40 outils prêts à l'emploi.
- Terminal - Exécute des commandes shell avec une sécurité basée sur une liste blanche et une approbation en ligne (Autoriser une fois / Toujours / Refuser)
- Opérations sur fichiers - Lire, écrire, modifier et rechercher des fichiers
- Git - Commiter, créer des branches, vérifier le statut
- Navigation Web - Chrome sans tête pour les pages nécessitant un rendu JavaScript
- Requêtes HTTP - Contrôle complet des en-têtes, profils d'authentification, prise en charge OAuth
- Intégration MCP - Connecter des serveurs MCP externes pour étendre les capacités
- Agents CLI - Déléguer le travail à Claude Code, Gemini CLI, Codex ou Aider
- Planification - Automatisation des tâches de style Cron avec analyse du temps en langage naturel
- Gestion de la mémoire - Interroger, mettre à jour et partager des connaissances entre les canaux
Vous pouvez également ajouter des canaux à l'exécution. Besoin de connecter un bot Discord en plus de votre bot Telegram existant ? Utilisez simplement la commande /connect. Aucun redémarrage nécessaire.
Routage intelligent des modèles
Chaque message n'a pas besoin du modèle le plus coûteux. AIdaemon classe les requêtes en trois niveaux.
- Rapide - Questions simples, recherches rapides (modèle le moins cher)
- Principal - Tâches standard, la plupart des interactions (modèle par défaut)
- Intelligent - Raisonnement complexe, tâches en plusieurs étapes (modèle le plus performant)
Il prend en charge plusieurs fournisseurs de LLM prêts à l'emploi. API compatibles OpenAI (y compris OpenRouter), Google Gemini, Anthropic Claude, Ollama, et tout modèle local que vous souhaitez exécuter. Vous pouvez changer de fournisseur à l'exécution sans reconstruction.
La sécurité avant tout
Donner à un agent IA un accès au terminal est quelque chose que vous voulez bien faire. AIdaemon adopte une approche prudente.
- Exécution basée sur une liste blanche - Seuls les préfixes de commandes pré-approuvés s'exécutent sans demander
- Flux d'approbation en ligne - Pour tout ce qui ne figure pas sur la liste blanche, vous recevez une invite Autoriser une fois / Autoriser toujours / Refuser directement dans votre chat
- Évaluation des risques - Les commandes sont notées en fonction de leur potentiel destructeur, de la sensibilité des chemins et de la complexité
- Protection SSRF - Les outils HTTP bloquent les requêtes vers les adresses IP internes
- État chiffré - Chiffrement de la base de données avec SQLCipher, secrets stockés dans le trousseau de votre système d'exploitation
- Détection de blocage - L'agent s'arrête s'il répète le même appel d'outil trois fois ou se coince dans des schémas alternés
Démarrer
La manière la plus rapide de l'essayer.
# Installer via Homebrew
brew tap davo20019/tap
brew install aidaemon
# Ou installer depuis crates.io
cargo install aidaemon
# Ou télécharger le binaire directement
curl -sSfL https://get.aidaemon.ai | bash
Ensuite, créez un config.toml avec votre fournisseur LLM et le jeton de bot Telegram, puis démarrez le démon.
# Installer comme service système
aidaemon install-service
# Ou exécuter au premier plan
aidaemon
C'est tout. Envoyez un message à votre bot Telegram et vous parlez à votre machine. Consultez la documentation complète pour les options de configuration et les fonctionnalités avancées.
Pourquoi Rust ?
Je n'avais jamais écrit une ligne de Rust avant ce projet. Après avoir constaté la lenteur d'OpenClaw sur mon Mac, je voulais quelque chose de rapide. Je voulais aussi voir si je pouvais construire un système de qualité production dans un langage inconnu en m'appuyant sur des outils de codage IA pour le travail fastidieux. Claude Code, Codex et Antigravity ont géré le travail de routine et les batailles avec le vérificateur d'emprunt (borrow checker). Je me suis concentré sur l'architecture et la conception.
Le résultat est un binaire unique que je peux copier sur un Raspberry Pi ou un VPS à 5 $/mois et il fonctionne, tout simplement. Pas de Docker, pas de Node.js, pas de dépendances d'exécution. Pour un démon censé fonctionner 24h/24 et 7j/7, la sécurité au moment de la compilation et la faible empreinte mémoire de Rust se sont avérées être le bon choix.
Quoi de neuf
AIdaemon est à la version 0.9.2 et je continue de l'améliorer. Les ajouts récents comprennent un système de consultant en deux phases pour une classification d'intention plus intelligente, l'application forcée de schémas JSON structurés pour les sorties LLM, et le suivi des objectifs avec des budgets de jetons.
Le projet est open source sur GitHub et publié sur crates.io. Si vous souhaitez disposer d'un agent IA personnel que vous contrôlez entièrement, essayez-le et dites-moi ce que vous en pensez.