OpenClaw a popularisé le concept d’assistant AI avec opinions et sandboxing. Mais son code source n’est pas entièrement open. Entrez Nanoclaw, un fork communautaire qui reprend les concepts en les rendant plus accessibles et modifiables. Valeur ajoutée ? Liberté totale.
Nanoclaw vs OpenClaw : tableau comparatif
| Feature | OpenClaw (officiel) | Nanoclaw (open source) |
|---|---|---|
| Licence | Propriétaire (SaaS) | MIT / Apache 2.0 |
| Code source | Partiellement fermé | 100% open sur GitHub |
| Personnalisation | limitée (config JSON) | Illimitée (modifiez le code) |
| Plugins | système interne | npm packages + hooks |
| Sandbox | Docker intégré | Docker + LXC support |
| Support | commercial | communautaire |
| Déploiement | Gateway managé | Auto-hébergé total |
En résumé : Nanoclaw est pour ceux qui veulent contrôle total, transparence, et la possibilité de forker et adapter.
Installation de Nanoclaw
Nanoclaw se déploie comme une application Node.js classique.
Prérequis
- Node.js 22+
- Docker (pour le sandbox)
- Git
Étapes
# 1. Cloner le repogit clone https://github.com/nanoc/nanoclaw.gitcd nanoclaw
# 2. Installer les dépendancespnpm install # ou npm install
# 3. Builderpnpm build
# 4. Configurer (copier le config exemple)cp .env.example .env# Éditer .env avec ta clé API OpenRouter
# 5. Démarrer le gatewaypnpm gateway:startLe gateway écoute par défaut sur ws://localhost:18789.
Configuration de base
nanoclaw.json (à la racine) ressemble à celui d’OpenClaw mais avec des options supplémentaires :
{ "gateway": { "port": 18789, "auth": { "mode": "token", "token": "UN_TOKEN" } }, "agents": { "defaults": { "model": "openrouter/stepfun/step-3.5-flash:free", "sandbox": { "mode": "non-main", "docker": { "image": "nanoclaw-sandbox:latest" } } } }, "plugins": { "enabled": ["logger", "metrics", "custom-hooks"] }}Créer un plugin personnalisé
Nanoclaw permet d’écrire des plugins en TypeScript. Exemple simple : un plugin qui log toutes les requêtes.
import { Hook } from 'nanoclaw'
export default { name: 'logger', hooks: { 'agent:before': async (ctx) => { console.log(`[LOG] Agent ${ctx.agentId} reçoit: ${ctx.input.slice(0,50)}...`) }, 'agent:after': async (ctx) => { console.log(`[LOG] Agent ${ctx.agentId} a répondu en ${ctx.duration}ms`) } }}Active-le dans nanoclaw.json :
{ "plugins": { "enabled": ["logger"] }}Pourquoi choisir Nanoclaw ?
- Transparence : tu audit le code, tu sais exactement ce qui se passe
- Souveraineté : pas de dépendance à un service SaaS
- Extensibilité : forks possibles, ajout de features maison
- Coût : tu ne paies que l’infrastructure (pas de licence)
Inconvénients :
- Maintenance manuelle (mises à jour à tracker)
- Support communautaire (pas de SLA)
- Configuration plus technique
Cas d’usage typique
- Entreprises voulant héberger leur assistant en interne sans dépendance externe
- Chercheurs qui besoin de modifier le comportement du modèle
- Développeurs voulant intégrer OpenClaw-like dans leur propre produit
- Privacy-first : données ne quittent pas ton infra
Conclusion
Nanoclaw est une excellente alternative open source à OpenClaw. Si tu es à l’aise avec Node/Docker et que tu veux garder le contrôle total, c’est le choix évident. La communauté est active, les plugins apparaissent régulièrement. Teste-le, fork-le, adapte-le à tes besoins.
Tags : openclaw, ia, code
ReadingTime : 6 min