Pretype — ваш Mac дописывает предложения за вас

pre·type /ˈpriː.taɪp/ · сущ.
текст, который существует до того, как вы его напечатали.
52 мс · локально
Лучший интерфейс — невидимый — он живёт у вашей каретки.
Tabслово ⇧Tabпредложение Escскрыть набрано 0 симв. · отправлено 0 байт
что это

Редактор кода дописывает строки за вас. Pretype делает то же со всем, что вы печатаете на Mac.

Тёмную половину печатаете вы — серую печатает модель на вашем собственном чипе.

Лучший интерфейс — невидимый — он живёт у вашей каретки.

чернила = вы синий = каретка, где они встречаются серый = модель
и всё остальное

Серый текст — это идея целиком, но не приложение целиком. Всё, что ниже, — та же локальная модель у той же каретки, на клавишах, где уже лежат ваши пальцы.

  • Tab

    Исправляет опечатку

    Словарь macOS, всплывающий над словом, — на том языке, который он читает вокруг каретки. Esc убирает подсказку, и про то же слово он больше не спросит.

  • Tab

    Пишет эмодзи словами

    macOS уже знает все имена Unicode, поэтому тысячи шорткодов предлагаются в той же плашке — без единой таблицы в комплекте.

  • ⌥Tab

    Переписывает корявое

    Грамматика и формулировка правятся на месте, вашей же интонацией, — или только что набранное слово, если ничего не выделено. Всегда сначала показывает, никогда не применяет за вашей спиной.

  • ⌥⇧Tab

    Пишет ответ целиком

    Перед пустым полем чата он читает переписку на экране и набрасывает следующее сообщение одним серым текстом. По желанию, OCR на самом Mac и только по этому аккорду.

  • сам

    Запоминает ваши слова

    Имена, сленг, фраза, которую вы печатаете десять раз в день, — из модели вашего собственного письма, собранной на этом Mac, отвечающей раньше, чем стартует LLM. Очистить или выключить можно в любой момент.

  • сам

    Знает, когда молчать

    Никогда в терминалах и менеджерах паролей, никогда при защищённом вводе macOS. В приложении, где вы его всё время игнорируете, он перестаёт предлагать — и говорит об этом в меню, с кнопкой «продолжить».

везде

Tab работает здесь. И в любом другом текстовом поле вашего Mac — без плагина под каждое приложение.

Mail
Messages
Slack
Notes
Safari
VS Code
Telegram
Obsidian
Claude
Xcode
Linear
любое поле
Pretype подключается к самому текстовому полю — нативные приложения, Electron, веб-вью. Сознательно молчит в терминалах, менеджерах паролей и при защищённом вводе.
как это работает

Это всё ещё ваши слова. Просто уже напечатанные.

1

Установите

Перетащите в «Программы». Без аккаунта и мастера настройки — иконка в строке меню, один запрос Универсального доступа и модель, скачанная один раз (≈2 ГБ).

Программы
2

Печатайте

Пишите как обычно. Ghost-текст появляется у каретки, подстроенный под шрифт самого поля. Не угадал? Просто печатайте дальше.

Mail
Кому: legal@ — Re: цифры за Q3
Спасибо за быстрый ответ — цифры сходятся, сегодня отправлю юристам.
3

Tab

Tab берёт слово, ⇧Tab — предложение. То, что заберёт следующий Tab, на тон темнее. Когда подсказки нет, Tab — это просто Tab.

Slack — #eng
Сообщение в #eng
кто-нибудь глянет #4821? он маленький — два файла, в основном тесты.
модели

Дополнение, исправления и ответы измерены каждое на своём бенчмарке — а модель по умолчанию подбирается под память вашего Mac. Можно просто не думать об этом.

Призрачный текст, который завершает Tab. Одиннадцать моделей на одних и тех же отложенных предложениях, с ранжированием по любому языку, на котором вы действительно пишете.

Выделенный текст, починенный на месте. Этот аккорд работает не на выбранной вами модели, а на её instruct-родственнике — поэтому здесь шесть строк-родственников, и каждая говорит, каким моделям она достаётся.

