2026 OpenClaw en pratique : sur un Mac distant, surveiller les dossiers d’export design, corriger en lot l’EXIF Orientation des PNG et appliquer une rotation sans perte avec des commandes reproductibles

Public : équipes design-ops et automatisation qui livrent des PNG depuis Figma, Sketch, navigateurs ou chaînes photo et constatent une orientation incohérente selon les visionneuses — souvent une balise EXIF Orientation (chunk PNG eXIf ou équivalent) jamais normalisée. Sur un Mac distant, OpenClaw peut encapsuler les mêmes étapes shell : écouter l’inbox, lire la balise, appliquer une rotation physique sans rééchantillonnage lorsque c’est nécessaire, réinitialiser les métadonnées selon la politique, puis publier sous un nom déterministe. Installation de base : guide d’installation OpenClaw (toutes plateformes). Pour files d’attente et journaux : watch PNG, retry et archive JSONL et chaîne CLI PNG et retry sur Mac.

Sommaire

Plan de maillage interne (SEO / exploitation)

Chaque cible prolonge ce tutoriel sans répéter l’installation ; gardez ces URL dans votre runbook d’équipe.

Pourquoi l’orientation PNG échappe encore aux pipelines

  1. Couche de rendu : certains outils appliquent la balise Orientation à l’affichage, d’autres lisent les pixels bruts — d’où des écarts entre Preview, navigateur et scripts.
  2. Exports fragmentés : fichiers temporaires, renommages rapides et synchronisation cloud déclenchent des watchers trop tôt et corrompent les passes suivantes.
  3. Coût caché : sans Mac dédié, les designers interrompent des lots pour regagner la machine ; les sessions SSH non interactives oublient souvent le PATH Homebrew.
  4. Politique métadonnées : normaliser ou supprimer l’EXIF sans documenter le choix expose à des doubles rotations ou à la perte d’ICC embarqué.

OpenClaw / passerelle : déploiement minimal

Sur le Mac distant, visez une surface réduite : un utilisateur service, une version OpenClaw figée, une passerelle qui répond sur 127.0.0.1 uniquement. Suivez le guide d’installation, placez les secrets dans un fichier chmod 600, et validez curl -sS http://127.0.0.1:<port>/health depuis une session ssh user@hôte bash -lc '…' — le même contexte que launchd.

  • Propriété des processus : watcher et worker partagent l’UID qui possède inbox/ et out/.
  • TCC : si la lecture échoue, ajoutez le binaire exact sous Réglages système → Confidentialité et sécurité → Accès disque complet.
  • Périmètre réseau : ne publiez pas la passerelle sur Internet ; préférez un tunnel SSH pour déclencher des jobs distants.
  • Frontière skill : encapsulez lecture EXIF et rotation dans un script testable hors boucle agent.
Test fumée : which magick exiftool, magick -version et exiftool -ver depuis le même wrapper que le watcher invoque.

Stratégie d’écoute des dossiers

Les outils design écrivent souvent en deux temps. Pointez les exports vers une inbox dédiée, par ex. ~/png_jobs/design_export/inbox sur SSD local — pas Bureau iCloud ni partage SMB — pour éviter PNG tronqués et latence de sync. Réutilisez l’arborescence décrite dans watch folder → séries PNG : inbox, work, out, failed, logs.

Règles qui survivent au studio :

  1. Filtre *.png ; ignorez .DS_Store, *.tmp, *.crdownload.
  2. Taille stable : deux stat identiques espacés de 500 ms avant enqueue.
  3. Debounce : 1–3 s avec fswatch ; ou WatchPaths launchd + script retardé.
  4. Rafales : attendez 30–60 s sans nouveau PNG, puis drainez trié — comme dans le pipeline ICC surveillé.
  5. File unique : un worker sérialise les exports concurrents de façon déterministe.

Déclencheur reproductible (fswatch) :

INBOX=~/png_jobs/design_export/inbox
fswatch -o "$INBOX" | while read -r; do
  sleep 2
  /usr/local/bin/votre_worker_png_exif_rotation.zsh
done

Alternative launchd : WatchPaths sur l’inbox et wrapper qui dort 1–3 s avant d’appeler le worker — documentez le chemin du plist dans le dépôt.

Flux de traitement EXIF Orientation

Les valeurs 1–8 décrivent rotations et miroirs attendus par les visionneuses. Votre automatisation doit lire la balise avant toute transformation : passage direct, rotation ou quarantaine.

Lecture numérique :

exiftool -n -Orientation -s3 "$PNG"

Si la sortie est vide ou 1, les pixels sont en général déjà « droits » pour les pipelines bitmap ; croisez largeur/hauteur avec le brief. Les valeurs 3, 6, 8 impliquent une rotation classique ; les valeurs 2, 4, 5, 7 introduisent un miroir — exigeant une politique explicite (souvent rejet pour les assets de marque).

