Skip to main content
Thomas Germain Thomas Germain
Aperçu

OpenClaw sur Mac Mini : Le Guide Complet d'Installation et de Sécurisation

12 février 2026
16 min de lecture

Je viens de passer 2h30 à installer OpenClaw sur un Mac Mini. Pas un simulateur, pas une VM : le vrai macOS, sur du vrai matériel Apple. Ethonnêtement ? C’était plus simple que je l’imaginais, mais j’ai quand même fait toutes les erreurs possibles. Alors voici le guide que j’aurais aimé avoir avant de commencer.

Pourquoi un Mac Mini pour OpenClaw ?

Avant de plonger : pourquoi diable installer OpenClaw sur macOS plutôt qu’un VPS Linux classique ?

Les avantages réels :

  • Stability : macOS ne s’écrase pas tous les 4 matins comme certaines distros cheap
  • Écosystème Apple : si tu as déjà iPhone/iPad, c’est un point d’entrée cohérent
  • Performance : un Mac Mini M1/M2 avec 16GB RAM suffit largement pour tourner plusieurs agents
  • Isolation : pas de risk de conflit avec d’autres services sur ta machine de dev principale

Les inconvénients :

  • Prix : un Mac Mini d’occasion M1 coûte 300-400€, c’est plus cher qu’un VPS
  • Flexibilité limitée : pas de Docker “officiel” sur macOS (mais OrbStack ou Colima fonctionnent)
  • Docs moins exhaustives : la plupart des tutos OpenClaw sont faits pour Linux

Mon verdict : Si tu veux un hardware dédié, propre, avec une stack macOS, le Mac Mini est un excellent choix. Si tu veux juste tester, commence avec un VPS à 5€/mois. Mais si t’as déjà le Mac Mini sous la main, fonce.

La Préparation : 30 minutes qui sauvent des heures

1. Gestionnaire de mots de passe obligatoire

Je l’ai écrit dans le premier article sur OpenClaw, mais je le répète : ne STOCKE JAMAIS tes credentials dans Notes, Safari, ou un fichier texte. C’est la erreur n°1 qui fait gagner 3 jours de stress aux hackers.

Mes recommandations :

  • Bitwarden (gratuit, open-source) → install le desktop app
  • 1Password (payant mais excellent UX) → si tu es familier

Crée un vault spécifique “OpenClaw” dedans. On va y mettre :

  • Toutes les clés API
  • Tokens Telegram/Discord
  • Gateway token
  • Mot de passe admin pour l’interface web

WARNING : Pas de copier-coller dans des fichiers temporaires. Copie directement de Bitwarden vers ton .env.

2. Créer un Apple ID dédié (pas ton perso)

Pourquoi ? Parce que :

  • Tu vas installer des apps via l’App Store (OrbStack, etc.)
  • Tu veux pas lier ta vie privée à une machine qui héberge des bots
  • En cas de souci, tu peux jeter l’Apple ID sans conséquence

La procédure :

  1. Va sur appleid.apple.com
  2. Crée un nouveau compte avec une adresse Gmail dédiée (genre openclaw.macmini@gmail.com)
  3. Active la 2FA immédiatement (Settings → Password & Security)
  4. Ajoute un numéro de téléphone (ton numéro principal, t’auras besoin pour la recovery)

Le piège : Apple vérifie l’adresse email. Si tu mets une adresse qui existe déjà (même en recovery), ça bloque. Utilise une nouvelle adresse Gmail créée pour l’occasion.

3. Créer un compte Google dédié (pour OAuth)

OpenClaw utilise OAuth pour s’intégrer à Telegram, Discord, etc. Tu ne veux PAS utiliser ton compte Google personnel.

Procédure :

  1. Crée openclaw.api@gmail.com (ou similaire)
  2. Va sur console.cloud.google.com
  3. Crée un projet “OpenClaw Mac Mini”
  4. Active les APIs nécessaires (on les verra après)
  5. Crée des credentials OAuth 2.0 Client ID (type : Desktop app)

Important : Ce compte Google ne sert que pour les APIs. Ne l’utilise pas pour Gmail, Drive, etc.

Récupérer les Clés API (1h d’attente potentielle)

C’est la partie la plus longue : attends souvent des heures pour certaines validations. Fais-les dans cet ordre :

1. Anthropic (Claude Opus)

Pourquoi : OpenClaw peut utiliser Claude comme LLM principal. C’est pas gratuit, mais c’est excellent.

