Retour au blog

Installer OpenClaw : anatomie d'une install party

27 février 2026Context Collective
Article préparatoire au CC Lab #4 — 4 mars 2026

Introduction

Le 4 mars, au CC Lab #4, on installe OpenClaw ensemble. Pas une démo où quelqu'un montre son écran pendant que tu acquiesces poliment. Une vraie install party : tu repars avec un agent IA qui tourne sur ta machine.
Cet article documente ce qu'on va faire, ce qui va coincer, et pourquoi ça coince. C'est le retour d'une installation réelle faite en amont, avec les erreurs incluses.

OpenClaw en 60 secondes

OpenClaw, c'est un agent IA autonome. Pas un chatbot. Un truc qui tourne en local, connecté à Telegram (ou WhatsApp, Discord, Signal...), et qui peut agir : lire des fichiers, exécuter du code, envoyer des messages, chercher sur le web.
Le projet a explosé fin janvier 2026. Projet perso d'un développeur autrichien, Peter Steinberger, il est passé de script WhatsApp du dimanche à 215 000 étoiles GitHub en trois mois. C'est le repo open-source avec la croissance la plus rapide de l'histoire de GitHub.
Steinberger a depuis rejoint OpenAI. Le projet est passé en fondation communautaire. Le rythme de développement n'a pas ralenti : 49 releases depuis mi-février, 120+ contributeurs actifs.

L'architecture en un schéma

   Telegram / WhatsApp / Discord / Signal
                    │
                    ▼
          ┌─────────────────┐
          │     Gateway      │
          │  ws://127.0.0.1  │
          │     :18789       │
          └────────┬─────────┘
                   │
        ┌──────────┼──────────┐
        ▼          ▼          ▼
    SOUL.md    MEMORY.md   Skills
  (identité)  (mémoire)  (capacités)
La Gateway est un process Node.js unique qui tourne sur ta machine. Elle reçoit les messages de tes messageries, les envoie à un LLM (Claude, GPT, Gemini, ou un modèle local via Ollama), exécute les actions demandées, et renvoie la réponse.
Les trois fichiers clés :
SOUL.md définit la personnalité de l'agent. C'est du texte brut injecté dans le prompt système. Même modèle, mêmes poids, même API : seul ce texte change le comportement.
MEMORY.md est la mémoire long-terme. L'agent ne "se souvient" pas. Il lit des fiches. Les poids du réseau n'ont pas bougé d'un milligramme entre deux conversations.
Skills sont des plugins qui donnent des capacités à l'agent : recherche web, exécution de code, accès au filesystem, etc.

Ce qu'on va installer

L'installation passe par Docker. Un script officiel (docker-setup.sh) lance un wizard interactif qui configure tout : le provider IA, la messagerie, les clés API.
Voici le déroulé complet, avec les pièges qu'on a rencontrés lors de la préparation.

Étape 1 : Les prérequis

Avant de venir au CC Lab, il faut préparer trois choses :
Docker Desktop installé et lancé. Pas juste installé. Lancé. Le daemon Docker doit tourner sinon rien ne marche.
Un bot Telegram créé. Ouvrir Telegram, chercher @BotFather, envoyer /newbot, suivre les instructions, copier le token. C'est fait en 2 minutes.
Une clé API Anthropic. Format sk-ant-api03-.... C'est ce qui permet à l'agent de parler à Claude.
Pourquoi une clé API et pas l'authentification OAuth ? On a testé les deux. Le setup-token OAuth se tronque au moment du paste dans le terminal. Le wizard ne signale pas l'erreur, l'agent démarre, mais il ne peut pas appeler le modèle. Avec une clé API classique, c'est propre du premier coup.

Étape 2 : Cloner et lancer

git clone https://github.com/openclaw/openclaw
cd openclaw
./docker-setup.sh
Le script télécharge les images Docker, puis lance un wizard interactif. Les réponses attendues :
QuestionRéponse
Trust model warningYes
ModeQuickStart
ProviderAnthropic
Auth methodAPI Key
API Keysk-ant-api03-...
ModelKeep current (claude-sonnet-4-6)
ChannelTelegram
Telegram tokenLe token BotFather
Le wizard propose ensuite d'activer des hooks. On active session-memory (sauvegarde le contexte entre les sessions) et on skip le reste.

Étape 3 : Le premier message

Ouvrir Telegram, envoyer un message au bot : "Salut, tu es qui ?"
Le bot répond avec un code de pairing. C'est normal : il vérifie que c'est bien toi qui parles.
Dans le terminal :
docker compose run --rm openclaw-cli \
  pairing approve telegram XDG7QBPC
(Remplacer le code par celui affiché dans Telegram.)
Renvoyer le message. Si le bot répond, Telegram est connecté.

Les pièges qu'on a rencontrés

Piège 1 : L'erreur npm EACCES

