2026 OpenClaw на практике: на удалённом Mac следить за каталогом экспорта дизайна и пакетно корректировать EXIF Orientation у PNG с воспроизводимой без потерь ротацией

Для кого: design ops и владельцы автоматизации, которые выгружают PNG из Figma, Sketch, браузера или фото-пайплайна и видят неправильный поворот превью в части просмотрщиков при нормальном виде в других — чаще всего виноват тег EXIF Orientation (в PNG часто в чанке eXIf), который так и не нормализовали. На удалённом Mac OpenClaw может оборачивать одни и те же shell-шаги: watch inbox, прочитать тег, при необходимости применить физическую ротацию без лишнего ресэмплинга, сбросить или снять ориентацию по политике, выдать файл под детерминированным именем. Базовая установка — в руководстве по установке OpenClaw на все платформы; шаблоны повторов и логов — в watch, retry и архив логов PNG и цепочке CLI и retry на M-серии.

Содержание

Карта обхода и сопряжённых материалов — каждый пункт дополняет этот туториал без дублирования установки.

OpenClaw и Gateway: минимальное развёртывание

Сделайте удалённый Mac-воркер предсказуемым: одна служебная учётка, зафиксированная версия OpenClaw и Gateway, отвечающий /health только на 127.0.0.1. Следуйте руководству по установке, положите токены в ~/.config/openclaw.env с правами 600 и убедитесь, что curl -sS http://127.0.0.1:<порт>/health проходит и из GUI-сессии, и из ssh user@host bash -lc '…' — неинтерактивные shell часто не видят PATH для magick и exiftool.

Минимальный чеклист:

  • Владение процессом: наблюдатель и OpenClaw запускайте под тем же UID, что владеет inbox/ и out/.
  • TCC: если macOS блокирует чтение каталогов, добавьте точный бинарник волкера в «Конфиденциальность и безопасность → Полный доступ к диску».
  • Файрвол: не выставляйте Gateway в WAN; при необходимости используйте SSH port forwarding.
  • Граница навыка: шаги EXIF и ротации оформите как shell или Python, вызываемый из навыка OpenClaw — так команды можно тестировать без полного цикла агента.
Дымовой тест зависимостей: which magick exiftool, magick -version и exiftool -ver из того же wrapper-скрипта, что вызывает наблюдатель.

Стратегия мониторинга каталога экспорта

Дизайн-инструменты нередко пишут файл по частям. Направляйте экспорт в выделенный inbox вроде ~/png_jobs/design_export/inbox на локальном SSD, не в iCloud Desktop и не на SMB — иначе получите полузаписанные PNG и задержки синхронизации. Дерево каталогов согласуйте с watch folder и наборами PNG: inbox, work, out, failed, logs.

Правила наблюдателя, которые переживают реальных дизайнеров:

  1. Фильтр *.png; игнор .DS_Store, *.tmp, *.crdownload.
  2. Стабильный размер: два одинаковых stat с интервалом ~500 мс перед постановкой в очередь.
  3. Дебаунс: слияние событий 1–3 с для fswatch или короткая задержка в скрипте при launchd WatchPaths.
  4. Тихое окно для пакетов: при ливне файлов ждите 30–60 с без новых PNG, затем сливайте inbox в отсортированном порядке — как в контуре ICC и переименования.
  5. Single-flight: один воркер, чтобы параллельные экспорты шли детерминированно.

Воспроизводимый триггер (fswatch): brew install fswatch, затем тот же цикл zsh, что вызывает навык OpenClaw. Внутренний sleep схлопывает серию событий; путь к воркеру подставьте свой.

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

Альтернатива launchd: WatchPaths на inbox и обёртка со sleep 1–3 перед вызовом воркера — зафиксируйте путь plist в репозитории, чтобы второй оператор мог сделать diff.

Поток обработки EXIF Orientation

Значения EXIF Orientation 1–8 задают, как просмотрщик должен повернуть или отразить декодированные пиксели. В одном приложении PNG выглядит верно (тег применяется автоматически), в пайплайне, читающем «сырую» растру, — нет. Автоматизация должна сначала прочитать тег, затем решить: пропуск, ротация или карантин на ручную проверку.

Чтение ориентации (число):

exiftool -n -Orientation -s3 "$PNG"

