5 points par GN⁺ 2026-02-02 | 1 commentaires | Partager sur WhatsApp
  • NanoClaw est un assistant IA personnel basé sur Claude qui fonctionne dans des conteneurs Apple, avec une architecture légère composée d’un seul processus et d’un petit nombre de fichiers
  • Grâce à une isolation des conteneurs par groupe, il sépare l’historique des conversations et le système de fichiers, tout en prenant en charge la messagerie WhatsApp, les tâches planifiées, l’accès web, etc.
  • Sans fichier de configuration, Claude Code guide l’installation et la personnalisation, et l’utilisateur peut modifier directement le code pour l’adapter à ses besoins
  • Les nouvelles fonctionnalités sont étendues via des fichiers de « Skills » plutôt que par ajout de code, avec diverses demandes d’extension comme /add-telegram, /convert-to-docker, etc.
  • En privilégiant une structure de sécurité compréhensible et la simplicité plutôt que des frameworks complexes, le projet fournit une base permettant aux développeurs indépendants ou aux startups de construire un assistant IA de manière sûre

Aperçu du projet

  • NanoClaw est un assistant Claude personnel fonctionnant dans l’environnement Apple Container, conçu avec la légèreté et la sécurité comme priorités
    • Il s’exécute dans un unique processus Node.js, et chaque agent utilise un système de fichiers isolé à l’intérieur d’un conteneur Linux
    • La base de code se compose d’environ 500 lignes de TypeScript, et le projet affirme qu’un utilisateur peut comprendre toute la structure en 8 minutes
  • Il est publié sous licence MIT et a obtenu plus de 500 Stars sur GitHub

Philosophie de conception

  • Une taille compréhensible : un unique processus, sans microservices, file de messages ni abstractions complexes
  • La sécurité par l’isolation : seuls les répertoires montés explicitement sont accessibles, et les commandes Bash ne s’exécutent qu’à l’intérieur des conteneurs
  • Pensé pour un utilisateur unique : il ne s’agit pas d’un framework mais d’un logiciel personnalisé, que l’on peut forker puis modifier directement
  • Modifier le code plutôt que configurer : les fichiers de configuration sont réduits au minimum, et le comportement souhaité s’implémente par modification du code
  • Une approche nativement IA : installation, débogage et supervision passent tous par l’interface conversationnelle de Claude Code
  • Une extensibilité fondée sur les Skills : l’ajout de fonctionnalités passe non par des changements de code, mais par des fichiers de compétences dans le répertoire .claude/skills
Publicité

Fonctionnalités principales

  • WhatsApp I/O : échange direct de messages avec Claude depuis le téléphone
  • Isolation du contexte par groupe : chaque groupe dispose de sa propre mémoire CLAUDE.md et de son propre système de fichiers conteneurisé
  • Canal principal : canal personnel d’administration, complètement séparé des autres groupes
  • Tâches planifiées : exécution de tâches périodiques et envoi automatique de messages
  • Accès web : recherche et collecte de contenu
  • Intégrations optionnelles : possibilité de connecter Gmail et d’autres services externes via des Skills comme /add-gmail

Personnalisation

  • Les modifications peuvent être faites directement via une conversation avec Claude Code, sans fichier de configuration
    • Exemples : « changer le mot de déclenchement en @Bob », « raccourcir les réponses », « enregistrer chaque semaine un résumé des conversations », etc.
  • La commande /customize accompagne les modifications étape par étape
  • La base de code est suffisamment petite pour que Claude puisse la modifier directement en toute sécurité

Extension et mode de contribution

  • Les nouvelles fonctionnalités ne sont pas ajoutées directement via des PR, mais fournies sous forme de Skills
    • Exemples : extension des canaux de communication avec /add-telegram, /add-slack, /add-discord, etc.
    • Conversion d’Apple Container vers Docker avec /convert-to-docker
    • Prise en charge de Windows via WSL2 avec /setup-windows
    • Ajout de fonctions de résumé et de compression de session avec /add-clear
  • Les contributeurs transforment leur fork via des Skills, puis repartagent le résultat au projet
Publicité

