VoiceInk Custom Commands: отправьте диктовку в скрипт вместо вставки

Custom Command (своя команда) это один из режимов вывода в VoiceInk. Вместо вставки VoiceInk передаёт готовый текст диктовки команде оболочки, которую вы пишете, и эта команда решает, что дальше: дописать текст в заметку, открыть поиск, вызвать ваш скрипт или отправить текст в сервис, который вы запустили. Это самое гибкое, что VoiceInk умеет делать с текстом, и у него есть несколько жёстких ограничений, которые стоит знать до того, как на нём что-то строить.

Я разрабатываю YapToText, другое приложение для диктовки на Mac, поэтому читайте мои слова о VoiceInk с учётом этого. Все сведения о VoiceInk здесь взяты из его собственной документации, прочитанной 10 октября 2026 года.

Загрузить YapToText в Mac App StoreБесплатно. Без учётной записи и без закрытых функций, для macOS 14 или новее на Mac с чипом Apple. Исходный код на GitHub.

Что получает команда

VoiceInk отправляет один и тот же итоговый текст двумя способами: на стандартный ввод и в переменной $VOICEINK_TRANSCRIPT. Текст в кодировке UTF-8, и документация просит заключать переменную в кавычки, чтобы сохранились пробелы, знаки препинания и переносы строк.

  • Когда AI Enhancement (улучшение с помощью ИИ) выключено. Расшифровка после форматирования VoiceInk и замен слов.
  • Когда AI Enhancement включено и работает. Улучшенный текст.
  • Когда AI Enhancement пропущено или завершилось ошибкой. Обычная итоговая расшифровка.

Команда никогда не получает напрямую ни аудио, ни промпт, ни выделенный текст, ни содержимое буфера обмена или экрана. Если нужно, чтобы контекст влиял на результат, документация советует использовать промпт и Context Awareness (учёт контекста), тогда он уже будет в итоговом тексте.

Как она запускается

Из документации VoiceInk, раздел Custom Commands, прочитанной 10 октября 2026 года.

ДетальПоведение
Оболочка/bin/zsh -lc
Тайм-аут10 секунд, затем VoiceInk останавливает команду
РазрешенияТе же права пользователя macOS, что и у VoiceInk
Окно записиЗакрывается до запуска команды
УспехКод выхода 0. Любой другой считается ошибкой
ВыводСтандартный вывод и ошибки сохраняются для диагностики и никогда не вставляются в приложение
Команды не найденыVoiceInk пробует PATH вашей оболочки. Если не вышло, укажите полный путь, например /opt/homebrew/bin/tool

Ограничения, на которых спотыкаются

  • Ничего не вставляется за вас. Если текст всё же нужен в приложении, ваша команда должна сама скопировать или вставить его.
  • Десять секунд, без вопросов. Команда не может ждать ввода. Для более долгой работы запустите свой фоновый процесс и быстро завершитесь.
  • Сохранённая расшифровка не меняется. То, что команда выводит, обратно не записывается.
  • Нет Auto Send (автоотправка). Auto Send работает только с выводом Paste output (вставка), но не с Custom Command.
  • Только живая диктовка. Файлы из очереди Transcribe file (расшифровка файла) сохраняются без запуска команд вывода.
  • Пустая команда не допускается. Режим с пустой командой сохранить нельзя.

Встроенные шаблоны

Из документации VoiceInk, раздел Custom Commands, прочитанной 10 октября 2026 года.

ШаблонЧто делает
Paste and Press TabКопирует текст, вставляет его, затем нажимает Tab
Lowercase and PasteПереводит текст в нижний регистр, копирует и вставляет
Remove Trailing Period and PasteУбирает одну точку в конце перед вставкой
Append to JournalДобавляет текст в ~/Documents/VoiceInk/journal.md
Search WebОткрывает веб-поиск по тексту

Документация советует начать с шаблона и изменить его. Два самых простых примера оттуда: скопировать текст и дописать его в заметку.

printf "%s" "$VOICEINK_TRANSCRIPT" | pbcopy
mkdir -p "$HOME/Documents/VoiceInk"
printf -- "- %s\n" "$VOICEINK_TRANSCRIPT" >> "$HOME/Documents/VoiceInk/notes.md"

