Files
wiki/Catalogue-Self-Hosted/apps/app-nanoclaw.md
T
2026-06-09 18:40:21 +02:00

145 lines
6.3 KiB
Markdown

---
title: NanoClaw
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, artificial-intelligence, assistant, agent, go, whatsapp, telegram, auto-hebergement]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=Artificial+Intelligence, https://github.com/nanocoai/nanoclaw]
---
# 🦀 NanoClaw
> **Assistant IA personnel léger et sécurisé** — alternative minimaliste aux assistants IA généralistes, conçu pour être *lisible*, *customisable* et *isolé dans des containers* pour la sécurité. Cœur en Go, ~500 lignes de code, déployable en quelques minutes.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [nanoclaw.dev](https://nanoclaw.dev/) |
| **GitHub** | [nanocoai/nanoclaw](https://github.com/nanocoai/nanoclaw) |
| **License** | MIT |
| **Langage** | Go, TypeScript |
| **Étoiles** | 12 920 ⭐ |
| **Dernière MAJ** | 2026-05-18 |
| **Catégorie** | [[cat-artificial-intelligence]] |
## Description
**NanoClaw** est né d'un constat : les assistants IA personnels modernes (type [[app-openclaw]]) sont devenus **monstrueusement complexes** — des centaines de milliers de lignes de code, des dizaines de dépendances, et une surface d'attaque importante. Pour un usage personnel (un seul utilisateur, sa machine, ses données), c'est disproportionné.
Le parti-pris de NanoClaw est radical : **un seul binaire Go, ~500 lignes de code**, focalisé sur l'essentiel — exécuter des **agents IA** (Claude, modèles locaux Ollama) **dans des containers Linux isolés** pour que le LLM puisse utiliser `bash`, `read`, `write` sans risquer de compromettre la machine hôte. C'est l'**isolation au niveau OS** plutôt qu'au niveau application (allowlists, pairing codes).
L'**expérience utilisateur** est originale : on converse avec l'agent via les **canaux de messagerie qu'on utilise déjà** — WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Gmail, etc. — via un simple **mot déclencheur** (par défaut `@Andy`). L'agent peut aussi planifier des **tâches récurrentes** (ex : "envoie-moi chaque matin à 9h un résumé de mes emails"), gérer une **mémoire long-terme**, et faire du **RAG** sur des dossiers montés.
**Philosophie** du projet : *"small enough to understand"* — vous êtes *encouragé* à forker le repo et à modifier le code pour l'adapter à vos besoins, plutôt qu'à configurer des centaines d'options. C'est l'anti-thèse du framework surdimensionné.
## Installation
### Option 1 : Docker Compose (recommandé)
```yaml
# docker-compose.yml
version: '3.8'
services:
nanoclaw:
build: .
container_name: nanoclaw
restart: unless-stopped
env_file:
- .env
volumes:
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock # nécessaire pour spawner les containers d'agent
networks:
- nanoclaw-net
# Backend d'inférence local optionnel
ollama:
image: ollama/ollama:latest
container_name: nanoclaw-ollama
restart: unless-stopped
volumes:
- ollama_data:/root/.ollama
networks:
- nanoclaw-net
networks:
nanoclaw-net:
driver: bridge
volumes:
ollama_data:
```
### Option 2 : Installation manuelle (script officiel)
```bash
# Le script officiel fait tout : install Node, pnpm, Docker, build de l'agent container
git clone https://github.com/nanocoai/nanoclaw.git
cd nanoclaw
bash nanoclaw.sh # setup guidé pas-à-pas
```
## Configuration
La configuration se fait principalement par **fichiers Markdown** dans le dossier `groups/` :
- `groups/<nom>/CLAUDE.md` : prompt système et personnalité de l'agent
- `groups/<nom>/memory.md` : mémoire long-terme persistante
- `.env` : credentials API (Anthropic, OpenAI, tokens WhatsApp/Telegram)
Variables d'environnement clés :
- `ANTHROPIC_API_KEY` : clé API pour Claude (provider par défaut)
- `OLLAMA_HOST` : URL d'Ollama pour les modèles locaux (`http://ollama:11434`)
- `TELEGRAM_BOT_TOKEN` : token du bot Telegram
- `WHATSAPP_ENABLED=true` : active l'adaptateur WhatsApp via Baileys
- `TRIGGER_WORD` : mot déclencheur (par défaut `@Andy`)
Chaque **agent** (groupe) a son propre container avec ses propres **montages** — par exemple un agent peut avoir accès à `~/Documents` mais pas à `~/.ssh`.
## Alternatives
### Open Source
- [[app-openclaw]] — alternative plus complète (multi-canaux, voix, canvas) mais beaucoup plus complexe
- [[app-open-webui]] — interface web, pas un agent autonome conversationnel
- **Open Interpreter** — agent local en Python, sans interface messagerie
- **Aider** — agent IA focalisé développement, en terminal
- **Letta** (ex MemGPT) — agents avec mémoire long-terme, plus "framework"
### Propriétaires (ce que cette app remplace)
- **OpenAI Operator** — agent IA personnel dans le cloud
- **Claude Computer Use** (Anthropic) — équivalent, mais cloud
- **Replit Agent** — agent dev, cloud
- **GitHub Copilot Workspace** — environnement agentique cloud
## Sécurité
**C'est le point fort principal de NanoClaw** :
- **Isolation OS** : les agents tournent dans des containers Docker, pas de permission "logique" (allowlists) — c'est une vraie isolation noyau
- **Surface minimale** : ~500 lignes de Go = auditable par un humain en une heure
- **Pas de clés en clair** : les credentials sortent du container via un *vault* d'agents (ex : OneCLI), injectés à la demande
- **Montages explicites** : chaque agent ne voit QUE les dossiers explicitement montés (zéro accès par défaut à `~/.ssh`, `/etc`, etc.)
- **`bash` est safe** : les commandes s'exécutent *dans* le container, pas sur l'hôte
⚠️ **Attention** : le montage du socket Docker (`/var/run/docker.sock`) donne un accès root effectif à l'agent sur l'hôte. À utiliser avec discernement, ou préférer Docker Sandboxes / Apple Container pour une isolation plus forte.
## Ressources
- [Site officiel](https://nanoclaw.dev/)
- [Documentation](https://docs.nanoclaw.dev/)
- [GitHub](https://github.com/nanocoai/nanoclaw)
- [Reddit — lancement](https://www.reddit.com/r/selfhosted/comments/1r3p7s7/i_built_nanoclaw_a_lightweight_selfhosted_ai/)
## Pages Liées
- [[cat-artificial-intelligence]] — Catégorie parente
- [[recettes-docker-compose]] — Templates Docker Compose
- [[app-openclaw]] — Alternative plus complète
- **Ollama** — Backend d'inférence local pour NanoClaw _(fiche à créer)_
- [[app-open-webui]] — UI web pour LLMs