Composer Cursor — место, где происходит большая часть тяжёлой работы ИИ: правки в нескольких файлах, рефакторы, скаффолд новой фичи. Это и место, где печать рушится быстрее всего. Промпты, дающие хорошие правки, длинные: контекст, ограничения, что трогать и что нет, почему. Печатать 200 слов посреди задачи — трение.

Это гид по использованию голоса именно с Cursor — composer, inline chat и ask mode — на Mac.

Почему голос подходит Cursor лучше других ИИ-инструментов

Cursor использует ваш промпт, чтобы решить, какие файлы загрузить в контекст. Чем длиннее и конкретнее — тем лучше его выбор. Двухстрочный напечатанный промпт даёт окно из двух файлов. Произнесённый абзац с путями, поведением и ограничениями — десяток правильных.

Вторая причина: промпты composer — batch-операции. Описываете единицу работы, а не разговор. Батчи любят контекст наперёд. Голос так и делает: начало с ситуации, потом запрос, в конце ограничения. Это форма, которую Cursor хочет.

Как выглядит хороший устный промпт для Cursor

Печатно (43 слова):

Отрефакторь AuthGuard под новую систему прав. Сейчас проверяет роли напрямую — не масштабируется.

Устно (180 слов):

Компонент AuthGuard в src/components/auth/AuthGuard.tsx сейчас проверяет роли напрямую: user.role равно admin или user.role равно editor. Мы только что выкатили новую систему прав в src/lib/permissions.ts с hasPermission и useHasPermission. Хочу отрефакторить AuthGuard, чтобы он принимал нужное право как prop вместо проверки ролей. Посмотри, как новая система используется в src/components/admin/UserList.tsx — там паттерн. Сохрани обратную совместимость: пропом может быть roles или permission; если оба — используй permission. Обнови три callsite в src/pages, которые используют AuthGuard с roles, переведи их на permission. Не трогай легаси-админку под src/pages/admin-legacy — её сносим следующий спринт, мигрировать не стоит.

Cursor выдаёт второй случай за один проход. По первому — получите diff, который ошибается в трёх файлах и пропускает callsite’ы.

Разница не в вашем интеллекте — в том, заставила ли вас фрикшен печати сжимать контекст.

Настройка голоса под Cursor на Mac

Cursor — Electron, поэтому работает всё, что вставляет текст у курсора. Три варианта:

Встроенная диктовка Apple

Бесплатно, on-device на macOS Tahoe. Включается в Системных настройках > Клавиатура > Диктовка. Нажали клавишу — поговорили — нажали ещё раз. Работает в любой панели Cursor.

Где плохо: техсловарь. Пути файлов, имена переменных и библиотек, CLI — Apple их ломает. «src slash components slash auth guard dot tsx» становится мусором. Норм для естественного языка, мучительно для код-промптов.

Wispr Flow, Superwhisper и другие диктовалки

Расшифровывают с лучшей обработкой техлексики. Вставляют у курсора, как Apple Dictation, но с очисткой, длинной точностью и (по приложению) облаком/локалью.

Vext с YOLO Mode

Vext — наш вариант. $49 разово, локальный Parakeet на Apple Silicon, плюс фича специально под ИИ-инструменты: YOLO авто-отправляет промпт после вставки. Сказали, отпустили — composer уже выполняет.

Сетап под Cursor:

  1. Установка: brew install muvon/tap/vext
  2. Разрешите Accessibility
  3. В Settings > Modes включите Enhance для диктовки (чистка)
  4. Включите YOLO, если хотите авто-отправку
  5. Откройте Cursor, кликните в composer, удерживайте клавишу, говорите

Шаг Enhance важнее, чем кажется. Сырой ввод даёт composer’у грязный текст, который тратит токены и сбивает выбор файлов. Чистый ("проблема в том, что…" вместо "ну то есть проблема в типа эм…") передаёт ту же мысль с меньшим шумом.

Где использовать голос в Cursor

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

Inline chat (Cmd+K) — нормально для промптов среднего размера. «Переведи эту функцию на async/await, форму обработки ошибок сохрани» — читается естественно вслух.

Ask mode — для исследовательских вопросов. «Почему этот компонент перерисовывается на каждый ввод пользователя? Пройди по пропам и посмотри на context provider’ы».

Tab autocomplete — не парьтесь. Поток слишком быстрый, чтобы голос помогал.

Чат-панель для уточнений — голосом — содержательное («посмотри реализацию в fooService.ts и объясни, почему мы там ловим ошибку валидации»), печатью — короткое («да», «ещё раз», «другой подход»).

Что меняется в работе с настроенным голосом

Холодный старт

Первое сообщение в сессии Cursor — самое важное; он сеет контекст. Печатью сжимаете, голосом — выводите вперёд:

Делаю страницу настроек биллинга. У нас React + TanStack Query для фетчинга, Zustand для клиентского стейта, дизайн-система в src/ui. Нужно встроить Stripe customer portal — есть stripeService.ts с createPortalSession, на фронте не подключён. Хочу страницу app/settings/billing: показать текущий план, кнопка «открыть портал Stripe в новой вкладке», следующая дата и сумма счёта. Используй карточки из дизайн-системы. Новых зависимостей не добавляй.

Этого Cursor’у хватает, чтобы за раз скаффолдить страницу.

Багрепорты ИИ

Баги — нарратив, и устно идут быстрее и точнее:

Автосейв редактора иногда сохраняет старый контент. Воспроизводится сложно, но кажется поймал. Когда пользователь печатает быстро и сеть медленная, оптимистичный апдейт ставит локальный стейт в новое содержимое, но если ответ предыдущего сейва приходит после нового, локальный стейт перезатирается старым. Гонка где-то в useAutoSave в src/hooks/useAutoSave.ts. Посмотри порядок запросов и почини. Используй инкрементальный sequence number, чтобы запоздавшие ответы дропались.

Code review коллеги

Откройте диф в Cursor, надиктовывайте комментарии через composer с «оставь комментарий, который говорит…» — гораздо быстрее печати. Особенно хорошо, когда нужно сформулировать обоснование, а не просто показать строку.

Частые вопросы

В Cursor есть встроенный голос?

Толком нет. Нативной диктовки нет — опираетесь на macOS или сторонние. Cursor для голосовых инструментов — просто Electron-поле, что и удобно: всё, что вставляет в Mac, вставит и в Cursor.

ИИ не путается от разговорных фраз?

GPT-4o и Claude Sonnet нормально обрабатывают разговорную речь. Слова-паразиты и рестарты — давно в тренировочных данных. Риск — не понимание, а лишние токены. Это решается очисткой типа Enhance в Vext.

Стоит ли диктовать код?

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

Честный компромисс

Системная диктовка чего-то стоит — деньги, загрузка модели, разрешение Accessibility, неловкая первая неделя «разговоров с компьютером». Wispr Flow — $15/мес и кроссплатформенно. Vext — $49 разово и только локально на Apple Silicon. Apple Dictation — бесплатно, но ограниченно.

Если живёте в Cursor — то есть пишете больше промптов, чем писем — платное приложение окупится за пару недель сэкономленной печати. Если используете Cursor эпизодически — Apple Dictation хватит.

В любом случае разблокировка одна и та же: промпты становятся длиннее, потому что говорить легче, чем печатать, а Cursor отвечает на длинные лучше. Очистка — бонус.