Afina Browser — работает на Chromium и совмещает антидетект-браузер со встроенным no-code конструктором автоматизации.
Каждый аккаунт в изолированном профиле со своим отпечатком, прокси, куками и кешем, поэтому сайты не связывают аккаунты.
Массовое создание до 1000 профилей, HTTP и SOCKS5 с нативной маршрутизацией UDP, проверка репутации IP и killswitch, командные роли с шифрованной синхронизацией, локальный REST API, доступ CDP для Puppeteer и Playwright, JS-модули и IMAP-клиент. Windows и macOS.
Afina — антидетект-браузер на Chromium.
«Создай профиль, запусти браузер и открой сайт» — в Afina такую задачу можно поручить Claude прямо в чате. Для повседневной рутины у этого антика тоже есть инструменты: повторять действия сразу в нескольких окнах, собирать сценарии без написания кода и получать письма внутри приложения.
Мы разобрали весь путь от регистрации до подключения ИИ. Показываем, как настроить Afina под свои задачи, что можно автоматизировать и какие настройки стоит проверить до запуска первых профилей.
Установщик скачивается с официального сайта afina.io. Аккаунт можно создать сразу в приложении. Для этого понадобится:
Войти можно также через Google или Telegram. Реферальный код вводится в окне регистрации по желанию.

Экран регистрации в приложении Afina
После регистрации на 4 дня бесплатно включается тариф Base. За привязку Telegram в личном кабинете my.afina.io дают $9 на баланс.
Тарифы начинаются с $9 в месяц за 20 профилей. Для 100 профилей есть Base за $29, для 1000 — Max за $129.

Страница тарифов afina.io, помесячная оплата
При оплате сразу за 3, 6, 12 и 24 месяца есть скидка: 10, 20, 30 и 40%. Оплатить подписку можно картой или криптовалютой; доступные варианты показаны при оплате.
При переходе на другой тариф оставшиеся дни пересчитают в дни нового. Индивидуальный тариф можно обсудить с поддержкой.
По документации Afina нужна 64-битная Windows 10 версии 1803 или новее, 2 ядра, 4 ГБ RAM и 2-3 ГБ на диске. Рекомендуют 4 ядра, 8-16 ГБ памяти и от 10 ГБ на SSD. На чистой Windows 10 нужно будет отдельно поставить Microsoft Edge WebView2 Runtime, в установщике его нет.
По данным разработчика, один запущенный профиль занимает примерно 300-500 МБ памяти. На моем ноутбуке с 16 ГБ восемь профилей одновременно работали без подвисаний.
Afina работает и на устройствах или серверах без видеокарты, за графику в таком случае будет отвечать процессор. Например, сервер с 4 vCPU и 8 ГБ памяти, по данным разработчиков, потянет 5-10 профилей, на 32 vCPU и 64 ГБ — уже 60-100.

В настройках можно выбрать папку для профилей и масштаб интерфейса. Левую панель можно свернуть до иконок или раскрывать при наведении.
Сразу после регистрации Afina просит придумать мастер-пароль и сохранить файл ключей. Этим файлом шифруются данные, а сам он закрыт мастер-паролем. Копию файла сохраните отдельно, без нее после переустановки Windows или переезда на другой компьютер данные не открыть. Если потерять файл или мастер-пароль, данные не восстановит даже поддержка.
Копию файла можно держать в бесплатном приложении Afina Vault для iOS и Android. Переключатель «Сохранить файл ключей» и QR-код для переноса находятся во вкладке «Облако» и открываются после ввода мастер-пароля.

Вкладка «Облако»: сохранение файла ключей и перенос в Afina Vault
Во вкладке «Безопасность» настраиваются автоблокировка интерфейса через выбранное время без действий, полное шифрование, проверка целостности расширений и локальные резервные копии.

Основные настройки и вкладка «Безопасность»
Иконка с глазом внизу левой панели включает защиту окна Afina от записи экрана. Перед включением Afina предупреждает, что в TeamViewer, AnyDesk, Zoom, OBS и похожих программах окно может отображаться черным.

Подтверждение защиты от записи экрана
В карточке профиля есть два места для переменных скриптов:
Для теста добавляю в «Дополнительные данные» логин demo_user, а в «Зашифрованные данные» — пароль demo-pass-123. Эти данные будут нужны в скрипте входа на сайт.

Карточка профиля → «Дополнительные данные»

Карточка профиля → «Зашифрованные данные»
Первый профиль создаю вручную. На вкладке «Основные» задаются процессор, память, видеокарта и разрешение экрана, которые профиль покажет сайтам.

Новый аккаунт — вкладка «Основные» с блоком отпечатка
Операционную систему лучше ставить ту же, что на компьютере, потому что шрифты профиль берет из настоящей ОС.