Balise Orientation Action recommandée Notes
Absente ou 1 Pas de rotation ; strip EXIF ultérieur optionnel Les PNG UI n’ont souvent aucun EXIF — ne présumez pas une chaîne photo.
3, 6, 8 magick … -auto-orient puis normaliser la balise Pixels physiquement droits pour les consommateurs « naïfs ».
2, 4, 5, 7 Quarantaine ou script flop+rotate documenté Évite les retournements involontaires dans les campagnes.

Après rotation, fixez Orientation=1 avec exiftool -overwrite_original -Orientation=1 ou retirez l’EXIF selon votre runbook métadonnées & ICC afin d’éviter une double application.

Rotation sans perte par lot, nommage et archivage

Ici « sans perte » signifie : pas de rééchantillonnage couleur arbitraire ; les rotations 90°/180° sur PNG préservent en principe la profondeur de bits, mais la recompression peut changer les octets. Si vous promettez une livraison strictement identique, validez sur un jeu d’or — voir recompression sans perte documentée.

Fichier unique (ImageMagick 7) :

magick "$IN" -auto-orient "$OUT"
exiftool -overwrite_original -Orientation=1 "$OUT"

Esquisse de boucle batch (zsh) — skill OpenClaw ou LaunchAgent :

inbox=~/png_jobs/design_export/inbox
out_root=~/png_jobs/design_export/out/$(date +%F)
mkdir -p "$out_root"
for f in "$inbox"/*.png; do
  [ -f "$f" ] || continue
  ori=$(exiftool -n -Orientation -s3 "$f" 2>/dev/null || echo "")
  [[ -z "$ori" || "$ori" == "1" ]] && cp -p "$f" "$out_root/$(basename "$f")" && continue
  base=$(basename "$f" .png)
  magick "$f" -auto-orient "$out_root/${base}_rot_v01.png"
  exiftool -overwrite_original -Orientation=1 "$out_root/${base}_rot_v01.png"
done

Alignez les noms avec nommage auto et validation : suffixe _rot_v01 seulement lorsque les pixels changent. Ajoutez une ligne JSONL (sha256_before, sha256_after, orientation_in, durée ms) par fichier, comme dans le guide watch / retry. Enchaînez ensuite les contrôles ICC du pipeline ICC : une chaîne mal configurée peut retirer le profil embarqué après rotation.

Repères opérationnels (à citer en revue de livraison) :

  • 1–3 s de debounce et 500 ms entre deux mesures de taille pour valider la fin d’écriture.
  • 30–60 s de fenêtre calme avant drainage d’une rafale multi-export Figma.
  • Trois tentatives de retry avec backoff 5 s / 20 s / 60 s pour erreurs transitoires disque — au-delà, classez dans failed/ avec sidecar JSON.

FAQ — erreurs fréquentes

exiftool répond « Unknown file type » alors que Preview ouvre le PNG.

Vérifiez zéro octet, mauvaise extension ou volume illisible pour le binaire sandboxé. Contrôlez l’en-tête xxd -l 8 (attendu 89 50 4E 47) et exécutez exiftool sous le même utilisateur que le watcher.

-auto-orient ne change rien mais l’aperçu reste penché.

Certains outils n’enregistrent l’orientation que dans des métadonnées ignorées par votre pipeline, ou l’export est sans EXIF. Ne pivotez pas sans confirmation humaine ou sans balise explicite.

401 sur la passerelle — la rotation ne part jamais.

Jeton absent dans l’environnement launchd : sourcez openclaw.env dans le wrapper ou déclarez EnvironmentVariables dans le plist.

Les octets ont changé après magick — est-ce un échec ?

Pas forcément : la recompression PNG modifie la taille fichier. Comparez les pixels décodés ou appliquez une politique de hachage perceptuel approuvée par la conformité marketing.

Operation not permitted sur l’inbox.

macOS bloque le binaire : accès disque complet, cohérence UID/propriété, chemins absolus — reprenez la même analyse que pour les pipelines ICC + watch.

Synthèse : traitez l’EXIF Orientation comme une donnée à lire avant toute mutation de pixels ; combinez écoute debouncée et garde taille stable sur une inbox Mac distant ; appliquez magick -auto-orient puis Orientation=1 lorsque vous corrigez réellement l’image ; archivez sous out/AAAA-MM-JJ/ avec JSONL pour rejouer la même skill OpenClaw demain. Lorsque vous avez besoin d’un nœud Apple Silicon toujours prêt pour l’automatisation d’assets — sans monopoliser un portable — parcourez les pages publiques MacPng : achat / location, tarifs et nœuds, aide SSH / VNC et accueil, le tout sans connexion obligatoire. Poursuivez avec le blog design & automatisation pour ICC, QA PNG et autres playbooks.

Pages publiques uniquement — sans compte

Exécuter OpenClaw (EXIF + rotation) sur un Mac distant dédié

Louer / acheter Voir les nœuds et tarifs Guide SSH / VNC

Pour aller plus loin : installation OpenClaw, watch & retry, ICC & métadonnées PNG.

OpenClaw & Mac distant 2026 EXIF · rotation sans perte · archive
Louer maintenant