Как проверить, сработало ли

После Custom Command VoiceInk не показывает ни сообщения об успехе, ни об ошибке. Документация приводит команду для Терминала, которая показывает журналы доставки за последние 10 минут, в том числе то, завершилась ли команда успешно, с ошибкой или не уложилась в 10 секунд:

/usr/bin/log show --last 10m --style compact \
  --predicate 'subsystem == "com.prakashjoshipax.voiceink" AND category == "TranscriptionDelivery"'

Документация предупреждает, что эти журналы могут содержать продиктованный текст. А если ваша команда отправляет текст в веб-сервис, этот сервис его получает: VoiceInk лишь запускает то, что вы настроили.

Что в этом умеет YapToText

VoiceInk по его документации, прочитанной 10 октября 2026 года. YapToText по его собственным настройкам.

VoiceInkYapToText
Запустить команду оболочки с текстомДа, вывод Custom CommandНет
Вставить там, где курсорPaste outputPaste, по умолчанию
Печатать вместо вставкиНа этой странице не описаноType character by character
Только в буфер обменаС командой вроде pbcopyCopy to clipboard only
Нажать клавишу после вставкиШаблон Paste and Press TabReturn или Command Return для каждого приложения
Проверить до вставкиНа этой странице не описаноReview before inserting, по умолчанию выключено

Если вы хотите управлять своими скриптами с помощью диктовки, Custom Command в VoiceInk умеет то, чего не умеет YapToText. Если нужен текст у курсора, подогнанный к окружающим словам, YapToText делает это по умолчанию и скрипт не требуется. О том, где задаются режимы вывода, рассказывает страница о режимах VoiceInk, а сравнение VoiceInk и superwhisper сопоставляет его с другим приложением, построенным на режимах.

Загрузить YapToText в Mac App StoreБесплатно. Без учётной записи и без закрытых функций, для macOS 14 или новее на Mac с чипом Apple. Исходный код на GitHub.

Коротко

  • Что это. Режим вывода, который запускает вашу команду оболочки с итоговым текстом.
  • Текст. На стандартном вводе и в $VOICEINK_TRANSCRIPT.
  • Ограничения. 10 секунд, без ввода, без автоматической вставки, только живая диктовка.
  • Отладка. В приложении сообщений нет. Читайте журнал командой для Терминала выше.
  • С чего начать. Измените один из пяти шаблонов.

Если VoiceInk изменит работу Custom Commands, создайте issue на GitHub, и я обновлю страницу. Читаю каждое.

Загрузить YapToText в Mac App StoreБесплатно. Без учётной записи и без закрытых функций, для macOS 14 или новее на Mac с чипом Apple. Исходный код на GitHub.

Кто пишет. Ryleigh Newman разрабатывает программы, с трудом печатает на клавиатуре и каждый день диктует в YapToText, приложении, которому посвящён этот сайт. Эта страница переведена с английского. Интерфейс приложения и остальные страницы сайта на английском. Подробнее о проекте, на английском.

Руководства

Другие руководства, на английском

Источники

Вопросы

Что такое Custom Command в VoiceInk?

Режим вывода. Вместо вставки VoiceInk запускает написанную вами команду оболочки и передаёт ей итоговый текст диктовки.

Как Custom Command в VoiceInk получает текст?

На стандартном вводе и в переменной $VOICEINK_TRANSCRIPT, в кодировке UTF-8. Заключайте переменную в кавычки, чтобы сохранить пробелы и переносы строк.

Почему моя Custom Command в VoiceInk ничего не вставила?

Вывод Custom Command сам ничего не вставляет. Ваша команда должна сама скопировать или вставить текст, как это делает шаблон Paste and Press Tab.

Как долго может работать Custom Command в VoiceInk?

10 секунд. После этого VoiceInk её останавливает. Для более долгой работы запустите фоновый процесс.

Есть ли в YapToText собственные команды, как в VoiceInk?

Команды оболочки после диктовки он не запускает. Он вставляет или печатает текст у курсора, может только копировать в буфер обмена и может нажать Return после того, как текст появился.