Ручное переименование скриншотов — трудоемкая задача для тех, кто часто делает снимки экрана для рабочих целей. Чтобы избавиться от необходимости вручную присваивать файлам описательные имена, был создан полностью автоматизированный процесс на базе локальной языковой модели. Ранее предпринимались попытки использовать облачные инструменты, такие как ChatGPT или Claude, а также специализированные скрипты, однако они либо требовали ручного запуска, либо приводили к дублированию файлов.

Использование локальной мультимодальной модели
Для реализации автономного решения выбор пал на Ollama и легкую мультимодальную модель Qwen2.5-VL 3B. Использование версии с 3 млрд параметров позволяет запускать нейросеть непосредственно на компьютере Mac без существенного замедления работы системы. Мультимодальные модели способны анализировать содержимое изображений, распознавать текст внутри них и определять контекст, что необходимо для генерации корректных названий.
Настройка автоматизации в macOS
Весь процесс построен вокруг отслеживания целевой директории, в которую macOS сохраняет новые скриншоты. Настройка включает использование трех библиотек Python: Ollama для связи с нейросетью, Watchdog для мониторинга файловой системы и Pydantic для обеспечения предсказуемого формата ответа модели.
Принцип работы скрипта
Алгоритм действий выглядит следующим образом:
- При появлении нового файла в папке скрипт ожидает завершения сохранения изображения системой.
- Скриншот отправляется в Qwen2.5-VL для анализа содержимого.
- Модель генерирует краткий описательный заголовок, относит файл к одной из категорий (Work, University, Research, Messages или Personal) и присваивает себе показатель уверенности.
- Скрипт корректирует название, добавляет дату, переименовывает файл и перемещает его в соответствующую подпапку.
В случае, если модель выдает низкий уровень уверенности, файл перемещается в папку «Needs Review» (Требует проверки), что предотвращает ошибки автоматической сортировки. Например, файл с техническим названием вида Screenshot 2026-09-19 at 4.03.31 AM.png автоматически превращается в 2026-09-19_ollama-app-installation.png и оказывается в нужной категории.
Фоновая работа через LaunchAgent
Для полной автоматизации был создан macOS LaunchAgent. Теперь скрипт запускается самостоятельно при входе в систему и непрерывно контролирует папку со снимками экрана. Это избавляет от необходимости открывать Терминал или запускать процессы вручную.

Основным недостатком такого локального решения является скорость обработки: модель Qwen2.5-VL работает медленнее облачных аналогов, так как вся вычислительная нагрузка ложится на ресурсы компьютера. Однако преимущество заключается в отсутствии необходимости открывать сторонние сервисы и в полной автоматизации: достаточно сделать скриншот, и через некоторое время он будет отсортирован и переименован без участия пользователя.
Эволюция подхода: от облачных инструментов к локальному решению
Путь к полной автоматизации был постепенным. Изначально автор пробовал загружать скриншоты напрямую в ChatGPT и Claude. Хотя нейросети корректно описывали содержимое, метод оставался полуручным: приходилось скачивать результат и переименовывать файл самостоятельно. Чтобы ускорить процесс, был создан веб-инструмент на основе модели Claude Haiku, который автоматически генерировал имя и создавал копию файла. Однако это порождало проблему «файлового мусора» — исходный скриншот с неудобным стандартным именем оставался в системе, а в папке скачиваний плодились дубликаты.
Следующим шагом стало создание специального навыка (skill) для Claude Code. Поскольку этот инструмент имеет прямой доступ к файловой системе, он мог переименовывать оригинальные файлы «на месте». Несмотря на это, оставалась «фрикция»: пользователю всё равно нужно было запускать Claude Code вручную, переходить в нужную директорию и отдавать команду на обработку. Это было быстрее, чем ручное переименование, но не соответствовало концепции «полностью автоматизированного процесса».
Технические детали и архитектура локального решения
Ключевым решением стало использование модели Qwen2.5-VL 3B через Ollama. Выбор именно этой версии (3B) был продиктован стремлением к балансу: модель достаточно легкая, чтобы не превращать каждое действие в пятиминутное ожидание, но при этом обладает достаточным «зрением» для анализа текста и контекста на скриншотах. Для интеграции в среду macOS потребовалась настройка системных параметров: пользователь изменил стандартную папку для сохранения скриншотов на выделенную директорию, за которой «наблюдает» Python-скрипт.