Au démarrage, le log affiche :
npm error EACCES: permission denied,
  mkdir '/usr/local/lib/node_modules/clawhub'
Ça fait peur. Mais ce n'est pas bloquant. L'utilisateur node dans le container Docker n'a pas les droits pour installer la marketplace ClawHub en global. L'agent tourne sans.

Piège 2 : Le dashboard web demande un pairing séparé

Le Control UI (le dashboard web de l'agent, sur http://127.0.0.1:18789/) est un device séparé de Telegram. Approuver Telegram ne donne pas accès au dashboard. Il faut approuver le device manuellement.
Et c'est là que ça se complique.

Piège 3 : Le token mismatch

Le wizard affiche un token au démarrage. La gateway en utilise un autre au runtime. Lequel est le bon ? Celui dans le fichier openclaw.json.
cat openclaw.json | grep token
Toujours lire depuis le fichier, jamais faire confiance à ce qui s'affiche dans le terminal.

Piège 4 : run --rm vs exec

Pour exécuter des commandes dans le container, on a deux options :
# ❌ Ne marche PAS pour les commandes réseau
docker compose run --rm openclaw-cli devices list

# ✅ Fonctionne
docker compose exec openclaw-gateway \
  node dist/index.js devices list --token "VOTRE_TOKEN"
Pourquoi ? run --rm crée un container éphémère qui ne voit pas la gateway sur 127.0.0.1. exec s'exécute dans le container existant où la gateway tourne.
C'est le genre de détail qui peut bloquer 15 minutes si on ne le sait pas.

Approuver le dashboard

Une fois le bon token en main :
# Lister les devices en attente
docker compose exec openclaw-gateway \
  node dist/index.js devices list --token "VOTRE_TOKEN"

# Approuver
docker compose exec openclaw-gateway \
  node dist/index.js devices approve VOTRE_REQUEST_ID \
  --token "VOTRE_TOKEN"
Puis recharger le dashboard avec le token dans l'URL :
http://127.0.0.1:18789/#token=VOTRE_TOKEN

Checkpoint

À ce stade, on a :
  • Une gateway qui tourne (port 18789)
  • Telegram connecté (le bot répond)
  • Le dashboard web accessible
Tout ça en local, dans Docker, isolé du reste de la machine.
Si quelque chose bloque, les deux commandes de survie :
docker compose restart openclaw-gateway
docker compose logs --tail 20 openclaw-gateway

Pourquoi Docker et pas une install native ?

Question légitime. Réponse en trois mots : isolation, reproductibilité, sécurité.
OpenClaw est un agent qui peut exécuter du code sur ta machine. C'est sa force. C'est aussi son risque. En février 2026, six CVE critiques ont été publiées en trois semaines. Un CVE coté 8.8/10 permettait une exécution de code à distance en un clic. 341 skills malveillants ont été trouvés sur la marketplace ClawHub. 42 000 instances ont été repérées exposées sur Internet sans authentification.
Docker ne résout pas tout. Mais il met une première barrière entre l'agent et ta machine.

Ce qu'on fera après l'install

Une fois que tout le monde aura un agent qui tourne, on explore trois choses :
Modifier le SOUL.md. Changer la personnalité de l'agent, renvoyer la même question sur Telegram, constater que la réponse change. Même modèle, mêmes poids, seul le texte injecté a changé. C'est concret, c'est immédiat, c'est la meilleure démonstration de ce qu'est vraiment un prompt système.
Installer des outils CLI. Dans le container Docker, on peut ajouter Claude Code, Gemini CLI, ou Codex. L'agent devient un orchestrateur : un message Telegram peut déclencher une génération de code, une recherche, ou une pull request.
Partager ce qui marche et ce qui coince. Les patterns utiles, les workflows asynchrones, les retours d'expérience. C'est un CC Lab, pas un cours magistral.

Les commandes essentielles (aide-mémoire)

# Pairing Telegram
docker compose run --rm openclaw-cli \
  pairing approve telegram <CODE>

# Lister les devices (dans la gateway)
docker compose exec openclaw-gateway \
  node dist/index.js devices list --token "<TOKEN>"

# Approuver un device
docker compose exec openclaw-gateway \
  node dist/index.js devices approve <ID> --token "<TOKEN>"

# Redémarrer
docker compose restart openclaw-gateway

# Logs
docker compose logs --tail 20 openclaw-gateway

Infos pratiques

Quand : 4 mars 2026
: La French Tech Brest Bretagne Ouest, 25 rue de Pontaniou, Brest
Niveau : Si tu sais ce qu'est un agent IA, t'es bon
À apporter : ton PC avec Docker Desktop installé et lancé
Si tu veux prendre de l'avance : crée ton bot Telegram et récupère ta clé API Anthropic. Mais ce n'est pas obligatoire, on fera ensemble.
Inscription : CC Lab #4 sur Luma
Cet article fait partie de la préparation du CC Lab #4, organisé par le Context Collective à Brest.