
Привет, Хабр! Меня зовут Виталий, и я снова тут, чтобы рассказать про свою очередную разработку. Как я упоминал в прошлой статье «Как я гифку с помощью ИИ сжимал», я по профессии графический дизайнер, а не программист. Но это не мешает мне создавать полезные инструменты с помощью ИИ.
В этот раз я хочу рассказать о том, как создал ClipGen — утилиту, которая превращает обычный буфер обмена в мощный инструмент для работы с текстом и изображениями. Весь код программы я выложил как open-source, чтобы каждый мог доработать его под свои нужды, сделав ещё удобнее и функциональнее. Ссылку на репозиторий я дам в конце статьи.
Идея: зачем мне это вообще понадобилось
Исправлять опечатки вручную утомительно — особенно в длинных сообщениях. А вот если надо перевести пару строк или разобраться с картинкой — тут уже приходится прыгать по вкладкам и приложениям: копируешь, идешь в DeepL, вставляешь, ждёшь, копируешь обратно. Или пытаешься понять, что за мем на немецком кинули тебе в чат.
Так возникла идея фоновой утилиты с горячими клавишами для мгновенной обработки выделенного текста — без лишних действий и переключений между окнами. Так родился ClipGen.
Что умеет ClipGen?
ClipGen — это десктопная утилита на Python, которая работает с буфером обмена и использует Google Gemini API для обработки текста и изображений. Вот что она может:
Всё это работает через горячие клавиши, без необходимости открывать отдельное окно. Выделил текст → нажал комбинацию → готово. Работает в любой программе, где есть текстовый ввод (будь то Word, Telegram или браузер). Если вставить текст нельзя, результат отобразится в интерфейсе ClipGen. Короткие тексты обрабатываются за 0.5 секунды, длинные — за секунды.
А что происходит "под капотом" при каждом нажатии? Алгоритм работы прост и эффективен: когда вы нажимаете горячую клавишу (например, Ctrl+F3 для перевода или Ctrl+F10 для анализа изображения), ClipGen автоматически эмулирует Ctrl+C для копирования выделенного контента в буфер обмена. Затем программа считывает содержимое буфера и использует конкретный промпт, привязанный к этой комбинации клавиш. Для Ctrl+F3 это будет промпт для перевода, для Ctrl+F10 — промпт для анализа изображений и так далее. Выбранный промпт вместе с вашим контентом отправляется в API Gemini, где нейросеть обрабатывает запрос и возвращает результат. После получения ответа ClipGen помещает его в буфер обмена и эмулирует Ctrl+V для вставки. Весь этот процесс происходит асинхронно в отдельном потоке, поэтому основной интерфейс не зависает и вы можете продолжать работу.
Программа полностью настраиваемая — вы можете изменить горячие клавиши под свои привычки, отредактировать промпты для каждой функции или даже переименовать кнопки в интерфейсе. Всё это легко делается через файлы конфигурации, что позволяет адаптировать ClipGen под любые ваши задачи и предпочтения.
Исправление текста (Ctrl+F1): исправляет грамматику, пунктуацию, орфографию, приводит текст в порядок с правильными тире и кавычками «ёлочками».
Переписывание (Ctrl+F2): улучшает читаемость текста, исправляет косяки голосового ввода и даже заменяет мат на цензурные, но эмоциональные выражения.
Перевод (Ctrl+F3): переводит текст между 140+ языками — с русского на английский или наоборот, если текст уже на русском.
Объяснение (Ctrl+F6): объясняет сложные термины или концепции простыми словами с примерами.
Ответы на вопросы (Ctrl+F7): отвечает на вопросы из буфера обмена.
Кастомные запросы (Ctrl+F8): выполняет любую задачу, так же из буфера.
Саркастические комментарии (Ctrl+F9): генерирует остроумные комментарии (экспериментальная функция).
Анализ изображений (Ctrl+F10): извлекает текст из картинок, переводит его (если нужно) и объясняет, что изображено.
Как это работает: немного про внутренности
ClipGen написан на Python, и вот основные компоненты:
Google Gemini API: я использую модель gemini-2.0-flash-exp. Она быстрая, точная и поддерживает работу с текстом и изображениями. Бесплатный лимит — 1000 запросов в день, а если нужно больше, можно подключить второй ключ или другую модель.
Горячие клавиши: библиотека pynput слушает нажатия клавиш, а pywin32 эмулирует копирование и вставку (пока только для Windows).
Интерфейс: customtkinter отвечает за минималистичное окно с логами и кнопками. Изначально я не хотел делать интерфейс, но оказалось, что он совсем не лишний — с ним гораздо удобнее, чем с голой консолью.
Многопоточность: ThreadPoolExecutor и multiprocessing.Queue обеспечивают асинхронную обработку запросов, чтобы ничего не зависало.
Когда вы нажимаете горячую клавишу, ClipGen копирует выделенный текст (или берёт картинку из буфера), отправляет его в Gemini с нужным промптом, получает ответ и вставляет результат обратно.
Вот пример промпта для исправления текста (из config_ru.json):
"prompt": "Пожалуйста, исправь следующий текст. Поправь грамматику, пунктуацию и орфографию, не изменяй смысл текста... Обязательно верни ТОЛЬКО исправленный текст без лишних комментариев и пояснений это очень важно! За неисполнение этого правила штраф 15$:"
Штраф в 15 баксов, конечно, шутка — это чтобы Gemini не добавляла лишнего. Хотя, признаюсь, Gemini иногда любит поболтать сверх меры, и порой даже строгие промпты бессильны. Но ошибки она допускает крайне редко — всё же проверять результат стоит.
Почему это бесплатно?
Google щедро раздаёт доступ к Gemini API: регистрируешься в Google AI Studio, получаешь ключ — и вперёд. 1000 запросов в день хватает на всё: от исправления писем до анализа мемов.
Установка:
Клонируете репозиторий: git clone https://github.com/Veta-one/clipgen.git.
Ставите зависимости: pip install -r requirements.txt.
Берёте бесплатный ключ в Google AI Studio.
Вставляете ключ в config_en.json или config_ru.json.
Запускаете: python main.py
Пока работает только на Windows, но в планах добавить macOS и Linux. Всё open-source, код на GitHub.
Кому это пригодится?
Писателям и редакторам: моментально править текст, не открывая сторонние инструменты.
Студентам: быстро разбираться с терминами или переводить материалы.
Разработчикам: чистить сообщения об ошибках или вытаскивать текст из скриншотов.
Всем остальным: исправлять опечатки в мессенджерах или понимать, что за картинку вам скинули.
Я использую ClipGen ежедневно. Недавно в длинном сообщении в Telegram допустил ошибки с запятыми и окончаниями. Выделил → Ctrl+F1 → и текст мгновенно стал грамотным.
Что было сложно?
Честно говоря, я недооценил настройку горячих клавиш. Хотелось, чтобы они работали глобально, но Windows не всегда дружелюбно относится к таким штукам. Пришлось повозиться с pynput и pywin32, чтобы всё стабильно копировалось и вставлялось.
Интерфейс тоже был вызовом. Как дизайнер, я хотел создать что-то минималистичное и красивое. Но поскольку код я пишу с помощью нейросети, пришлось научиться очень подробно описывать свои идеи - нейронка часто делает по-своему, и приходится искать компромисс между желаемым и полученным. Изначально я планировал обойтись без интерфейса вообще, но оказалось, что он делает работу с утилитой гораздо приятнее консольных логов.
Планы
ClipGen уже работает, и я планирую его улучшать:
Поддержка macOS и Linux.
Интеграция с другими API.
Настройка горячих клавиш прямо в интерфейсе.
Если у вас есть идеи или желание помочь — добро пожаловать в репозиторий.
Итог
ClipGen — это мой маленький эксперимент, который вырос в полноценный инструмент. Он экономит время, нервы и делает работу с текстом проще. После первых двух дней использования я почувствовал себя без него как без рук. Прошёл уже месяц, а я запускаю его десятки раз в день — он стал частью моего рабочего процесса.
Репозиторий: github.com/Veta-one/clipgen
Если хотите поддержать проект: USDT TRC20: TEJw2gRrW5Z6Drowk7icjp5DhZvAEPwCYY
Спасибо, что дочитали до конца <3