145 lines
6.3 KiB
Markdown
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
|