Test de nanobot : l'agent IA auto-hébergé et léger de HKUDS
nanobot est un petit agent Python sous MIT de l'Université de Hong Kong, avec une WebUI soignée. Installation, sandboxing, modèles locaux et maintenance.
nanobot est un framework d’agent personnel du Data Intelligence Lab de l’Université de Hong Kong (HKUDS). Il a été officiellement lancé le 2 février 2026 et comptait 49 932 étoiles GitHub lors de notre vérification du 8 novembre 2026, plus que tout autre agent de notre liste à l’exception d’OpenClaw et de Hermes Agent. Ce test porte sur l’agent HKUDS/nanobot.
Son idée : un petit noyau Python conçu pour être lu et modifié, enveloppé dans une interface navigateur étonnamment aboutie.

L’installer
Il existe quatre voies : un script d’installation, pip, Docker, ou un déploiement cloud en un clic (la documentation de déploiement couvre Render). Il nécessite Python 3.11 ou plus récent sur macOS 13+, Linux ou Windows, et le script d’installation configure son propre environnement Python pour que vous n’ayez pas à en gérer un. Les sessions, la mémoire et les réglages résident dans ~/.nanobot.
Une fois lancé, vous choisissez comment lui parler : la WebUI fournie dans un navigateur, une interface en terminal, ou des applications de messagerie. La WebUI est le point fort. Elle regroupe les conversations en projets, affiche les diffs de fichiers, propose un catalogue d’applications MCP et place les automatisations planifiées sur un calendrier. Jusqu’à quatre conversations peuvent être affichées côte à côte (README).
Il n’existe pas d’application native mobile ou de bureau. Sur téléphone, vous utilisez la WebUI dans un navigateur ou l’une des applications de messagerie.
Le sandboxing, c’est à vous de le faire
nanobot exécute des commandes shell et travaille sur des fichiers dans un dossier de projet. Par défaut, ces commandes ne sont pas sandboxées. La documentation de configuration décrit un sandbox bubblewrap sous Linux et Seatbelt sous macOS que vous devez activer, et il n’y a aucun sandbox sous Windows.
Si vous installez nanobot sur votre ordinateur principal, activez le sandbox avant de connecter une application de messagerie, car un canal de messagerie signifie que des messages venus de l’extérieur peuvent atteindre un agent qui exécute des commandes. Sous Windows, faites-le plutôt tourner dans Docker ou sur une machine séparée. Comparez avec ZeroClaw, dont le profil recommandé active un sandbox de l’OS dès le départ, ou NanoClaw, qui place chaque agent dans un conteneur.

Télémétrie et vie privée
nanobot n’envoie aucune télémétrie d’usage. La documentation n’en décrit aucune, le code ne contient aucun client d’analytique, et il définit même DISABLE_TELEMETRY quand il appelle l’installateur de compétences tiers (source). Le traçage Langfuse existe, mais ne fonctionne que si vous l’activez avec vos propres clés. Les prompts et les fichiers joints vont au fournisseur de modèles et aux plateformes de messagerie que vous choisissez.
Modèles locaux
Il fonctionne avec OpenAI, Anthropic, DeepSeek, OpenRouter, AWS Bedrock ou tout endpoint compatible OpenAI, ainsi qu’avec des modèles locaux via Ollama, vLLM ou LM Studio (documentation des fournisseurs). Vous pouvez donc le faire tourner sans aucun modèle cloud si votre matériel peut supporter un modèle local performant. nanobot ne vend aucun service hébergé : la seule facture est celle de votre fournisseur de modèles. Les messages vocaux nécessitent un fournisseur de transcription séparé comme Groq ou OpenAI.
Travailler en votre absence
C’est là que nanobot mérite sa place. Il exécute des automatisations planifiées et des objectifs de longue durée, et un heartbeat ne renvoie que les résultats utiles dans la dernière discussion que vous avez utilisée. Un processus d’arrière-plan appelé Dream consolide la mémoire à long terme dans de simples fichiers Markdown (documentation de la mémoire), que vous pouvez lire et modifier vous-même. C’est un atout appréciable en auto-hébergement : la mémoire de votre agent n’est pas enfermée dans une base de données que vous ne pouvez pas inspecter.
Deux lacunes pour un usage sans surveillance, toutes deux tirées de la documentation des concepts : les exécutions planifiées manquées ne sont pas rejouées, et les tâches de sous-agents interrompues ne sont pas relancées après un redémarrage. Si l’hôte redémarre à 9 h 00, le rapport de 9 h 00 n’a tout simplement pas lieu. Faites-le tourner comme service sur une machine qui reste allumée.

