VoiceInkのCustom Command:音声入力を貼り付けずにスクリプトへ渡す

Custom Command(カスタムコマンド)は、VoiceInkの出力モードのひとつです。貼り付けの代わりに、VoiceInkは音声入力が終わったテキストを、自分で書いたシェルコマンドに渡し、その結果はコマンドが決めます。メモへの追記、検索を開く、自作のスクリプトを呼ぶ、自分で動かしているサービスに送信する、といったことができます。VoiceInkがテキストに対してできることのなかで、いちばん柔軟な機能です。ただし、使い始める前に知っておくべき厳しい制限がいくつかあります。

私は別のMac用音声入力アプリ、YapToTextを作っています。VoiceInkについて書いた内容は、その点をふまえて読んでください。ここに書いたVoiceInkの事実はすべて、2026年10月10日に読んだ公式ドキュメントにもとづいています。

Mac App StoreでYapToTextをダウンロード無料でダウンロードできます。アカウント不要で、機能の制限もありません。AppleシリコンのMac、macOS 14以降に対応しています。 ソースコードはGitHubにあります。

コマンドが受け取るもの

VoiceInkは、同じ最終テキストを2つの方法で渡します。標準入力と、変数 $VOICEINK_TRANSCRIPT です。テキストはUTF-8で、ドキュメントでは、空白、句読点、改行が壊れないように、この変数を引用符で囲むよう勧めています。

  • AI Enhancementがオフの場合。 VoiceInkの書式設定と単語の置換が済んだあとの文字起こしです。
  • AI Enhancementがオンで正常に動いた場合。 整形されたテキストです。
  • AI Enhancementがスキップされたか失敗した場合。 加工されていない最終の文字起こしです。

コマンドが、音声、プロンプト、選択したテキスト、クリップボードのテキスト、画面のテキストを直接受け取ることはありません。文脈を結果に反映したい場合は、ドキュメントによると、プロンプトとContext Awarenessを使います。そうすれば、文脈はすでに最終テキストに入っています。

実行のされ方

VoiceInkのドキュメント Custom Commands より。2026年10月10日に読みました。

項目動作
シェル/bin/zsh -lc
タイムアウト10秒。その後、VoiceInkがコマンドを停止する
権限VoiceInkと同じmacOSユーザの権限
レコーダーコマンドの開始前に閉じられる
成功終了コード0。それ以外は失敗として扱われる
出力標準出力とエラーは診断用に保存され、アプリに貼り付けられることはない
見つからないコマンドVoiceInkはシェルのPATHを試す。失敗する場合は /opt/homebrew/bin/tool のようにフルパスを使う

つまずきやすい制限

  • 自動では何も貼り付けられません。 アプリにテキストがほしい場合は、コマンド自身がコピーまたは貼り付けを行う必要があります。
  • 10秒で、確認の質問もできません。 コマンドは入力を待てません。長くかかる処理は、自分でバックグラウンドのプロセスを開始して、すぐに終了させてください。
  • 保存された文字起こしは変わりません。 コマンドが出力した内容が書き戻されることはありません。
  • Auto Sendは使えません。 Auto SendはPaste outputでのみ動作し、Custom Commandでは動作しません。
  • ライブの音声入力のみです。 Transcribe fileのキューにあるファイルは、出力コマンドを実行せずに保存されます。
  • 空のコマンドは使えません。 コマンドが空のModeは保存できません。

組み込みのテンプレート

VoiceInkのドキュメント Custom Commands より。2026年10月10日に読みました。

テンプレート動作
Paste and Press Tabテキストをコピーして貼り付け、そのあとTabを押す
Lowercase and Pasteテキストを小文字にして、コピーし、貼り付ける
Remove Trailing Period and Paste最後のピリオドをひとつ取り除いてから貼り付ける
Append to Journal~/Documents/VoiceInk/journal.md にテキストを追加する
Search Webテキストをウェブ検索で開く

ドキュメントでは、テンプレートから始めて編集することを勧めています。いちばん簡単な例が2つあります。テキストをコピーする例と、メモに追記する例です。

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

動いたかどうかの確認