Étapes :

  • Va sur console.anthropic.com
  • Crée un compte (avec ton Google dédié)
  • Settings → API Keys → Create Key
  • Copie la clé (commence par sk-ant-...)

Coût : ~0.03/1Mtokensenentreˊe,0.15/1M tokens en entrée, 0.15/1M en sortie. Pas donné, mais la qualité justifie pour leprod.

2. OpenAI

Si tu veux utiliser GPT-4o ou o1-preview.

Étapes :

  • platform.openai.com/api-keys
  • Crée une nouvelle secret key
  • Copie-la bien

Coût : ~0.01-0.05$/1K tokens selon le modèle.

3. Brave Search API

OpenClaw peut faire des recherches web via Brave.

Étapes :

  • Va sur api.search.brave.com/register
  • Crée un compte
  • Crée une “Subscription” (y a un free tier : 2K requêtes/mois)
  • Récupère l’API key (commence par BSA...)

Note : Si tu veux pas payer, OpenClaw peut utiliser DuckDuckGo sans clé API, mais c’est moins fiable.

4. Telegram Bot Token

OpenClaw interagit avec Telegram via un bot.

Étapes :

  1. Ouvre Telegram, cherche @BotFather
  2. /newbot
  3. Choisis un nom : OpenClaw Bot
  4. Choisis un username : openclaw_yourname_bot (doit finir par “bot”)
  5. BotFather te donne un token (genre 1234567890:ABCdefGHI...)
  6. Copie-le dans Bitwarden

Test rapide :

Terminal window
curl "https://api.telegram.org/bot<YOUR_TOKEN>/getMe"

Doit retourner {"ok":true,"result":{...}}

5. Discord Bot Token

Pour Discord, c’est un peu plus long.

Étapes :

  1. Va sur discord.com/developers/applications
  2. “New Application” → “OpenClaw”
  3. Onglet “Bot” → “Add Bot” → “Yes, do it!”
  4. Sous “Privileged Gateway Intents”, active :
    • PRESENCE INTENT
    • SERVER MEMBERS INTENT
    • MESSAGE CONTENT INTENT
  5. “Reset Token” → copie-le
  6. IMPORTANT : Génère une “OAuth2 URL” pour inviter le bot sur ton serveur :
    • URL Generator → scopes : bot
    • Bot Permissions : Send Messages, Read Message History, Embed Links
    • Copie l’URL générée, ouvre-la dans un navigateur, invite sur ton serveur

Le piège : Si tu n’actives pas les 3 intents, le bot ne verra pas les messages. Vérifie dans Discord Developer Portal.

6. Gateway Token

Le “gateway” c’est le composant qui connecte tous les services. OpenClaw génère un token au premier démarrage, mais tu peux le définir toi-même.

Pour l’instant, on le laisse empty. On le récupérera après l’onboarding.

Récapitulatif des credentials dans Bitwarden

Crée une entrée “OpenClaw API Keys” avec ces champs :

  • anthropic_key: sk-ant-…
  • openai_key: sk-…
  • brave_key: BSA…
  • telegram_bot_token: 12345:…
  • discord_bot_token: TOKEN_DISCORD…
  • gateway_token: (on le mettra plus tard)

Installation de macOS sur le Mac Mini (30 min)

Wipe complet

Si ton Mac Mini a déjà des données, efface tout :

  1. Redémarre
  2. Au boot, appuie sur Cmd+R (Recovery Mode)
  3. Utilitaire → “Disk Utility”
  4. Sélectionne le disque principal (généralement “Apple SSD AP0256J”)
  5. “Erase” :
    • Format : APFS (Encrypted si tu veux, mais pas obligatoire)
    • Scheme : GUID Partition Map
  6. Ferme Disk Utility

Setup Assistant (le plus important)

Quand tu démarres frais, macOS te guide. Suis exactement cette procédure :

  1. Langue : Français (ou ta langue)
  2. Pays : France (ou selon ta région)
  3. Accessibilité : None
  4. Données de diagnostic : Je recommande “Envoyer à Apple” (pas sensible)
  5. Siri : Configure-le si tu veux (pas obligatoire)
  6. Créer un compte d’ordinateur :
    • Nom complet : “OpenClaw” (pas ton vrai nom)
    • Nom de compte (username) : openclaw (c’est important, on va l’utiliser)
    • Mot de passe : un MOT DE PASSE FORT (Bitwarden → generate → 32 chars)
    • Hint : laisse vide ou “Bitwarden”
  7. Apple ID : connecte-toi avec l’Apple ID dédié créé plus tôt
  8. Terms : Agree
  9. Express Settings : Désactive TOUT :
    • “Location Services” → No
    • “Siri” → No si pas besoin
    • Time Zone : choisi ta timezone
    • “Analytics” → No
    • “Screen Time” → No
    • “Appearance” : Light ou Dark selon ta préf