Целое сообщение, написанное по переписке на экране. Те же шесть родственников, что и у исправления, — и почти обратный порядок.

Точность первого слова, % всех случаев покрытие Латентность, p50
1 Gemma 4 E4B 8-bit 8.6 GB 23% 82% 145 мс
2 Gemma 4 E2B 8-bit 5.7 GB по умолчанию · 24 ГБ 22% 82% 75 мс
3 Gemma 4 E4B 6-bit 6.8 GB по умолчанию · 32 ГБ + 22% 81% 129 мс
4 Gemma 4 E2B 4-bit 3.5 GB по умолчанию · 16–18 ГБ 20% 81% 127 мс
5 Qwen3.5 2B 1.6 GB по умолчанию · 8 ГБ 15% 74% 93 мс
6 MiniCPM5 1B 2.2 GB 13% 72% 49 мс
7 Qwen2.5 0.5B 1.0 GB 12% 74% 79 мс
8 Ternary Bonsai 4B 1.1 GB 12% 72% 102 мс
9 LFM2.5 1.2B 2.2 GB 11% 67% 59 мс
10 Gemma 4 E4B 4-bit 5.0 GB 10% 72% 151 мс
11 Apple Intelligence 0 GB 9% 75% 430 мс

Размер точки — память в RAM (полая — встроена в macOS) · покрытие — доля случаев с ответом · ± — язык против среднего модели по 17 языкам

Точность первого слова, молчание — промах; сопоставленные ячейки (OpenSubtitles · Tatoeba · Leipzig) · ячейки по языкам тонкие (±5–10 пп) — сравнивайте модели внутри языка, а не числа между языками · 07.2026

Точное восстановление, % из 510 строк предложено Латентность, p50
1 Gemma E4B-it 4-bit 5.0 GB · для Gemma E4B tiers · E2B 8-bit 65% 89% 1523 мс
2 Gemma E2B-it 4-bit 3.5 GB · для Gemma E2B 4-bit 50% 90% 378 мс
3 Qwen3.5 2B 1.6 GB · исправляет сама собой 32% 74% 255 мс
4 Ternary Bonsai 4B 1.1 GB · исправляет сама собой 21% 43% 324 мс
5 Qwen2.5 0.5B-it 0.4 GB · для Qwen2.5 0.5B 11% 41% 185 мс
6 MiniCPM5 1B-it 2.2 GB · для MiniCPM5 1B 4% 28% 668 мс

Усы — 95% интервал · красная риска — как часто модель переписывает строку, в которой и так всё было верно (170 чистых контролей) · предложено — доля строк, где модель вообще что-то предложила · размер точки — память в RAM

Одна настоящая опечатка на строку, 17 языков, через реальный пайплайн приложения — гейт минимальной правки уже учтён в числах. Верное исправление, сформулированное иначе, считается промахом, так что практическая польза выше этой планки. В ячейке одного языка 30 строк — читайте усы, а не число. Тиры E4B 8-bit и 6-bit работают на 6-битном родственнике, которого прогон не покрыл; строка 4-bit — его измеренный минимум. Apple Intelligence в этом прогоне нет · 07.2026

Годный черновик, % из 570 переписок ответила Латентность, p50
1 MiniCPM5 1B-it 2.2 GB · для MiniCPM5 1B 56% 94% 1801 мс
2 Qwen3.5 2B 1.6 GB · исправляет сама собой 46% 100% 448 мс
3 Qwen2.5 0.5B-it 0.4 GB · для Qwen2.5 0.5B 38% 94% 345 мс
4 Gemma E4B-it 4-bit 5.0 GB · для Gemma E4B tiers · E2B 8-bit 33% 100% 532 мс
5 Gemma E2B-it 4-bit 3.5 GB · для Gemma E2B 4-bit 32% 100% 356 мс
6 Ternary Bonsai 4B 1.1 GB · исправляет сама собой 21% 91% 324 мс

