VoiceInk Custom Commands: отправьте диктовку в скрипт вместо вставки
Текст: Ryleigh Newman · Опубликовано
Custom Command (своя команда) это один из режимов вывода в VoiceInk. Вместо вставки VoiceInk передаёт готовый текст диктовки команде оболочки, которую вы пишете, и эта команда решает, что дальше: дописать текст в заметку, открыть поиск, вызвать ваш скрипт или отправить текст в сервис, который вы запустили. Это самое гибкое, что VoiceInk умеет делать с текстом, и у него есть несколько жёстких ограничений, которые стоит знать до того, как на нём что-то строить.
Я разрабатываю YapToText, другое приложение для диктовки на Mac, поэтому читайте мои слова о VoiceInk с учётом этого. Все сведения о VoiceInk здесь взяты из его собственной документации, прочитанной 10 октября 2026 года.
Бесплатно. Без учётной записи и без закрытых функций, для macOS 14 или новее на Mac с чипом Apple. Исходный код на GitHub.
Это руководство на других языках: English, العربية, Čeština, Dansk, Deutsch, Ελληνικά, Español, Suomi, Français, עברית, हिन्दी, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Norsk, Nederlands, Polski, Português, Română, Slovenčina, Svenska, ไทย, Türkçe, Українська, Tiếng Việt, 简体中文, 繁體中文
Что получает команда
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" | pbcopymkdir -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 по его собственным настройкам.
| VoiceInk | YapToText | |
|---|---|---|
| Запустить команду оболочки с текстом | Да, вывод Custom Command | Нет |
| Вставить там, где курсор | Paste output | Paste, по умолчанию |
| Печатать вместо вставки | На этой странице не описано | Type character by character |
| Только в буфер обмена | С командой вроде pbcopy | Copy to clipboard only |
| Нажать клавишу после вставки | Шаблон Paste and Press Tab | Return или Command Return для каждого приложения |
| Проверить до вставки | На этой странице не описано | Review before inserting, по умолчанию выключено |
Если вы хотите управлять своими скриптами с помощью диктовки, Custom Command в VoiceInk умеет то, чего не умеет YapToText. Если нужен текст у курсора, подогнанный к окружающим словам, YapToText делает это по умолчанию и скрипт не требуется. О том, где задаются режимы вывода, рассказывает страница о режимах VoiceInk, а сравнение VoiceInk и superwhisper сопоставляет его с другим приложением, построенным на режимах.
Бесплатно. Без учётной записи и без закрытых функций, для macOS 14 или новее на Mac с чипом Apple. Исходный код на GitHub.
Коротко
- Что это. Режим вывода, который запускает вашу команду оболочки с итоговым текстом.
- Текст. На стандартном вводе и в $VOICEINK_TRANSCRIPT.
- Ограничения. 10 секунд, без ввода, без автоматической вставки, только живая диктовка.
- Отладка. В приложении сообщений нет. Читайте журнал командой для Терминала выше.
- С чего начать. Измените один из пяти шаблонов.
Если VoiceInk изменит работу Custom Commands, создайте issue на GitHub, и я обновлю страницу. Читаю каждое.
Бесплатно. Без учётной записи и без закрытых функций, для macOS 14 или новее на Mac с чипом Apple. Исходный код на GitHub.
Руководства
Другие руководства, на английском
Источники
- https://tryvoiceink.com/docs/custom-commands (проверено 10.10.2026)
- https://tryvoiceink.com/docs/mode-settings (проверено 10.10.2026)
- https://github.com/ryleighnewman/YapToText (проверено 10.10.2026)
- https://apps.apple.com/us/app/yaptotext/id6786382289 (проверено 10.10.2026)
Вопросы
Что такое 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 после того, как текст появился.