doctor et une sonde /health régulière, vous rendez les incidents auditables au lieu de mystérieux.
Ce guide suppose qu’OpenClaw est déjà installé sur le Mac distant ; pour l’installation et le vocabulaire (passerelle, préchargement des modèles), voir le centre d’aide · Guide OpenClaw. Nous partons d’un flux classique : VS Code, Cursor ou équivalent en Remote-SSH, l’IDE local pilotant la chaîne d’outils sur le serveur. Les articles automatisation, LLM et OpenClaw du blog posent le cadre passerelle / préfetch ; ici nous complétons par les frontières de privilèges et la visibilité opérationnelle. Pour la discipline disque d’un RAG local, croisez avec RAG local sur Mac (2026) : matrice chunk et quotas vectoriels ; pour le produit, l’accueil résume l’offre, et l’page d’achat permet de comparer régions et configurations sans engagement immédiat. Une expérience terrain sur Mac loué est décrite dans l’expérience freelance Mac mini M4 (2026).
Principes de conception (moindre privilège, 2026)
- Passerelle uniquement en boucle locale. Lier
openclaw gateway listenà127.0.0.1et n’atteindre ce port que via tunnel SSH inverse ou réseau interne. Évitez d’écouter sur0.0.0.0face à Internet sans couche TLS et filtrage adaptés. - Jeton découpé par scopes. Accorder seulement ce qui est nécessaire (
workspace:read, exécutions sur liste blanche, etc.). Fichier token en0600, référence viaOPENCLAW_TOKEN_FILE; ne jamais coller le secret dans le dépôt ni dans l’historique du shell. - Schéma « deux dossiers ».
repoen lecture seule pour le code synchronisé ;scratchseul en écriture pour builds, caches, journaux de sondes et artefacts temporaires. - Changements visibles par diff synthétique. Avant et après chaque tâche automatisée, enregistrer
git diff --stat(et index) pour que humains et scripts voient l’ampleur des modifications sans dump complet. - Doctor puis heartbeat. Après toute évolution de config,
openclaw doctor(de préférence avec sortie JSON archivée) ; ensuite une requête périodique vers/healthpour distinguer « processus présent » de « service réellement utilisable ».
Procédure reproductible
1. Répertoires et droits. Sur le Mac distant :
mkdir -p ~/ide-bridge/repo ~/ide-bridge/scratch/probe
# Code cloné ou synchronisé sous repo, puis retrait du bit écriture (exemple)
chmod -R a-w ~/ide-bridge/repoSi plusieurs comptes cohabitent, vous pouvez affiner avec des ACL ou un utilisateur dédié à la passerelle pendant que l’IDE reste en lecture sur l’arbre source. L’objectif non négociable est que le chemin par défaut des agents ne modifie pas silencieusement le dépôt principal.
2. Jeton passerelle. Selon votre version de la CLI, émettez un jeton et enregistrez-le dans ~/.openclaw/gateway.token avec chmod 600. Dans ~/.zprofile ou l’environnement d’un service launchd, exportez OPENCLAW_TOKEN_FILE="$HOME/.openclaw/gateway.token". Évitez les export MON_TOKEN=… visibles dans tous les shells interactifs.
3. Démarrage de la passerelle (loopback). Harmonisez le port avec la configuration de l’IDE :
openclaw gateway listen \
--bind 127.0.0.1:18765 \
--token-file "$HOME/.openclaw/gateway.token"Pour un service permanent, encapsulez dans un LaunchAgent avec KeepAlive et redirigez stdout/stderr vers ~/ide-bridge/scratch/logs/gateway.log afin de corréler redémarrages et sondes.
4. Workspace IDE. Racine Remote-SSH : ~/ide-bridge/repo. Orientez OUT_DIR, répertoires temporaires et caches OpenClaw vers ~/ide-bridge/scratch. Ainsi, une tentative d’écriture dans l’arbre « officiel » échoue tôt au lieu de polluer l’historique Git.
5. Journal de diff résumé. Entourez vos scripts d’automatisation :
LOG=~/ide-bridge/scratch/probe/diff-$(date +%F).log
{ echo "=== $(date -Iseconds) pre ==="; git -C ~/ide-bridge/repo diff --stat; \
git -C ~/ide-bridge/repo diff --cached --stat; } >> "$LOG"
# … travail agent / CI …
{ echo "=== $(date -Iseconds) post ==="; git -C ~/ide-bridge/repo diff --stat; \
git -C ~/ide-bridge/repo diff --cached --stat; } >> "$LOG"Sans afficher le diff complet, vous obtenez une courbe simple du « bruit » par session — utile pour les revues, les rollbacks et les alertes.
6. doctor et sonde de santé. Après modification de la configuration :
openclaw doctor --json > ~/ide-bridge/scratch/probe/doctor-last.jsonPuis planifiez via launchd un appel toutes les cinq minutes (ajustez l’en-tête d’auth à votre mode réel) :
curl -fsS -H "Authorization: Bearer $(cat ~/.openclaw/gateway.token)" \
http://127.0.0.1:18765/health \
|| echo "$(date -Iseconds) health FAIL" >> ~/ide-bridge/scratch/probe/health.logEn cas d’échec, enchaînez tail sur ce journal, les logs passerelle et un nouveau doctor. Les causes fréquentes (disque plein, port déjà pris) sont indépendantes du plan tarifaire — voir néanmoins les specs sur la page tarifs pour dimensionner RAM et stockage.
FAQ dépannage
/health répond 401 ou 403 ? Vérifiez les permissions du fichier token et le format exact de l’en-tête Authorization. Après rotation du secret, redémarrez à la fois la passerelle et le job launchd qui appelle curl, sinon deux versions du jeton coexistent.
EROFS ou refus d’écriture à la sauvegarde dans l’IDE ? Vous tentez d’écrire dans repo en lecture seule. Basculez l’édition vers un worktree inscriptible, un patch dans scratch ou une branche gérée hors arbre gelé, puis fusionnez proprement.
doctor se plaint des chemins de modèles ou du cache ? Forcez un répertoire cache sous ~/ide-bridge/scratch/openclaw-cache dans la configuration pour éviter un défaut qui pointerait vers un volume monté en lecture seule ou un partage réseau lent.
Les statistiques git diff restent vides ? Contrôlez que git -C ~/ide-bridge/repo cible bien la racine où se trouve .git. Pour les sous-modules, ajoutez des blocs séparés avec git -C chemin/sous-module.
Passerelle intermittente sans crash explicite ? Inspectez launchctl print, limites utilisateur et charge I/O ; comparez une sonde curl manuelle à un doctor pour savoir si le problème est réseau (tunnel) ou processus bloqué.
En bref : sandbox minimal = dépôt en lecture seule + scratch pour toute écriture + passerelle loopback + jeton à scopes réduits. Visibilité = ligne de base doctor --json + journaux diff --stat + appels réguliers à /health. Ce trio permet d’exploiter OpenClaw sur un Mac distant sans céder la machine entière à une seule expérience.