Скачать
Русский
Добавить в Chrome
РАСШИРЕНИЕ БРАУЗЕРА
Один исходный код. Два браузера. Никаких серверов между ними.
То же ядро на Rust, скомпилированное в WebAssembly и работающее во вкладке, где вы уже находитесь. Chrome, Edge и Firefox собираются из одного манифеста, поэтому функция не появляется в одном и тихо не пропадает в другом.
Chrome
116+
Edge
116+
Firefox
128+
ЧТО ОНО УМЕЕТ
Восемь функций — и ничего, что «звонит домой».
Каждое действие ниже запускаете вы. У расширения нет постоянного контент-скрипта и оно не запрашивает разрешений на сайты, поэтому не может следить за посещаемыми страницами.
Автозаполнение по сочетанию клавиш
Нажмите ⌘⇧Y (Ctrl+Shift+Y) — и код для текущего сайта вставится в позицию курсора. Он пишет только в активное редактируемое текстовое поле и никогда не отправляет форму за вас.
⌘⇧Y · Ctrl+Shift+Y
Копирование из контекстного меню
Щёлкните правой кнопкой в любом месте → 2FAU → выберите аккаунт, и его код окажется в буфере обмена. Значок мигнёт зелёным. Работает и на страницах, которые расширение не может скриптовать.
contextMenus
Всплывающее окно по клавише
⌘⇧U (Ctrl+Shift+U) открывает всё хранилище: поиск, копирование, добавление, сортировка — тот же интерфейс на React, что и в приложении для компьютера, а не урезанная сборка.
⌘⇧U · Ctrl+Shift+U
Сканируйте QR-код со вкладки
Регистрируетесь где-то заново? Захватите QR-код прямо с видимой страницы из всплывающего окна. Разрешение выдаётся вашим нажатием на кнопку.
activeTab
Зашифрованное хранение по частям
Запечатанное хранилище разбито на части в base64 в chrome.storage.sync по 6 КБ на часть. Прочитав сырое хранилище, вы получите манифест и непрозрачные blob-ы — ничего читаемого.
6144 chars/chunk
Защита по ревизиям, а не «побеждает последняя запись»
Манифест — это точка фиксации. Если второй браузер записал одновременно с вами, запускается слияние на Rust — «побеждает новейшее» с надгробиями — вместо того чтобы кто-то из вас потерял аккаунт.
twofau_core::merge
Настраиваемая автоблокировка
Производный ключ хранится в chrome.storage.session — не парольная фраза — а таймер chrome.alarms очищает его через заданный вами в настройках интервал.
chrome.alarms
Необязательный мост к компьютеру
Направьте расширение на приложение для компьютера по локальной петле — и они синхронизируются напрямую. Это необязательное разрешение только для 127.0.0.1, отключено, пока вы его не включите.
127.0.0.1 · opt-in
CHROME / EDGE ПРОТИВ FIREFOX
Чем на самом деле различаются две сборки.
Оба используют MV3 и один и тот же интерфейс и ядро WASM. Gecko требует пяти уступок, а манифест Firefox генерируется из манифеста Chrome, поэтому они не могут разойтись.
CHROME / EDGE
FIREFOX
Фоновый скрипт
service worker
страница событий · модульные скрипты
Буфер обмена
offscreen-документ
прямая запись в DOM в фоне
Страница настроек
options_page
options_ui · открывается во вкладке
разрешение offscreen
требуется
отброшено — неизвестно Gecko
Минимальная версия
Chrome 116
Firefox 128
Распространение
Chrome Web Store
AMO, подписанный .xpi
scripts/firefox-manifest.mjs выводит манифест Gecko из манифеста Chrome — чистая функция с модульными тестами, поэтому разрешение, добавленное для Chrome, попадает в сборку Firefox или проваливает тесты.
РАЗРЕШЕНИЯ
Семь разрешений. Без доступа к сайтам.
Запрос при установке намеренно короткий. В нём нет строки «читать ваши данные на всех сайтах», потому что расширение её никогда не запрашивает.
storage
Хранит части запечатанного хранилища и ваши настройки.
contextMenus
Формирует контекстное меню с недавними аккаунтами.
activeTab
Разовое разрешение на вкладку, с которой вы работаете, — никогда не постоянный доступ.
scripting
Вставляет код в активное поле, когда вы нажимаете сочетание клавиш.
alarms
Запускает таймер автоблокировки, который очищает сеансовый ключ.
offscreen
Только Chrome: скрытый документ, используемый исключительно для записи в буфер обмена.
notifications
Сообщает о неудачном копировании или заполнении вместо того, чтобы молчать.
One optional permission: http://127.0.0.1/*
Запрашивается, только если вы включаете мост к компьютеру, и ограничено локальной петлёй, поэтому не имеет выхода в сеть. Оставьте его выключенным — и расширение полностью автономно.
УСТАНОВКА
Добавьте в браузер, которым вы действительно пользуетесь.
Бесплатно, лицензия MIT, и то же хранилище, откуда бы вы ни пришли — из Chrome, Edge или Firefox.
v0.1.0 · MV3 · аккаунт не требуется · соберите сами из исходного кода
© 2026 2FAu · Лицензия MIT
Как это работает
Безопасность
Документация
GitHub
Сделано на Rust и Tauri 2