Выбор видеоадаптера (WebGL Vendor и Renderer)
У всех 14 профилей, которые я создала, шум по умолчанию выключен везде. Canvas оставляю в режиме «Реальный», а шум, если нужен, включаю только на чем-то одном из WebGL, аудио и Rects. Часовой пояс и язык по умолчанию подставляются по IP.

Вкладка «Часовой пояс»: автоматический выбор по IP

Вкладка «Язык»: автоматический выбор по IP-адресу
Делаю 8 профилей sync-1…sync-8 для Synchronizer. Отпечатки Afina раздала разные, с тремя моделями видеокарт Intel и числом ядер от 4 до 12. Скорость массового создания зависит от тарифа.

Массовое создание: количество и префикс
Еще профили можно загрузить из Excel. Шаблон таблицы скачивается прямо в окне импорта, остается вписать имена и прокси.

Заполненный шаблон Excel
Группы и теги перечисляются через запятую.

Импорт из Excel: выбран файл с пятью профилями
Отпечаток можно поменять сразу у нескольких профилей. Выделяю два, в групповых действиях выбираю «Изменить отпечаток», ставлю «Случайно» для CPU и RAM и нажимаю «Назначить».

В карточках двух профилей значение RAM изменилось с 8 на 16 ГБ

WebGL: видеокарта из отпечатка профиля
Отдельно проверяю отпечаток профиля partnerkin-01 в BrowserLeaks. В разделе WebGL сайт видит Intel UHD Graphics, как и указано в карточке.
Для примера беру локальные HTTP- и SOCKS5-прокси из своего VPN-клиента.
Прокси можно добавлять по одному или списком. Для этого добавляю обе строки в окно массового добавления. Строка без схемы (host:port:login:password) считается HTTP, для SOCKS5 пишется socks5://host:port:login:password. В фигурных скобках можно добавить заметку, в квадратных — ссылку для смены IP. Кнопка «Проверить прокси» показывает статус, страну, тип и отметку UDP у SOCKS5.

Массовое добавление прокси: предпросмотр после проверки
Добавленные прокси попадают в общую таблицу с исходящим IP и флагом страны. Если нажать на значок рядом с IP, откроется карточка с провайдером, городом и часовым поясом.

Таблица прокси (исходящий IP скрыт)
Чтобы профиль работал через прокси, его выбирают в карточке профиля на вкладке «Прокси».
Во вкладке «Дополнительно» основных настроек выбирается сервис проверки прокси и есть общий переключатель «Отключить WebRTC».

«Дополнительно»: чекер прокси и WebRTC
После назначения прокси можно открыть BrowserLeaks и посмотреть, какой IP видят сайты и WebRTC. Для передачи UDP нужен SOCKS5-прокси с поддержкой UDP. IPv6-прокси Afina не поддерживает, нужны IPv4.
Synchronizer повторяет действия из одного окна во всех остальных и работает минимум с двумя запущенными профилями. Запускаю восемь профилей и нажимаю «Выровнять», окна встают сеткой 3×3 на выбранном мониторе. Эта кнопка только расставляет окна, повторение действий включается отдельно. Главное окно отмечается в таблице профилей.

Synchronizer: панель «Окна» и главное окно в таблице профилей
Ctrl+Shift+S в главном окне включает повторение действий, Ctrl+Shift+D выключает, Ctrl+Shift+Z раскладывает окна. На macOS вместо Ctrl используется Cmd, а для синхронизации нужно разрешение «Универсальный доступ».
Главное окно получает зеленую рамку, остальные — коричневую. Я набрала адрес и поисковый запрос на кириллице, ввод повторился во всех восьми окнах.

Синхронный ввод адреса в 8 профилях
На панели «Вкладки» 3 команды:

Панель «Вкладки»
Последняя открывает example.com во всех восьми окнах. Кнопки панели работают только при запущенной синхронизации. Окна можно разложить сеткой или каскадом (режим «Перекрытие»), кнопка «Закрыть окна» закрывает все браузеры сессии.

Адрес открыт во всех восьми профилях
Дальше собираю сценарий входа на тестовый сайт. Скрипт открывает страницу, ждет форму, подставляет логин и пароль из профиля (${login} и ${password}) и нажимает кнопку входа.

«Добавление скрипта»: название, «Закрыть вкладки», «Закрывать браузер» и режимы запуска
Блоки перетаскиваю с панели компонентов, соединить их можно вручную или автоматически. Начальный блок у сценария только один, его назначают через контекстное меню, там же к блоку крепится заметка.

Полотно скрипта «Демо-вход»
Скрипт запускается с окном браузера, в фоне без окна или совсем без браузера, если нужно, например, обработать данные. Перед запуском он может спросить у пользователя параметры. Для отладки есть пошаговый режим, он включается иконкой на нижней панели. После запуска появляется кнопка «→», и блоки выполняются по одному, текущий подсвечивается.

