Claude Codeの/voiceコマンドで音声入力を使う — hold/tap/off
/voiceコマンドはhold・tap・offの3モードを切り替える音声入力機能です。Claude.aiアカウントが必須で音声はローカル処理されない点や、リモート環境で使えない制約を解説します。
/voiceはClaude CodeのCLIでプロンプトを声で入力するコマンドです。キーを押しながら話す「hold」モードと、1回のタップで録音を開始・終了する「tap」モードの2種類があり、Claude.aiアカウントでのサインインが前提になります。
voiceコマンドとは何をするコマンドか
/voiceを実行すると音声入力のオン/オフを切り替えます。モードを指定して直接有効化することもでき、指定しなければ直前のモードを保ったままトグルします。
| コマンド | 効果 |
|---|---|
/voice | 効果オン/オフを切り替え、現在のモードを維持 |
/voice hold | 効果holdモードで有効化 |
/voice tap | 効果tapモードで有効化 |
/voice off | 効果無効化 |
音声はローカル処理されず、録音した音声はAnthropicのサーバーへストリーミングされ文字起こしされます。この文字起こし自体はメッセージやトークンを消費せず、/usageに表示される利用上限にもカウントされません。
holdとtapの違い
holdは既定モードで、Push-to-talk方式です。Spaceキーを押している間だけ録音し、離すと文字起こしを確定します。ターミナルのキーリピートを検知してホールドと判定するため、押し始めてから録音が始まるまで短いウォームアップがあります。ウォームアップ中に入力される最初の数文字は自動的に取り除かれます。
tapは1回タップで録音開始、もう1回タップで録音終了・送信する方式です。ウォームアップがなく、キーを押し続ける必要もありません。プロンプト入力欄が空のときだけ最初のタップが録音を開始する仕組みなので、通常の入力中に誤発火することはありません。
文字起こしが3単語以上あれば、tapモードでは自動的にプロンプトを送信します。holdモードでも設定で"autoSubmit": trueにすれば、キーを離した時点で同じ条件で自動送信されます。日本語・中国語・タイ語はスペース区切りがない言語ですが、この場合も単語単位でカウントされ、tapモードとautoSubmit設定を有効にしたholdモードの両方で同じように自動送信の対象になります。
録音は無音状態が15秒続くか、合計2分に達すると自動的に停止します。
使うための必須条件
音声入力を使うには、次の条件をすべて満たす必要があります。
- Claude.aiアカウント: 音声文字起こしはClaude.aiアカウントでの認証時のみ利用可能です。AnthropicのAPIキー、Amazon Bedrock、Google CloudのAgent Platform、Microsoft Foundryのいずれかで設定している場合は使えません
- HIPAA非対応の組織: 組織でHIPAA準拠設定が有効な場合、
/voiceは「Voice mode is disabled by your organization's policy」と表示され利用できません - ローカルマイク: Claude Code on the webやSSHセッションのようなリモート環境では音声入力自体が使えません
- WSLg(WSL利用時): WSL2をMicrosoft StoreからインストールしていればWSLgが同梱されます。WSLgが使えない環境(WSL1など)ではネイティブWindows側でClaude Codeを実行します
VS Code拡張でも同じClaude.aiアカウント要件のもとで音声入力に対応しますが、SSH・Dev Containers・Codespacesを含むVS Code Remoteセッションでは使えません。マイクがローカル端末側にあり、拡張機能自体はリモートホストで動作するためです。
Linuxでの録音手段
macOS・Linux・Windowsでは組み込みのネイティブモジュールで録音します。Linuxでネイティブモジュールが読み込めない場合、ALSA utilsのarecordかSoXのrecにフォールバックします。どちらも無ければ、/voice実行時にお使いのパッケージマネージャー向けのインストールコマンドが表示されます。
対応言語と言語設定
音声入力の言語は、Claudeの応答言語を制御するlanguage設定と共通です。設定が空の場合は英語がデフォルトになります。日本語で音声入力したい場合は/configまたは設定ファイルでlanguageをjapaneseやjaに変更しておく必要があります。設定言語がサポート対象外だと、/voiceは有効化時に警告を出したうえで文字起こしを英語にフォールバックします(Claudeのテキスト応答自体は影響を受けません)。
対応言語はチェコ語・デンマーク語・オランダ語・英語・フランス語・ドイツ語・ギリシャ語・ヒンディー語・インドネシア語・イタリア語・日本語・韓国語・ノルウェー語・ポーランド語・ポルトガル語・ロシア語・スペイン語・スウェーデン語・トルコ語・ウクライナ語の20言語です。日本語もこの対応言語に含まれるため、language設定をjapaneseやjaにしておけば日本語での音声入力が使えます。
文字起こしはコーディング用語向けに調整されており、regex・OAuth・JSON・localhostのような開発用語は正しく認識されます。日本語で話しながらこうした英語の技術用語が混ざる発話でも同様です。プロジェクト名やgitのブランチ名も認識ヒントとして自動的に追加されます。
バックグラウンドセッションへの音声入力
/voiceはディスパッチ入力欄やpeekパネルの返信欄にフォーカスがある状態でも動作します。フォアグラウンドで作業中のセッションだけでなく、バックグラウンドで動いている別セッションの返信欄にフォーカスを移してpush-to-talkキーを押し続けるかタップすれば、そのセッションへ声で指示を送れます。複数セッションを並列で走らせる運用では、キーボードから手を離さずに声だけで各セッションへ指示を出し分けられる点がメリットです。
面ごとの対応可否早見表
/voiceが使えるかどうかは実行環境によって変わります。導入前に次の表で確認しておくと迷いません。
| 実行面 | 対応 | 補足 |
|---|---|---|
| ターミナルのCLI(macOS/Linux/Windows) | 対応○ | 補足ネイティブモジュールまたはフォールバックで録音 |
| VS Code拡張(ローカル) | 対応○ | 補足Claude.aiアカウント要件はCLIと共通 |
| VS Code Remote(SSH/Dev Containers/Codespaces) | 対応× | 補足マイクがローカル、拡張はリモートホストで動作するため |
| Claude Code on the web | 対応× | 補足マイクにアクセスできるローカル端末上の実行ではないため |
| SSHセッション | 対応× | 補足リモート環境のため音声入力自体が使えない |
| WSL2(WSLg利用時) | 対応○ | 補足Microsoft StoreからインストールしたWSL2にWSLgが同梱 |
| WSL1やWSLg非対応環境 | 対応× | 補足ネイティブWindows側でClaude Codeを実行する必要がある |
共通しているのは「マイクにアクセスできる端末上でClaude Codeのプロセスが直接動いているかどうか」という条件です。リモートホストにログインしてClaude Codeを動かす構成では、マイクは常にローカル側にあるため音声入力の経路が成立しません。
設定ファイルでの永続化とkeybindings.json
/voiceで切り替えた有効状態はセッションをまたいで保持されますが、モードやオン/オフの初期状態を明示的に固定したい場合は、ユーザー設定ファイルに直接値を書いておく方法もあります。設定ファイルにvoice.enabledをtrue、voice.modeをholdまたはtapと指定しておけば、/voiceコマンドを毎回打たなくても希望のモードで起動時から有効になります。
キー割り当てのカスタマイズは~/.claude/keybindings.jsonで行います。デフォルトのSpaceキーによるvoice:pushToTalkアクションを変更したい場合、このファイルに別のキーやキーの組み合わせを追記します。前述のとおり、単独の英字キーはキーリピートに依存するholdモードとの相性が悪いため、meta+kのような修飾キーの組み合わせを割り当てるのが安全です。逆にCaps Lockのようにターミナルアプリまでキー入力が届かないキーは、そもそも割り当ての対象にできません。キーバインドの設定ファイル全般の書式についてはClaude Codeの設定ファイル完全ガイドでも扱っています。
/voiceはスラッシュコマンドの一種として動作するため、他のコマンドと組み合わせて使う場面も多くあります。Claude Codeで使えるスラッシュコマンド全体の一覧はClaude Codeのスラッシュコマンド一覧にまとめています。
トラブルシューティングの要点
/voice実行時にMicrophone access is deniedが出た場合は、macOSなら「システム設定 > プライバシーとセキュリティ > マイク」、Windowsなら「設定 > プライバシーとセキュリティ > マイク」でターミナルアプリへのアクセスを許可してから再実行します。macOSの設定一覧にターミナルアプリ自体が出てこない場合は、tccutil reset Microphone <bundle-id>でマイク権限をリセットしてからターミナルを再起動すると、次回の/voice実行時に許可プロンプトが再表示されます。
Voice input is failing repeatedly and has been pausedは、マイクの起動失敗や無音録音が連続したときに表示され、成功するまで新しい録音を試みなくなります。ヘッドレスサーバーやマイクパススルーのないリモートシェルで起きやすい症状です。v2.1.202より前は起動失敗のみがこのカウントの対象でした。
よくある質問
/voiceと画面共有中の音声モードは同じ機能ですか
別の機能です。/voiceはClaude CodeのCLIでテキストプロンプトの代わりに音声を入力する機能で、Claude.aiアプリの音声モード + 画面共有とは対応環境も用途も異なります。画面共有を伴う音声モードについてはClaude音声モードと画面共有の使い方にまとめています。
音声入力の設定は再起動後も保持されますか
保持されます。/voiceで有効化した状態はセッションをまたいで持続します。毎回コマンドを打ちたくない場合は、ユーザー設定ファイルに直接voice.enabledとvoice.modeを書いておくこともできます。
hold・tapのキー割り当ては変更できますか
変更できます。デフォルトはSpaceキーのvoice:pushToTalkアクションで、~/.claude/keybindings.jsonで別のキーに再割り当てできます。Caps Lockのようにターミナルアプリへ届かないキーはそもそも割り当てできません。
関連する記事
Claude Code をもっと見る →Claude Code(クロードコード)とは — CLI起点のエージェント型開発ツール
claude importが使えない「not yet available in this build」の意味と対処
Claude Code configエラー「Could not read」の直し方
Claude Code settings 2MiBエラーの直し方 — settings.json肥大化の対処
Claude Code --json-schemaエラーの直し方 — JSON Schema検証に落ちる原因
「contained only whitespace」エラーの対処 — Claude Code非対話モード