Пустой вывод или 1 обычно означают, что пиксели уже «стоят прямо»; всё равно сверьте ширину и высоту со спецификацией макета. Значения 3, 6, 8 задают повороты 180°, 90° по часовой и 90° против; зеркальные 2, 4, 5, 7 требуют явной политики (часто бренд-ассеты с отражением отправляют в карантин).

Таблица политики (рекомендация):

Тег Orientation Действие Заметки
Нет или 1 Без ротации; при необходимости позже снять метаданные UI-PNG часто без EXIF — не крутите «наугад».
3, 6, 8 magick -auto-orient, затем нормализация тега Физически вертикальные пиксели для «глупых» потребителей.
2, 4, 5, 7 (зеркало) Карантин или явный flop+rotate Отражение редко намеренно в UI — флаг для ревью.

После ротации задайте Orientation=1 через exiftool -overwrite_original -Orientation=1 или снимите EXIF по вашему runbook метаданных и ICC, чтобы downstream не применил поворот второй раз.

Пакетная без потерь ротация, имена и архив

Без потерь здесь — сохранение содержимого декодированного изображения без нежелательного ресэмплинга: повороты 90°/180° для PNG обычно не меняют глубину цвета; при этом перекодирование может изменить сжатый объём файла. Если обещаете байт-в-байт поставку, проверьте на золотом наборе — см. заметки по без потерь пересжатию.

Один файл, auto-orient (ImageMagick 7):

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

Эскиз пакетного цикла (zsh) — внутри навыка OpenClaw или 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

Согласуйте финальные имена с автоименами и валидацией PNG: суффикс _rot_v01 или semver — только если воркер менял пиксели. На каждый файл добавляйте строку JSONL: sha256_before, sha256_after, orientation_in, длительность мс.

Опционально: после ротации прогоните проверки ICC из контура ICC — поворот не должен «съедать» профиль, но плохая цепочка инструментов может; при пропаже встроенного sRGB отправляйте файл в quarantine/.

FAQ: типичные ошибки

exiftool пишет «Unknown file type» для PNG, который открывается в Preview.

Файл может быть нулевой длины, переименованным JPEG или лежать на томе, недоступном песочнице. Проверьте сигнатуру xxd -l 8 (ожидайте 89 50 4E 47) и запускайте exiftool от того же пользователя, что наблюдатель.

-auto-orient ничего не сделал, превью всё ещё боком.

Инструмент мог записать ориентацию только в sidecar, который ваш просмотрщик игнорирует, либо в макете несоответствие внутреннего размера — не крутите без тега или подтверждения человека.

Gateway отвечает 401 — ротация не запускается.

Область токена или env не подхвачен в launchd: смотрите launchctl print gui/$(id -u), задайте EnvironmentVariables в plist или source для openclaw.env внутри обёртки.

Файл вырос или уменьшился после magick — это провал?

Не обязательно: PNG пересжимается. Сравнивайте декодированные пиксели или pHash. Для маркетинговой комплаенсности задокументируйте, нужен ли байт-идентичный вывод.

Operation not permitted на inbox — воркер не видит файлы.

TCC заблокировал бинарник или SSH-сессию. Выполните ls -leO на пути, убедитесь в совпадении UID владельца, при необходимости выдайте Terminal или подписанному хелперу полный доступ к диску.

Итог: относитесь к EXIF Orientation как к данным, которые читаются до любой трансформации пикселей; на удалённом Mac сочетайте дебаунс и гейт стабильного размера на inbox; при физической ротации используйте magick -auto-orient и явно нормализуйте Orientation=1; складывайте результаты в каталоги по датам и JSONL — тогда тот же навык OpenClaw перенесётся на следующий проект. Когда нужен постоянно включённый Apple Silicon под автоматизацию ассетов без привязки к ноутбуку дизайнера, откройте на MacPng публичные страницы без входа: аренда и покупка, тарифы и узлы, помощь по SSH и VNC. Остальные материалы — в разделе технические идеи.

Страницы сайта без входа

Выделенный удалённый Mac под OpenClaw: EXIF watch, ротация PNG и архив

Аренда / покупка Тарифы и узлы Помощь и настройка

Ещё по теме: установка OpenClaw, watch и логи PNG, ICC и без потерь пересжатие.

OpenClaw и удалённый Mac 2026 EXIF watch · ротация PNG · архив
Арендовать Mac