Пошаговый режим: текущий блок подсвечен
Если готовых блоков недостаточно, скрипт можно дополнить собственным модулем на Node.js. Afina сама создает папку с шаблоном. Код пишется в index.js, поля настроек описываются в settings.json, а зависимости программа ставит сама.

Папка модуля в проводнике
Каждый модуль подписывается ключом пользователя. Если в списке модулей подписи нет, ее ставят кнопкой рядом с названием.
Таблица модулей: «Подпись отсутствует»
Во встроенной базе SQLite можно хранить данные для скриптов, например логины и статусы обработки. В разделе «Базы данных» создаю подключение SQLite с именем accounts-db. Файл базы сохраняется в папку databases рядом с данными Afina. Во встроенном «Терминале запросов» создаю таблицу accounts и добавляю 3 тестовые записи, результат видно в таблице с типами колонок. У подключения есть импорт и экспорт.

Базы данных → Создание подключения SQLite

Таблица accounts с тестовыми записями
В скрипте данные читает блок «База данных». Запрос accounts WHERE profile = 'partnerkin-01' кладет результат в переменную row, и дальше логин берется как ${row[0].login}.
Пароли и токены для скриптов удобно хранить в «Ключах интеграции» и подставлять по имени, а не вписывать в каждый блок. Создаю ключ ext_password. В таблице его значение скрыто, а в скрипт он подставляется как ${ext_password}.

«Ключи интеграции»: значения скрыты
В браузере можно подключить Gmail. Обычный пароль аккаунта для IMAP не подойдет, нужен пароль приложения (App Password). Его создают в настройках Google после включения двухэтапной аутентификации. В окне «Добавить доступ к почте» указываю адрес, пароль приложения, сервер imap.gmail.com и порт 993 (SSL/TLS).
Для почты можно задать отдельный прокси. Кнопка «Загрузить папки с сервера» подтягивает папки Gmail, и сохранить доступ получится, только когда выбрана хотя бы одна.

«Добавить доступ к почте»: папки загружены, выбрана INBOX
После сохранения ящик появляется в таблице «Данные почты», а письма — в разделе «Письма». Внешние изображения в письмах по умолчанию не загружаются, чтобы не выдать IP.

Раздел «Письма»: письмо открыто прямо в Afina
Для одноразовых кодов добавляю в зашифрованные данные профиля переменную 2FA_DEMO с общедоступным тестовым секретом JBSWY3DPEHPK3PXP. По префиксу 2FA_ Afina понимает, для чего эта переменная.

Ключ 2FA_DEMO в зашифрованных данных профиля
Блок «Аутентификатор» выдает код, он виден в логе скрипта, а блок «Ввод» подставит его в поле подтверждения. Если код приходит на почту, письмо с ним найдет блок «Афина: Почта» по отправителю и тексту.

Лог скрипта: сгенерированный одноразовый код
Через MCP-сервер Afina можно управлять из чата с ИИ. Сервер ставится командой npx -y afina-mcp и работает с Claude Desktop, Claude Code, Cursor и другими клиентами. Понадобятся Node.js и API-ключ из основных настроек, остальное есть в инструкции к пакету afina-mcp.
Для Claude Code хватает файла .mcp.json в папке проекта; на Windows npx запускается через cmd /c.

Конфиг MCP для Claude Code (.mcp.json, ключ скрыт)
Прошу агента создать профиль с Windows. Он вызывает create_account, и в Afina появляется новый профиль mcp-demo.

Агент создает профиль mcp-demo через create_account
В этом диалоге агент запросил подтверждение перед остановкой и удалением профиля и объяснил, что delete_account переносит профиль в корзину, а hard_delete_account удаляет навсегда. Я ответила «да», и агент остановил профиль и отправил его в корзину.

Агент запрашивает подтверждение перед остановкой и удалением
Из своего кода Afina управляется через локальный REST API. Нужен тот же API-ключ из настроек, лимита запросов в сутки нет. Через API можно получать список задач с ошибками и использовать его в своей системе мониторинга.
Запуск профиля через POST /api/profiles/start возвращает wsEndpoint, к которому подключаются Playwright, Puppeteer или Selenium. В тесте Playwright подключился к профилю, открыл example.com, получил заголовок страницы и User-Agent и сохранил скриншот.

Терминал: Playwright подключается к профилю по wsEndpoint
Браузер Afina можно посоветовать тем, кто ведет десятки профилей и хочет со временем отдать рутину скриптам или своему агенту. Отпечаток настраивается вплоть до видеокарты и шума, профили создаются пачками или загружаются из Excel, а Synchronizer без сбоев повторил все нужные действия в восьми окнах. Продвинутому юзеру пригодятся REST API, к которому подключается Playwright, и MCP-сервер, через который Claude создал профиль по просьбе в чате.
Что можно выделить: