Ce qu'OpenClaw résout en production
Un AI Agent peut modifier du code, exécuter des shells, accéder au réseau — des permissions mal cadrées entraînent des configs cassées ou des fuites de clés. Sur la chaîne de dev macOS, le risque est amplifié : Xcode, signature et Neural Engine exigent macOS ; les conteneurs Linux classiques ne suffisent pas ; un Agent à nu n'offre pas de frontière auditable.
OpenClaw trace sur chaque Mac mini M4 physique SpinMac un périmètre d'action configurable, traçable et interruptible par tâche, tout en gardant les capacités natives macOS. Ce document couvre le passage de la « session solo » à l'environnement de production équipe + CI.
Rédigé sur OpenClaw 1.4.2, macOS Sequoia 15.3, nœud Mac mini M4 Japon (Tokyo) — 10 cœurs · 16 Go · SSD 256 Go. L'UI console peut évoluer légèrement ; structure de config et sémantique CLI restent stables.
Activation en quatre étapes dans la console
-
01
Commander une instance Mac mini M4
Sur la page de commande, choisissez l'un des cinq nœuds — forfait de base à partir de 21,2 $/jour. Livraison automatique 1–5 minutes après paiement, e-mail avec identifiants SSH et VNC.
-
02
Console → Instances → onglet OpenClaw
Première visite : initialisation zero trust — paire de clés Ed25519, installation de
com.spinmac.openclaw.daemon, création du répertoire d'audit/var/log/openclaw/. -
03
Configurer politique d'accès et membres
Dans « Contrôle d'accès », ajoutez des collaborateurs avec les rôles Owner / Operator / Auditor. Operator peut lancer des sessions ; Auditor lit uniquement les journaux d'audit.
-
04
Installer le CLI et vérifier
La console fournit un script d'installation et le téléchargement du token. Exécutez
claw status— confirmezdaemon: runningetauth: valid.
La console offre aussi un tableau de bord temps réel : sessions actives, CPU/mémoire par session, statistiques BLOCK sur 24 h, export PDF de synthèse conformité pour revue sécurité.
Aperçu des groupes de commandes CLI
L'exploitation quotidienne tourne autour de claw, regroupé par fonction :
# Status
claw status
claw doctor
# Sessions
claw run --config policy.yaml
claw run --template ci-review --detach
claw attach <session-id>
claw stop <session-id>
claw list
# Templates
claw template list
claw template export agent > policy.yaml
claw template save my-ci-policy
# Audit
claw audit tail <session> --follow
claw audit query --since 24h --action BLOCK
claw audit export <session> --format json
# Network dry-run
claw net test --domain api.openai.com
claw doctor doit entrer dans les contrôles de routine : daemon, autorisation Endpoint Security, répertoire d'audit inscriptible, validité du token. En cas d'échec de démarrage sandbox avec message vague, lancez d'abord le diagnostic.
Politique YAML niveau production — détail
Configuration complète courante pour un Agent en production, avec explication des champs :
version: "1"
session:
name: "prod-agent"
auto_cleanup: false
max_duration: "4h"
idle_timeout: "30m"
filesystem:
workspace: "~/agent-workspace"
readonly_mounts:
- /Applications
- /usr/local/bin
- /Library/Developer
deny:
- ~/.ssh
- ~/Library/Keychains
- ~/Library/Application Support/Cursor/User/globalStorage
syscalls:
preset: "agent"
deny: [ptrace, setuid, mount]
network:
allow_domains:
- "api.openai.com"
- "api.anthropic.com"
- "*.github.com"
- "registry.npmjs.org"
- "pypi.org"
block_all_others: true
log_blocked: true
Le bloc session pilote le cycle de vie : max_duration et idle_timeout évitent les sessions sans surveillance qui monopolisent les ressources ; auto_cleanup: false convient aux tâches de génération de code dont il faut conserver le résultat.
Dans filesystem, deny prime sur readonly_mounts. OpenClaw résout le chemin réel des symlinks — si Homebrew pointe vers Cellar, montez aussi le répertoire Cellar.
Pour network, gardez block_all_others: true et log_blocked: true : le trafic sortant non autorisé est ignoré mais reste tracé.
Outre /Applications/Xcode.app, montez /Library/Developer et rendez ~/Library/Developer/Xcode/DerivedData inscriptible sous le workspace. DerivedData manquant force un rebuild complet — 3 à 5× plus long.
Zero trust multi-utilisateurs et modèle de rôles
En équipe, trois rôles au principe du moindre privilège :
| Rôle | Démarrer sandbox | Voir l'audit | Modifier la politique | Utilisateur type |
|---|---|---|---|---|
| Owner | Oui | Oui | Oui | Responsable / DevOps |
| Operator | Oui | Oui | Non | Développeur au quotidien |
| Auditor | Non | Oui | Non | Sécurité et conformité |
Chaque rôle s'authentifie via un token CLI dédié, valide 24 h par défaut ; l'Owner peut révoquer en un clic et mettre fin aux sessions actives associées. Pour les consultants externes, émettez un token Guest limité dans le temps, expirant automatiquement.
Exemple d'intégration GitHub Actions
Après avoir enregistré un SpinMac M4 comme self-hosted Runner, vous pouvez créer une session sandbox dédiée à chaque revue dans le pipeline PR :
# .github/workflows/ai-review.yml
name: AI Code Review (Sandboxed)
on: [pull_request]
jobs:
review:
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
- name: Start OpenClaw sandbox
run: |
claw run --template ci-review --detach
SESSION=$(claw list --json | jq -r '.[0].id')
echo "SESSION_ID=$SESSION" >> $GITHUB_ENV
- name: Run AI review agent
run: |
claw attach $SESSION_ID --exec \
"claude -p 'Review this PR for security issues'"
- name: Export audit log
if: always()
run: |
claw audit export $SESSION_ID \
--format json \
--output audit-${{ github.run_id }}.json
- name: Stop sandbox
if: always()
run: claw stop $SESSION_ID
Placez le modèle YAML ci-review dans .openclaw/ du dépôt, synchronisé avec le workflow ; les changements de politique passent par Code Review, l'équipe sécurité peut auditer directement les limites effectives.
Usages avancés des journaux d'audit
Requêtes groupées conditionnelles — filtrez par heure et type pour traquer un comportement anormal :
claw audit query --since 7d --action BLOCK --type network --format table
claw audit query --since 24h --action BLOCK --type write --format json \
| jq '.[] | select(.target | contains("/etc"))'
Export conformité : JSON, CSV, PDF. Le PDF inclut résumé de session, stats ALLOW/BLOCK, instantané de politique et chronologie, prêt pour l'audit.
Règles d'alerte : seuils configurables en console, ex. « BLOCK > 50/h par session » ou « tentative de lecture ~/.ssh », notification e-mail ou Webhook à l'Owner.
Pannes fréquentes et optimisation des performances
| Symptôme | Cause probable | Action |
|---|---|---|
| Échec git / python | Chemins d'outils non montés | Vérifier les symlinks, compléter les chemins Cellar |
| Compilation Xcode très lente | DerivedData non inscriptible | Ajouter un sous-chemin workspace en écriture |
claw run timeout |
Autorisation ES expirée | claw doctor puis réautoriser selon les indications |
| Réseau entièrement BLOCK | Domaine absent de la liste blanche | claw net test pour valider un par un |
| Disque d'audit saturé | Logs gonflés par tâches à haute fréquence | Configurer la rotation ou relever le seuil de filtrage |
L'audit complet consomme environ 3 % CPU, négligeable sur M4 10 cœurs. En cas de latence extrême, désactivez l'audit syscall fin et gardez fichier/réseau — en production, l'audit complet reste recommandé. Si le répertoire d'audit grossit trop vite, ajustez la rétention en console ou archivez par session vers l'object storage pour ne pas saturer le disque.
Checklist sécurité avant mise en production
Avant la prod, validez point par point :
Session dédiée par tâche ; YAML de politique dans Git avec Code Review ; ~/.ssh, Keychain et stockage global IDE toujours en deny ; réseau refusé par défaut puis liste blanche au besoin ; définir max_duration et idle_timeout ; droits minimaux par membre, revue régulière des tokens ; en CI, exporter l'audit avec if: always() ; alertes BLOCK ; archiver tous les logs avant résiliation. Après changement de preset syscall ou liste blanche réseau, validez avec claw net test et un court essai pour éviter un échec silencieux du pipeline ou une zone d'audit trop permissive.
Différences avec exécution locale nue et macOS cloud public
MacBook local nu : l'Agent a les mêmes droits que la machine principale, pas d'audit au niveau opération, swap fréquent sur 8 GB en tâches longues, difficile de porter la CI 7×24.
Instance macOS cloud publique : souvent virtualisée, Neural Engine non direct, sans sandbox ni audit intégrés, durée minimale et tarif unitaire souvent supérieurs à une machine physique flexible à la journée.
GitHub Actions macOS Runner : facturation à la minute, tarif macOS élevé, environnement partagé, politiques peu granulaires, files d'attente marquées aux heures de pointe.
SpinMac propose Mac mini M4 physique dédié (dès $21.2/jour), OpenClaw intégré, livraison 1–5 min sur cinq nœuds, support humain 7×24 — collaboration, CI et audit décrits ici reposent sur cet environnement clé en main. Si vous évaluez de sortir l'Agent d'une machine locale chargée, testez d'abord une location à la journée sur Singapour ou Japon : même dépôt, même tâche Agent, comparez exhaustivité des logs et temps d'exécution avant de fixer la revue en production dans le cloud.
Intégrez le sandbox OpenClaw à votre pipeline de production
SpinMac Mac mini M4 : machine physique dédiée, collaboration zero trust, journaux d'audit complets, 16 GB mémoire et 38 TOPS AI en direct, à partir de $21.2/jour, sans engagement.