VoiceInkは、Custom Commandのあとに成功や失敗のメッセージを表示しません。ドキュメントには、直近10分間の配信ログを表示するTerminalのコマンドがあります。コマンドが成功したか、失敗したか、10秒を超えたかがわかります。

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

ドキュメントは、このログに音声入力したテキストが含まれることがあると警告しています。また、コマンドがテキストをウェブサービスに送る場合は、そのサービスがテキストを受け取ります。VoiceInkは、設定されたものを実行するだけです。

YapToTextの場合

VoiceInkについてはドキュメントより、2026年10月10日に読みました。YapToTextについてはアプリ自身の設定にもとづいています。

VoiceInkYapToText
テキストを渡してシェルコマンドを実行あり。Custom Commandの出力なし
カーソルの位置に貼り付けPaste outputPaste。初期設定
代わりに入力するこのページには記載なしType character by character
クリップボードのみpbcopy のようなコマンドを使うCopy to clipboard only
そのあとにキーを押すPaste and Press Tabテンプレートアプリごとに Return または Command Return
入力前に確認するこのページには記載なしReview before inserting。初期設定ではオフ

音声入力で自分のスクリプトを動かしたいなら、VoiceInkのCustom Commandは、YapToTextにはない機能です。カーソルの位置に、周囲の言葉に合わせたテキストを入れたいなら、YapToTextが初期設定でそれを行い、スクリプトは必要ありません。出力モードを設定する場所はVoiceInkのModesのページで説明しています。モードを中心に作られたもうひとつのアプリとの比較は、VoiceInkとsuperwhisperの比較にあります。

Mac App StoreでYapToTextをダウンロード無料でダウンロードできます。アカウント不要で、機能の制限もありません。AppleシリコンのMac、macOS 14以降に対応しています。 ソースコードはGitHubにあります。

まとめ

  • 何か。 最終テキストを渡して、自分のシェルコマンドを実行する出力モードです。
  • テキスト。 標準入力と $VOICEINK_TRANSCRIPT にあります。
  • 制限。 10秒、入力なし、自動の貼り付けなし、ライブの音声入力のみです。
  • デバッグ。 アプリにメッセージは出ません。上のTerminalコマンドでログを読みます。
  • 始め方。 5つのテンプレートのどれかを編集します。

VoiceInkがCustom Commandの仕様を変えた場合は、GitHubでissueを作成してください(英語)。このページを更新します。すべて読んでいます。

Mac App StoreでYapToTextをダウンロード無料でダウンロードできます。アカウント不要で、機能の制限もありません。AppleシリコンのMac、macOS 14以降に対応しています。 ソースコードはGitHubにあります。

このページを書いた人。 Ryleigh Newmanはソフトウェアを開発しています。手でキーボードを打つことが難しいため、このサイトで紹介しているアプリ、YapToTextで毎日音声入力をしています。このページは英語から翻訳したものです。アプリの画面とサイトのほかのページは英語です。 プロジェクトについて(英語)。

ガイド

そのほかのガイド(英語)

出典

よくある質問

VoiceInkのCustom Commandとは何ですか

出力モードです。貼り付けの代わりに、VoiceInkが自分で書いたシェルコマンドを実行し、音声入力の最終テキストを渡します。

VoiceInkのCustom Commandはどうやってテキストを受け取りますか

UTF-8で、標準入力と変数 $VOICEINK_TRANSCRIPT に入ります。空白や改行を保つには、変数を引用符で囲みます。

VoiceInkのCustom Commandで何も貼り付けられなかったのはなぜですか

Custom Commandの出力は、自動では貼り付けを行いません。Paste and Press Tab テンプレートのように、コマンド自身がテキストをコピーまたは貼り付ける必要があります。

VoiceInkのCustom Commandは何秒まで実行できますか

10秒です。それを過ぎるとVoiceInkが停止します。長くかかる処理は、バックグラウンドのプロセスを開始してください。

YapToTextにはVoiceInkのようなカスタムコマンドがありますか

音声入力のあとにシェルコマンドを実行することはできません。カーソルの位置に貼り付けるか入力し、クリップボードへのコピーのみにも設定でき、テキストが入ったあとにReturnを押すこともできます。