Усы — 95% интервал · ответила — доля случаев, где модель вообще написала черновик · размер точки — память в RAM · ± — язык против итога модели по 19 языкам

Черновик считается годным, если он на языке переписки и не пересказывает экран, — это нижняя граница пригодности, а не оценка качества; близость к эталону оказалась слишком шумной. 19 языков, по 30 переписок, поэтому ячейки языков широкие — читайте усы. Apple Intelligence в этом прогоне нет · 07.2026

приложение

Каждая настройка знает свою измеренную цену.

Три панели — отображение, модель, персонализация. Наведите на любой контрол — Pretype покажет, что он улучшает и чего стоит, по реальным замерам.

Inline-текст или плавающая панель, клавиша принятия, яркость ghost-текста с живым предпросмотром — и отключение для отдельных приложений.

Настройки Pretype, вкладка General: режимы показа подсказок, горячая клавиша, слайдер яркости ghost-текста и исключения по приложениям.
идеология

Ваши слова принадлежат вам.

облачный путь
вы печатаете » их сервер » их модель » их логи
подписка, аккаунт, API-ключ
политика конфиденциальности, которую вы пролистали с надеждой
автокомплит, который отключается в самолёте
путь pretype
вы печатаете » ваш чип » ghost-текст
$0 — бесплатно, лицензия MIT, без аккаунта
политика конфиденциальности, которую можно скомпилировать
работает в авиарежиме, всегда
всё, что pretype вообще отправляет в сеть
ваш текст, ваши нажатия
» никуда
0 байт, всегда — по архитектуре
веса модели ≈1,6–2,2 ГБ
« Hugging Face
один раз, при первом запуске
проверка версии, без данных
» GitHub Releases
раз в день · отключается в настройках
честно по умолчанию — ему нужно разрешение Универсального доступа, то самое, которое попросил бы кейлоггер. Именно поэтому весь путь ввода открыт — и достаточно короток, чтобы прочитать за чашкой кофе:
код

Не верьте приватности на слово — весь путь ввода — это три файла. Прочитайте их, прежде чем доверять.

AXText.swift 570 строк · читает поле
/// Fallback for apps whose focus
/// notifications never fire (some
/// Electron builds): ask the system-
/// wide element who has focus now.
static func
systemFocusedTextElement()
    -> AXUIElement? {
  let sys =
    AXUIElementCreateSystemWide()
  guard CopyAttributeValue(sys,
    kAXFocusedUIElementAttribute,
    &ref) == .success
  else { return nil }
  return isEditableTextElement(el)
    ? el : nil
}
KeyTap.swift 83 строки · ловит Tab
/// CGEvent tap on key-down events.
/// The handler returns `true` to
/// swallow the event — used to eat
/// Tab while a suggestion is shown.
final class KeyTap {
  func start() {
    let mask = CGEventMask(
      1 << CGEventType
        .keyDown.rawValue)
    tapPort = CGEvent.tapCreate(
      tap: .cgSessionEventTap,
      place: .headInsertEventTap,
      options: .defaultTap,
      eventsOfInterest: mask,
      ...)
  }
}
TextInjector.swift 63 строки · печатает обратно
/// Inserts text by posting synthetic
/// keyboard events — the most app-
/// agnostic path (AppKit, Electron,
/// web views, terminals alike).
enum TextInjector {
  /// Tags our synthetic events so
  /// the key tap ignores them.
  static let magicTag: Int64 =
    0x5052_5459 // "PRTY"

  static func insert(_ t: String) {
    for c in utf16Chunks(t.utf16) {
      post(chunk: c, keyDown: true)
      post(chunk: c, keyDown: false)
    }
  }
}
Рис. 1 — дословно из репозитория. 716 строк между вашими клавишами и ghost-текстом. бесплатно · MIT · без аккаунта github.com/nikiomori/Pretype

Одна клавиша между вами и концом предложения.

macOS · Apple Siliconмодель ≈1,6–2,2 ГБ, скачивается один разбесплатно · MIT · без аккаунта