Exigences système et structure

  • Requiert macOS Tahoe(26) ou version ultérieure, Node.js 20+, Claude Code et Apple Container
  • Flux d’architecture :
    WhatsApp (baileys) → SQLite → Polling loop → Container (Claude Agent SDK) → Response
  • Principaux fichiers :
    • src/index.ts : application principale et connexion WhatsApp
    • src/container-runner.ts : gestion de l’exécution des conteneurs
    • src/task-scheduler.ts : fonctionnalités de planification
    • src/db.ts : intégration SQLite
    • groups/*/CLAUDE.md : stockage de la mémoire par groupe

Résumé de la FAQ

  • Pourquoi WhatsApp ? : parce que l’auteur utilise WhatsApp personnellement, et les autres canaux peuvent être remplacés via des Skills
  • Pourquoi Apple Container ? : parce qu’il est intégré à macOS, léger et rapide
  • Peut-il fonctionner sous Linux ? : un portage serait possible en environ 30 minutes via Claude Code
  • Sécurité : fondée sur l’isolation des conteneurs, sans accès en dehors des montages explicites
  • Pourquoi l’absence de fichier de configuration ? : pour éviter la prolifération des réglages et conserver une personnalisation centrée sur le code
  • Comment déboguer ? : en posant directement des questions à Claude Code pour résoudre les problèmes
  • Quelles modifications sont autorisées ? : uniquement les correctifs de sécurité, de bugs et les améliorations de la configuration par défaut

Licence

  • Distribué sous licence MIT
  • Chacun peut librement le modifier et le redistribuer

1 commentaires

 
GN⁺ 2026-02-02
Réactions sur Hacker News
  • Faire tourner ça en conditions réelles me paraît dangereusement risqué
    Ça a l’air acceptable tant que tout va bien, mais au premier problème, c’est terminé
    Connecter un système comme Claw à un espace de conversation partagé, c’est littéralement une expérience dangereuse
    Les black hats regardent déjà ça de près, et au final beaucoup de gens risquent de se brûler sérieusement

    • C’est possible. Comme à l’époque où tout le monde faisait tourner des phpBB mal sécurisés ou des plugins Wordpress, on est peut-être en train de répéter l’histoire
    • Il y a les problèmes de sécurité, mais j’ai aussi deux autres inquiétudes
      1. Que se passera-t-il si, comme OpenAI l’a évoqué, des publicités se retrouvent mêlées aux réponses
      2. Que se passera-t-il si les prix bas actuels sont intenables et qu’ils sont multipliés par 10
        On est peut-être en train de vivre un âge d’or où l’on utilise des LLM à bas prix, sans publicité
        En ce moment, les résultats de recherche sont devenus tellement pollués par le spam que j’utilise plutôt l’IA pour lui demander directement des comparatifs ou des devis
        Mais j’ai peur qu’on finisse bientôt avec des réponses mêlées de pubs et de recommandations sponsorisées
  • Quand je publie du code que j’ai écrit ces temps-ci, j’essaie de rédiger la doc ou le README moi-même
    Quand un document sent trop le texte généré par LLM, ça me fait perdre de l’intérêt même si le projet est bon
    On n’y sent pas une vraie intention de s’adresser à des humains
    Même avec quelques fautes, je trouve une explication humaine bien meilleure
    À noter que l’auteur a modifié le README après mon commentaire
    Lien vers le commit modifié

    • C’est l’auteur. Je n’ai jamais caché que j’avais codé avec l’IA. Presque tous les commits indiquent « Co-Authored-By: Claude Opus 4.5 »
      J’ai corrigé les passages qui faisaient trop IA, comme tu l’as signalé, et c’est bien mieux maintenant
      Ce code n’est pas un chef-d’œuvre, c’est du code pratique qui m’est utile
      J’espère qu’il pourra aussi servir de référence à d’autres
      J’ai passé le week-end à travailler sur l’architecture de sécurité, mais je dois m’arrêter là pour l’instant, donc c’est encore un peu rough
      Le README donne un bien meilleur contexte sur le projet
    • Je suis totalement d’accord. Les README ou présentations produit écrits par IA donnent une impression de manque de sincérité et me font immédiatement décrocher
      Utiliser l’IA pour le code, très bien, mais le texte de présentation devrait être écrit par une personne
    • En ce moment, les projets basés sur les LLM ont tendance à se concentrer davantage sur l’emballage qui attire l’attention que sur la fonctionnalité elle-même
      Avant, le code était une « preuve d’effort » en soi, mais maintenant c’est tellement facile à produire que ça a perdu de son poids
    • Il arrive même que le contenu du README soit halluciné
      Lien vers le fil associé
  • L’un des avantages de Clawdbot, c’est qu’il autorise toutes les permissions
    Cela dit, je me demande comment ce type d’actions externes est sandboxé
    Apple Container semble assez solide, car chaque conteneur est mappé en 1:1 à une VM légère
    Il existe par exemple instavm/coderunner, un sandbox d’exécution de code générique qui exploite cette approche
    Il peut aussi s’intégrer à des IA comme Claude Code

    • Si on « autorise toutes les permissions », j’aimerais bien savoir en quoi c’est différent de mettre les fichiers système en permissions 777
    • Ça me rappelle quand, dans le labo d’info, des étudiants demandaient le mot de passe superutilisateur et que le professeur refusait
      Clawdbot, c’est comme si 100 étudiants de deuxième année frappaient à la porte en demandant les droits root
  • Ce projet a l’air chouette
    Je me demandais justement si on pouvait utiliser l’Agent SDK avec un abonnement Claude Pro/Max,
    et d’après la documentation officielle Quickstart, ce serait possible
    Il est indiqué qu’après l’installation, si on se connecte dans le terminal, le SDK utilise automatiquement l’authentification

    • Mais la doc dit aussi que seule l’authentification par clé API est autorisée
      Donc, à première vue, il semble impossible d’utiliser directement le SDK avec un compte d’abonnement
      J’aimerais qu’Anthropic clarifie ce point
    • C’est l’auteur. Ça m’embrouillait aussi, donc j’ai essayé moi-même
      Comme j’utilise l’Agents SDK, je pense que ce n’est probablement pas contraire aux CGU
      En revanche, je ne savais pas comment conserver la session d’authentification dans le conteneur, donc j’ai utilisé un contournement en injectant le token OAuth comme variable d’environnement
      C’est la seule faille de sécurité ici. Un utilisateur malveillant pourrait extraire le token via une prompt injection
      Si quelqu’un sait comment relier correctement une authentification de session dans un conteneur, je veux bien de l’aide
    • Merci, j’ai appris quelque chose. Du coup, la controverse autour d’OpenClaw venait sans doute du fait qu’il faisait les appels sans SDK
      Si on suit cette documentation, on dirait qu’on peut tout à fait créer des applications de type agent avec un compte d’abonnement
  • Les non-techniciens ont tendance à surestimer les modèles en ne regardant que la baisse du taux d’hallucination
    Mais le vrai danger, ce sont les attaques par prompts malveillants
    Comme aux débuts de la carte de crédit, les dégâts ne sont simplement pas encore visibles
    Il faudra probablement plusieurs cas concrets avant qu’une vraie prise de conscience n’arrive

  • J’espérais que quelqu’un finirait par créer une version plus sûre comme celle-ci
    OpenClaw est utile, mais il fait aussi peur
    Du coup, mon Mac mini est éteint pour l’instant

  • C’est intéressant qu’ils aient utilisé Apple Container au lieu de Docker
    C’est probablement pour économiser les ressources sur un Mac Mini
    En revanche, je me demande si ça ne limite pas les outils Linux standard

    • Apple Container est en pratique une microVM, donc l’isolation est bien plus forte qu’avec un conteneur classique
    • (autres commentaires omis)
    • Une recherche directe sur un moteur de recherche devrait donner la réponse
  • J’aime bien l’idée d’une petite version d’OpenClaw
    Le code semble faire environ 2 500 lignes, et l’architecture Apple Container est intéressante

  • Dans le Quick Start, il est écrit git clone https://github.com/anthropics/nanoclaw.git, mais
    ce dépôt n’existe pas. Je me demande si c’est un projet officiel d’Anthropic
    On peut aussi se demander si le README n’a pas été halluciné

    • En réalité, Claude a bien halluciné ce dépôt
      Lien vers le commit associé
    • C’est corrigé maintenant. C’est un projet expérimental bricolé seul pendant le week-end
      J’y ai branché Claude Code sur un vault Obsidian, avec la possibilité de planifier des tâches cron via WhatsApp
      C’est beaucoup plus simple qu’OpenClaw, et suffisamment limité pour que je puisse vraiment le comprendre, ce qui me rassure
      J’aimerais surtout que d’autres s’en servent comme référence
    • Là, ça semble correctement corrigé
  • Quand je vois des apps vibe codées en ce moment, je finis par faire quelque chose de similaire moi-même avec Claude Code
    C’est plus efficace de construire exactement ce dont j’ai besoin que d’utiliser le projet de quelqu’un d’autre

    • Oui. Le coût d’écriture et de maintenance du code est désormais presque proche de zéro,
      donc la valeur des bibliothèques externes diminue
      Ça supprime aussi les risques d’attaques sur la supply chain ou de changement de licence
      On entre dans une époque où le code devient à la fois documentation et configuration
      C’est pour ça que je préfère ce type de version légère et sur mesure à OpenClaw
      On peut la forker pour s’en servir comme point de départ, ou la donner à Claude comme référence pour générer immédiatement sa propre version