Le piège : Si tu laisses “Express Settings” sur Yes, Apple active des services de tracking et de Cloud qui peuvent interférer avec ton setup. Désactive tout manuellement.

Fin du Setup

Une fois sur le bureau :

  • Connecte-toi en SSH si tu veux (Settings → Sharing → Remote Login)
  • Enlève l’autologin si activé (Settings → Users & Groups → Login Options)

Installer les Dépendances (20 min)

Ouvre le Terminal (Cmd+Space → Terminal).

1. Homebrew (le package manager macOS)

Si tu l’as pas déjà :

Terminal window
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Suis les instructions. À la fin, ajoute Brew dans ton PATH :

Terminal window
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Vérifie :

Terminal window
brew --version

2. Node.js (version LTS)

Terminal window
brew install node@20
# ou node@22 pour la dernière LTS

Vérifie :

Terminal window
node --version # Doit afficher v20.x ou v22.x
npm --version

Le piège : macOS vient avec un vieux Node. Vérifie que c’est bien celui de Brew :

Terminal window
which node
# Doit retourner /opt/homebrew/bin/node (ou /usr/local/bin/node selon arch)

3. Git

Terminal window
brew install git
git --version

Configure ton identité (même si tu es le seul user) :

Terminal window
git config --global user.name "OpenClaw"
git config --global user.email "openclaw@localhost"

4. (Optionnel) OrbStack ou Colima pour Docker

Si tu veux utiliser des conteneurs Docker (pour isoler les agents) :

OrbStack (payant mais excellent) :

  • Télécharge sur orbstack.dev
  • Installe, ouvre, crée un compte free tier

Colima (gratuit, moins performant) :

Terminal window
brew install colima
colima start --cpu 4 --memory 8 --disk 60

Vérifie Docker :

Terminal window
docker --version
docker ps # Doit marcher sans erreur

5. curl, wget, jq (utilitaires)

Terminal window
brew install curl wget jq

Cloner le repo OpenClaw et configuration du .env

1. Clone le repo officiel

Terminal window
cd ~
git clone https://github.com/openclaw/openclaw.git
cd openclaw

Si tu veux une branche stable :

Terminal window
git checkout stable

2. Installer le CLI global

Terminal window
npm install -g .

Vérifie :

Terminal window
openclaw --version

3. Créer le fichier .env

Dans le dossier openclaw/ :

Terminal window
cp .env.example .env

Édite-le :

Terminal window
nano .env
# ou
vim .env

Contenu typique (remplace par tes vraies valeurs de Bitwarden) :

# LLM Providers
ANTHROPIC_API_KEY=sk-ant-your-key-here
OPENAI_API_KEY=sk-your-key-here
# Search
BRAVE_SEARCH_API_KEY=BSA-your-key-here
# Telegram
TELEGRAM_BOT_TOKEN=1234567890:ABCdefGHI...
# Discord
DISCORD_BOT_TOKEN=your-discord-token...
DISCORD_CLIENT_ID=123456789012345678 # Le numéro dans l'URL Discord Dev Portal
# Google OAuth (pour Telegram OAuth flow)
GOOGLE_CLIENT_ID=your-google-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
# Gateway (initialement vide, on le récupère après l'onboarding)
GATEWAY_TOKEN=
# Node URL (si gateway distant)
# GATEWAY_URL=https://your-gateway.example.com

WARNING : Ne commets JAMAIS .env. Vérifie qu’il est bien dans .gitignore :

Terminal window
cat .gitignore | grep .env
# Doit afficher ".env"

4. Initialiser le workspace OpenClaw

Terminal window
cd ~/openclaw
openclaw init

Ça crée la structure :

~/openclaw/
├── .env
├── agents/
├── config.json
├── skills/
└── ...

Lancer l’Onboarding Wizard (15 min)

OpenClaw a un wizard interactif qui configure Telegram, Discord, et le gateway.

Terminal window
openclaw onboard

Suis les étapes :

Étape 1 : Gateway Token

Le wizard va générer un token pour le gateway local.

  • Il te propose de créer un token aléatoire → Accepte
  • Copie ce token dans ton .env sous GATEWAY_TOKEN=...
  • Il lance le gateway en arrière-plan

