Я витрачаю смішну кількість часу на перейменування скріншотів на день. Я не буду перебільшувати, я обіцяю. Насправді достатньо просто прокрутити цю статтю, щоб зрозуміти чому! Кожен знімок екрана, який я роблю для статті, потрібно замінити описовою назвою файлу, перш ніж я його завантажую, що зазвичай означає зупинку того, що я роблю, з’ясування того, що насправді показує знімок екрана, і введення імені, яке я можу зрозуміти лише пізніше.
Кілька днів тому я натрапив на Reel в Instagram, де хтось встановив ярлик macOS, який дозволяв їм використовувати Apple Intelligence для автоматичної заміни своїх скріншотів на основі того, що на них було. Це відразу привернуло мою увагу, але я хотів побачити, чи зможу я відтворити ту саму установку за допомогою локального LLM. Це саме те, на що я витратив деякий час!
Моделі Vision роблять усі ці налаштування можливими
Погляну на мого місцевого магістра права
У той час як магістратури можуть викинути текст лише один раз, сучасні мультимодальні моделі тепер можуть розуміти все: від зображень і скріншотів до аудіо та відео. У контексті завдання, яке я намагаюся тут виконати, це означає, що існують моделі, які можуть дивитися на знімок екрана, читати текст у ньому, вибирати те, що важливо, а потім з’ясовувати, що насправді показує зображення.
Кілька місяців тому я зрозумів, скільки часу витрачаю на перейменування скріншотів вручну, і вирішив знайти спосіб автоматизувати цей робочий процес за допомогою ШІ. Спочатку я почав із завантаження скріншотів у такі інструменти штучного інтелекту, як ChatGPT і Claude, і вони видавали описи на основі моїх інструкцій. Потім я вручну перейменував знімок екрана, використовуючи цей опис, і це спрацювало, але половину роботи я все одно зробив сам.
Потім я закодував базовий веб-інструмент за допомогою Claude Code, який використовував модель Haiku від Anthropic, щоб переглядати кожен знімок екрана, з’ясувати, що на ньому, і автоматично генерувати описове ім’я файлу. Потім інструмент створив нову копію знімка екрана з таким ім’ям файлу та завантажив його для мене, що означало, що мені більше не потрібно було перейменовувати кожен файл вручну.
Однак один нюанс, який все ще залишився, полягав у тому, що я фактично отримав дублікати файлів. Оригінальний знімок екрана все ще лежав у моїй папці з непотрібною назвою за замовчуванням, тоді як оновлена копія мала назву файлу опису, яку я спочатку хотів.
Потім я створив навик Claude, який робив те саме, але оскільки Claude Code може отримати прямий доступ до файлів на вашому комп’ютері, він може зробити знімок екрана оригіналу, створити описове ім’я для файлу та перейменувати файл на місці замість створення іншої копії.
Однак пожежа тут ще була. Мені довелося перейти до Claude Code, перейти до конкретного каталогу, де я зберіг знімок екрана, а потім запустити навик для файлів, які я хотів перейменувати. Це все одно було швидше, ніж робити все вручну, але я шукав не той ручний процес.
Тому я створив сценарій, який робить усе за мене
Нарешті я вийшов із кола
Щоб позбутися цієї останньої частки тертя, я вирішив автоматизувати весь процес. Я почав із встановлення Ollama та використання Qwen2.5-VL 3B, відносно невеликої моделі зору, яка фактично може дивитися на мої знімки екрана та розуміти, що всередині них. Я вибрав модель 3B головним чином тому, що хотів щось легке, що могло б працювати на моєму Mac і перетворювати кожен знімок екрана на п’ятихвилинне випробування.
Звідти я створив спеціальну папку Screenshots і змінив налаштування знімків екрана macOS так, щоб кожен новий знімок екрана потрапляв туди. Потім я створив невеликий проект на Python і встановив три пакунки: Ollama, Watchdog і Pydantic. Ollama керує локальною моделлю, Watchdog керує папкою нових скріншотів, а Pydantic гарантує, що модель повертає свою відповідь у передбачуваному форматі.
Фактичний сценарій дуже простий. Щоразу, коли в папці з’являється нове зображення, воно чекає, поки macOS завершить його збереження, а потім надсилає знімок екрана до Qwen2.5-VL. Я наказав моделі створити короткий описовий заголовок на основі того, що вона могла побачити, вибрати категорію, наприклад «Робота», «Університет», «Дослідження», «Повідомлення» або «Особисті», і поставити собі оцінку довіри.
Після відповіді на модель сценарій очищає згенерований заголовок, додає дату, перейменовує знімок екрана та автоматично переміщує його до відповідної вкладеної папки. Тож замість того, щоб отримати щось на зразок Screenshot 2026-09-19 at 4.03.31 AM.png, один із моїх тестових скріншотів став 2026-09-19_ollama-app-installation.png і був переміщений до особистої папки, а я взагалі не торкався файлу.
Я також додав невеликий захист для скріншотів, у якому модель не впевнена. Усе, що є нижче певного порогу достовірності, надсилається до папки «Потрібна перевірка», а не розміщується кудись зовсім неправильно з упевненістю.
Цей сценарій зараз працює повністю у фоновому режимі
Найкраще те, що мені не потрібно думати про це
Спочатку мені потрібно було відкрити термінал і запустити сценарій самостійно, коли я хотів, щоб автоматизація працювала. Це, очевидно, трохи перешкоджає суті, тому я пішов далі й створив для нього macOS LaunchAgent. Тепер, коли я входжу в систему, скрипт автоматично запускається у фоновому режимі та постійно стежить за моєю папкою зі знімками екрана.
Кінцевий результат – саме те, чого я хотів із самого початку: я роблю знімок екрана, продовжую те, що робив, і через кілька хвилин оригінальний файл уже має назву та впорядковує його.
Єдиним недоліком цього сценарію є те, що він не такий швидкий, як хмарні альтернативи, якими я користувався раніше. Оскільки Qwen2.5-VL повністю працює на моєму бідному Mac, може знадобитися деякий час, щоб обробити знімок екрана, зрозуміти, що на ньому, і визначити, де йому місце! Моя навичка полягає в тому, що Claude набагато швидший, але це налаштування повністю вручну, і мені не потрібно відкривати Claude Code, переходити до потрібної папки чи робити щось вручну.
Цей сценарій, зокрема, йде на крок далі і фактично також організовує знімки екрана для мене. Замість того, щоб перейменовувати файл і зберігати його в одній папці, він визначає, до якої категорії він належить, і автоматично переміщує його до відповідної підпапки.
Зрештою, хоча цей робочий процес зайняв деякий час, щоб налаштувати, і він не такий швидкий, як хмарні альтернативи, якими я користувався раніше, це перша версія, яку я спробував, яка насправді здається абсолютно несправною. Я можу зробити знімок екрана, забути про нього та бути впевненим, що з часом його буде перейменовано, і більше нічого не робитиму!