Роль используемых библиотек строго определена:
- Ollama — взаимодействие с локальной моделью;
- Watchdog — отслеживание появления новых файлов в реальном времени;
- Pydantic — принудительная структуризация ответа модели, чтобы скрипт мог гарантированно распарсить заголовок, категорию и уровень уверенности.
Важным аспектом является логика работы: скрипт настроен так, чтобы делать небольшую паузу после обнаружения файла. Это необходимо для того, чтобы система macOS успела полностью завершить запись скриншота на диск, предотвращая ошибки доступа к «пустому» или неполному файлу.
Безопасность и оценка уверенности
Внедрение показателя уверенности (confidence score) стало важным «предохранителем» системы. Автор осознавал, что нейросеть может совершить ошибку при интерпретации изображения. Введенный порог уверенности позволяет разделить работу на два сценария:

- Если модель «уверена» в своем анализе — файл автоматически получает новое имя, дату, категорию и перемещается в целевую папку (Work, University, Research, Messages или Personal).
- Если модель сомневается — файл отправляется в специальную папку «Needs Review». Это исключает риск того, что важный рабочий документ окажется в категории «Personal» или будет ошибочно переименован.
Опыт эксплуатации
Несмотря на то что локальное решение на базе Qwen2.5-VL 3B работает медленнее, чем облачные API, это компенсируется отсутствием подготовительных действий. Автор отмечает, что для пользователя это выглядит как «магия»: скриншот просто берется, а через короткое время оказывается уже переименованным и отсортированным по правильной папке. Это решение стало первым в череде попыток, которое по-настоящему позволило исключить участие человека из цепочки обработки файлов — достаточно сделать снимок и забыть о нем.
Почему потребовалась автоматизация
Автор статьи признается, что тратит на переименование скриншотов «нелепо много времени». Процесс обычно выглядит так: необходимо прервать текущую задачу, проанализировать, что именно изображено на снимке, и придумать понятное имя, которое будет актуально спустя долгое время. Идея пришла после просмотра ролика в Instagram, где автор использовал Быструю команду (Shortcut) macOS в связке с Apple Intelligence для автоматического переименования на основе контента. Это вдохновило автора на создание собственной альтернативы с использованием локальной нейросети, чтобы избежать ограничений облачных сервисов.
Путь экспериментов: от ChatGPT до Python-скрипта
Первоначальные попытки автоматизации включали загрузку скриншотов в ChatGPT и Claude. ИИ выдавал описание, но переименовывать файлы всё равно приходилось вручную. Затем с помощью Claude Code автор создал веб-инструмент на базе модели Haiku. Он генерировал имя и скачивал копию файла, но это приводило к дублированию контента: исходный файл с системным именем «Screenshot…» оставался лежать в папке, захламляя систему.
Следующей итерацией стало создание специфического «навыка» (skill) для Claude Code. Поскольку утилита имеет прямой доступ к локальным файлам, она могла переименовывать скриншоты «на месте». Тем не менее, решение не было бесшовным: требовалось открывать терминал, переходить в нужную директорию и вручную запускать команду. Это было быстрее, чем переименовывать файлы руками, но всё еще требовало активного участия пользователя.

Технические нюансы реализации
Переход на локальную модель Qwen2.5-VL 3B позволил реализовать полностью пассивный сценарий. Выбор размера 3B обусловлен тем, что модель достаточно компактна и не превращает обработку каждого снимка в «пятиминутное испытание» для ресурсов Mac.
В проекте реализована важная проверка: прежде чем отправить изображение в модель, скрипт выдерживает небольшую паузу. Это необходимо для того, чтобы macOS успела корректно сохранить файл на диск, исключая ошибки обработки поврежденных или незавершенных данных.
«Это решение стало первым в череде попыток, которое по-настоящему позволило исключить участие человека из цепочки обработки файлов — достаточно сделать снимок и забыть о нем», — отмечает автор.
Хотя локальное решение работает медленнее, чем облачные аналоги, оно обеспечивает полную автономность. Использование LaunchAgent гарантирует, что скрипт запускается автоматически при входе в систему и непрерывно следит за целевой папкой, превращая рутинную работу по сортировке файлов в полностью незаметный фоновый процесс.