Canaux et extensions
Les applications de messagerie incluent Telegram, Discord, Slack, WhatsApp, WeChat, Feishu, Microsoft Teams, Matrix et l’e-mail. Il peut aussi tourner en plusieurs instances (documentation des instances multiples), et les développeurs disposent d’un SDK Python et d’une API compatible OpenAI, pour que d’autres outils puissent appeler nanobot comme s’il s’agissait d’un modèle.
Pour qui
nanobot convient aux développeurs qui veulent un agent léger qu’ils peuvent lire et étendre en Python, et à ceux qui veulent un assistant auto-hébergé avec une vraie interface navigateur et un accès par applications de messagerie. C’est un choix moins pertinent si vous voulez de l’isolation sans la configurer, ou une application mobile native.
Comment il se compare
- PicoClaw s’est inspiré de nanobot et a été réécrit en Go pour tourner avec quelques mégaoctets de RAM. Il sacrifie l’interface plus riche et l’extensibilité Python de nanobot au profit d’une empreinte minuscule.
- OpenClaw a l’écosystème le plus large et des applications mobiles, mais envoie de la télémétrie par défaut ; aucun des deux n’a de sandbox activé par défaut.
- Hermes Agent est aussi en Python et sous MIT, avec une application de bureau, un système de compétences auto-améliorantes, et aucune télémétrie par défaut.
- QwenPaw est le plus proche par sa forme : Python, console web, agents multiples, modèles locaux, avec une meilleure couverture des applications de messagerie chinoises.
Pour en savoir plus, consultez les alternatives à OpenClaw et la liste du meilleur agent IA open source.
Tarifs
| Open source | Gratuit |
|
|---|
Fonctionnalités
| Recherche web | Oui |
|---|---|
| Génération d'images | Oui |
| Mode vocal | Oui |
| Envoi de fichiers | Oui |
| Mémoire | Oui |
| Agit à votre place | Oui |
| Intégrations d'apps | Oui |
| Travaille en autonomie | Oui |
| Vous écrit en premier | Oui |
| Plusieurs bots | Oui |
Points forts
- Free and MIT licensed, with a small Python core that is meant to be read and modified
- Polished bundled WebUI with projects, file diffs, an MCP app catalog and an automations calendar, plus a terminal UI
- Many chat channels, including Telegram, Discord, Slack, WhatsApp, WeChat, Feishu, Teams, Matrix and email
- Scheduled automations, long-running goals and a heartbeat that reports only useful results to your last chat
- Works with local models through Ollama, vLLM or LM Studio
Points faibles
- Shell commands are not sandboxed by default; the bubblewrap or macOS Seatbelt sandbox must be turned on, and Windows has none
- Model costs are on you, and voice messages need a separate transcription provider such as Groq or OpenAI
- No native mobile or desktop app; on a phone you use the WebUI in a browser or a chat app
- Missed scheduled runs are not replayed and interrupted subagent tasks are not relaunched after a restart
Idéal pour
- Developers who want a lightweight agent they can read and extend in Python
- People who want a self-hosted assistant with a browser UI and chat-app access
- Running scheduled checks and reports with a local or cloud model
Sources
- HKUDS/nanobot on GitHub (MIT, v0.4.1, README)
- nanobot documentation
- nanobot release archive (officially launched February 2, 2026)
- nanobot docs: Chat apps
- nanobot docs: Providers and models (Ollama, vLLM, LM Studio)
- nanobot docs: Configuration (security, exec sandbox off by default, transcription, Langfuse)
- nanobot docs: Automations and heartbeat
- nanobot docs: Concepts (heartbeat delivery, subagent recovery)
- nanobot docs: Memory and Dream
- nanobot docs: Multiple instances
- nanobot docs: Deployment (Docker, services, Render)
- nanobot source: skills installer runs with DISABLE_TELEMETRY