Test :

Terminal window
curl -H "Authorization: Bearer <TON_TOKEN>" http://localhost:8080/health
# Doit retourner {"status":"ok"}

Étape 2 : Telegram Configuration

Le wizard va demander :

  • Ton bot token → colle celui de BotFather
  • Ton chat ID (optionnel) → si tu veux recevoir des notifications perso

Il va aussi tester la connexion. Si ça marche, tu reçois un message de ton bot dans Telegram.

Le piège : Si le bot ne répond pas :

  • Vérifie que le bot est bien “activated” dans BotFather (/mybots → ton bot → “Bot Settings” → “Group Privacy” → OFF si tu veux qu’il lise les groupes)
  • Vérifie que ton token est correct
  • Vérifie que le gateway tourne (ps aux | grep openclaw)

Étape 3 : Discord Configuration

Le wizard va demander :

  • Discord bot token
  • Discord client ID
  • IDs des serveurs (optionnel)

Colle ce que tu as dans Bitwarden. Le wizard teste en envoyant un message dans un channel test (tu dois avoir invité le bot sur un serveur avant).

Si erreur “Missing Access” : Le bot n’a pas les permissions dans le channel. Vérifie :

  • Le bot est bien invité sur le serveur
  • Le bot a le role “Bot” avec permissions “Send Messages”, “Read Message History”
  • Le channel n’est pas en “slow mode” ou “thread only”

Étape 4 : Fin

Le wizard écrit la config finale dans config.json et agents/.

Vérifie :

Terminal window
cat ~/openclaw/config.json | jq .

Devrait montiver gateway, telegram, discord configurés.

Sécurisation du Mac Mini (20 min)

Maintenant que OpenClaw tourne, sécurisons la machine.

1. Firewall macOS

Terminal window
# Active le firewall
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
# Autorise seulement les apps signées (pas de prompt pour chaque app)
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned on
# Bloque tout inbound non-whitelisté (OpenClaw va ajouter ses ports)
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setblockall on

Vérifie le statut :

Terminal window
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
# Doit dire "ON" ou "1"

2. fail2ban pour SSH brute-force

Installe fail2ban via Homebrew :

Terminal window
brew install fail2ban

Crée une config :

Terminal window
sudo cp /usr/local/etc/fail2ban/fail2ban.conf /usr/local/etc/fail2ban/fail2ban.local
sudo nano /usr/local/etc/fail2ban/jail.local

Contenu minimal :

