
Скачать Buffera для macOS · Исходный код
Долгое время, более 5 лет, я пользовался готовым платным приложением Pasta, но оно не удовлетворяло меня полностью. Постоянно возникали какие-то неудобства, которые нельзя было быстро и дешево исправить. Переходить на другие решения тоже было долго и дорого: нужно платить, привыкать к новому интерфейсу, а потом может оказаться, что нужных мне функций там нет.
Писать собственное приложение с нуля я не брался, потому что не был готов разбираться в новом языке и нюансах macOS ради этого. С появлением LLM возникла возможность сделать это намного быстрее и проще. В какой-то момент я решил: хватит это терпеть, и завайбкодил буфера.
Зачем вообще нужен менеджер истории буфера обмена
Если раньше вы не пользовались такими приложениями, попробовав однажды, быстро оцените, насколько это полезно.
Допустим, нужно заполнить форму несколькими значениями: имя, телефон, адрес. Можно сначала скопировать всё нужное, затем перейти к форме и вставить скопированное, не покидая её. Не нужно за каждым значением переходить туда-сюда. Buffera сохраняет скопированное и позволяет быстро выбирать нужные значения для вставки с помощью клавиатуры.
Вокруг этого базового сценария можно построить дополнительные возможности.

На скриншотах демонстрационные данные.
Поиск по истории и соседние записи
В Pasta мне было неудобно искать то, что я давно скопировал. Особенно когда удавалось найти знакомую запись, но нужна была другая, которую я копировал рядом с ней. Посмотреть соседние записи из результата поиска я не мог, приходилось скроллить огромную историю.
Например, вы копировали название места, адрес и ссылку на сайт. Название помните, а адрес уже нет. В Buffera можно найти через поиск то, что запомнили, а потом посмотреть, что было скопировано до или после.
Дополнительно можно сузить поиск, отфильтровав записи по датам и приложению, из которого копировали.

Избранное и подписи
Записи, которые часто нужны, можно добавить в избранное, чтобы каждый раз не искать их в общей истории.
Отдельно мне не хватало возможности подписывать такие записи. Допустим, сохранили номер телефона, а через некоторое время уже непонятно, чей он. В Buffera можно добавить подпись, например «Служба доставки» или «Мастерская».

Скопировать текст как файл
Текст из истории можно скопировать как файл .txt или .md. Например, если текст большой, в Telegram его удобнее отправить файлом.
Обычно для этого пришлось бы открыть редактор, вставить текст, сохранить файл и потом прикрепить его к сообщению. Здесь можно выбрать «Скопировать иначе», скопировать текст как файл и вставить его в Telegram. Быстро, удобно.
В этом же меню есть другие действия, например убрать форматирование текста.

Открыть картинку как файл в папке
Довольно часто возникала ситуация когда мне нужно было открыть скопированную картинку как файл в папке. Например, чтобы загрузить куда-то, где нельзя воспользоваться обычной вставкой.
В Buffera это можно сделать прямо из истории. Не нужно сначала вставлять картинку в другое приложение или сохранять ее на рабочий стол, только ради того, чтобы сохранить её в файл.

Настройки истории
Можно выбрать, сколько записей хранить, и ограничить размер истории в гигабайтах. Скопированные файлы сохраняются как ссылки на них, поэтому размер исходного файла не равен месту, которое запись занимает в истории.

Поиск по смыслу и тексту на картинках
Обычный поиск полезен, когда помнишь хотя бы часть содержимого. Но иногда помнишь только, о чём оно было. Для этого есть поиск по смыслу: можно описать, что ищете, не вспоминая точную формулировку.
Также Buffera распознаёт текст на скопированных картинках. Например, если вы копировали скриншот с адресом, его можно искать по словам внутри картинки.

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

Можно пользоваться без ИИ
Если эти возможности вам не нужны, можно не включать поиск по смыслу и ассистента и вообще не скачивать модели. История, обычный поиск, избранное и остальные функции работают без них.
Для экономии заряда подготовка истории для поиска по смыслу по умолчанию выполняется только при подключении к питанию. По уже подготовленным записям можно искать и от батареи. При желании подготовку можно разрешить и без зарядки.
В режиме энергосбережения или при сильном нагреве фоновая подготовка приостанавливается.
Ну и самое важное: все данные остаются на вашем Mac
Распознавание текста, поиск по смыслу и встроенный ассистент работают локально. При использовании этих функций содержимое истории остаётся на вашем компьютере и никуда не отправляется. Исходники открыты, это можно проверить.
Отдельно можно подключить историю к Codex, Claude Code и другим агентам через MCP. Этот доступ по умолчанию выключен. Скрытые записи(пароли и тп) через MCP недоступны.
Пароли и другие конфиденциальные записи
Если приложение, из которого вы копируете пароль, помечает его как конфиденциальный, Buffera по умолчанию не сохраняет такую запись. В настройках можно включить сохранение этих записей в зашифрованном виде.
Любую другую запись тоже можно зашифровать вручную через действие «Скрыть». Содержимое записи в истории шифруется с помощью AES-256-GCM, а ключ хранится отдельно, в системной Связке ключей macOS. Buffera использует его, когда вы явно просматриваете или копируете скрытое содержимое.

Скрытые записи не используются в поиске, распознавании текста и ответах ассистента. Их содержимое также недоступно внешним агентам через MCP.
Buffera ориентируется на отметку приложения-источника, поэтому пароль, скопированный как обычный текст, автоматически секретным не станет. Такую запись можно скрыть вручную. Подписи и служебные сведения, например дата и приложение-источник, не шифруются.
Как делал и зачем делюсь
Разрабатывал Buffera с помощью Codex. Начал пользоваться сразу после создания первой рабочей версии, попутно исправлял неудобства и добавлял функции. Проверяли приложение я и друзья.
Сделал тул бесплатным и открыл исходники. Делюсь этим удобством с вами. Если чего-то не хватает, можно предложить функцию или прислать своё исправление.
Статью писал сам, ИИ только помогал.
kozliq
То что нам нужно было, спасибо!