[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/system.log

Lance fail2ban :

Terminal window
sudo brew services start fail2ban

Vérifie :

Terminal window
sudo fail2ban-client status sshd

3. Désactiver l’autologin

Settings → Users & Groups → Login Options → “Automatic login” → Off

4. Mettre à jour macOS

Settings → General → Software Update → Update Now

Redémarre après la mise à jour.

5. Créer un utilisateur standard pour OpenClaw (optionnel mais recommandé)

Si tu veux isoler complètement :

Terminal window
sudo sysadminctl -addUser openclaw-runner -password <un-password-fort> -admin

Mais en général, le user openclaw créé pendant le Setup suffit.

Accès à OpenClaw : Telegram, Discord, Control UI

1. Telegram

Ton bot devrait déjà t’envoyer des notifications. Pour interagir :

  • Ouvre Telegram, cherche ton bot (le username que tu as choisi)
  • Tape /help pour voir les commandes
  • Utilise /agent status pour voir les agents actifs

2. Discord

Le bot devrait être présent sur ton serveur. Dans le channel où tu l’as invité :

  • Tape !help (ou la commande prefix que tu as configuré)
  • !agents liste les agents
  • !skill list montre les skills disponibles

3. Control UI (Web Interface)

OpenClaw vient avec une petite UI web pour gérer les agents.

Terminal window
# Ouvre dans ton navigateur
http://localhost:8080

Ou si tu as configuré HTTPS :

Terminal window
http://localhost:8443

Login : Le wizard a créé un admin user (par défaut admin / mot de passe dans .env si tu l’as défini). Sinon, crée un user :

Terminal window
openclaw user add --username admin --password <ton-mdp-fort>

Tests et premiers Skills

1. Tester un agent simple

OpenClaw crée un agent par défaut “default”. Teste :

Terminal window
openclaw agent ask --message "Quelle est la capitale de la France ?" --to default

Doit répondre “Paris” (ou une corection selon le LLM configuré).

2. Installer un skill utile

Les skills sont des capacités additionnelles. Commence par filesystem pour lire/écrire des fichiers :

Terminal window
openclaw skill install filesystem
openclaw skill enable filesystem

Teste :

Terminal window
openclaw agent ask --message "Liste les fichiers dans /tmp" --to default --with-skill filesystem

3. Créer un agent Telegram dédié

Pourquoi : séparer les conversations. Si ton bot principal gère à la fois les agents et les skills, crée un agent telegram :

Terminal window
openclaw agent create --name telegram --model openrouter/stepfun/step-3.5-flash:free
openclaw agent skill add telegram --agent telegram
openclaw agent skill enable telegram --agent telegram

Relance le gateway si besoin :

Terminal window
openclaw gateway restart

Maintenance et Mises àJour

Mettre à jour OpenClaw

Terminal window
cd ~/openclaw
git pull
npm install -g .
openclaw gateway restart

Mettre à jour les dépendances

Terminal window
brew update
brew upgrade

Logs et debugging

Terminal window
# Logs du gateway
tail -f ~/.openclaw/logs/gateway.log
# Logs d'un agent
tail -f ~/.openclaw/agents/default/logs/agent.log
# Status des processes
openclaw status

Backup .env et agents/

Terminal window
tar -czf openclaw-backup-$(date +%Y%m%d).tar.gz ~/.openclaw/

Stocke ça dans un drive chiffré ou un disque externe.

Dépannage : Problèmes Courants

OAuth ne fonctionne pas (Telegram/Discord)

Symptôme : “Invalid token” ou “Bot not found”

Solutions :

  1. Vérifie que le token est exact (pas d’espaces, pas de sauts de ligne)
  2. Pour Discord, vérifie que le bot est invité sur le serveur, pas seulement créé
  3. Active les OAuth Intents dans Discord Dev Portal (les 3 cases)
  4. Pour Telegram, envoie un message au bot via l’app d’abord (/start) pour activer la conversation
  5. Redémarre le gateway : openclaw gateway restart

Port déjà utilisé

Symptôme : “Error: listen EADDRINUSE: address already in use :::8080”

Solution :

Terminal window
# Trouve le process qui utilise le port
lsof -i :8080
# Tue-le
kill -9 <PID>
# Ou change le port dans .env
# GATEWAY_PORT=8081

Clés API refusées

Symptôme : “Invalid API Key” dans les logs

Solutions :

  • Vérifie que la clé est copiée exactement (sans retour à la ligne)
  • Vérifie que le compte a du credit (pour Anthropic/OpenAI)
  • Pour Brave Search, vérifie que t’as activé l’API dans la console (pas juste créé la clé)

L’agent ne répond pas

Diagnostic :

Terminal window
openclaw agent status
# Doit montiver "running" ou "idle"
openclaw agent ask --message "test" --to default
# Si timeout, regarde les logs
tail -f ~/.openclaw/agents/default/logs/agent.log

Problèmes fréquents :

  • .env pas chargé → source ~/.zprofile ou restart terminal
  • Gateway down → openclaw gateway start
  • Token invalide → openclaw gateway token reset

macOS bloque l’execution des scripts

Symptôme : “Permission denied” sur openclaw

Solution :

Terminal window
chmod +x /opt/homebrew/bin/openclaw
# Si installé ailleurs
which openclaw

Batterie qui se vide vite

Si tu laisses le Mac Mini allumé 24/7 et qu’il est sur batterie (Mac Mini ça existe pas, mais au cas où) → active “Power Nap” désactivé dans Settings → Battery.

Sur Mac Mini fixe, pas de souci.

Temps Total : 2h30 à 3h

Honêtement, en suivant ce guide, tu devrais être opérationnel dans l’après-midi. Le plus long c’est d’attendre les validations d’API (surtout Google OAuth parfois).

Points critiques :

  1. Apple ID dédié (pas le perso)
  2. Clés API dans Bitwarden, pas dans Notes
  3. 2FA activé partout
  4. .env correct et pas commité
  5. Gateway token copié après l’onboarding

Si tu bloques sur un point, j’ai fait toutes les erreurs. Reviens lire cette section. Et si vraiment tu galères, ouvre un issue sur GitHub openclaw/openclaw avec le log exact (pas de capture d’écran de terminal, le texte).


TL;DR : Crée un Apple ID dédié → Récupère toutes les clés API → Wipe + Setup Assistant → Dépendances Homebrew → Clone → .envopenclaw onboard → Sécurise → Test. 2h30 chrono.

Bon courage, et bienvenue dans la famille OpenClaw sur Mac.