解説ページ

Claude Codeの音声入力は手が離れない
だから声で動く開発エージェントを作った

公式 /voice の仕様を一次ドキュメントで確認したうえで、声だけで ToDoアプリとゲームを作らせる。安全設計と実際にかかった費用まで。

サムネイル案:キーボード、触ってません
サムネ案
この回の一行

公式が出したのは「入力」だった。欲しかったのは「会話」だった。

1. まず事実:Claude Code には公式の音声入力がある

2026年3月にリリースされた /voicePro・Max・Team・Enterprise は追加料金なしで、しかも文字起こしはトークンを消費せず /usage の上限にも入らない

そして公式の呼び方が、この機能のすべてを説明している。

公式ドキュメントの一行目 "Speak your prompts instead of typing them in the Claude Code CLI."
タイプする代わりに、プロンプトを喋る。
機能名は Voice dictation(音声ディクテーション=口述筆記)。出典: code.claude.com/docs/en/voice-dictation(2026-08-09 取得)

できること

項目内容
操作hold=スペースキーを押しっぱなし(既定)/tap=1回で開始・もう1回で送信
入力の入り方カーソル位置に文字起こしされる。タイプと混ぜて書ける
料金Pro・Max・Team・Enterprise は追加料金なし。トークンも消費しない
日本語対応(全20言語)。language 設定を使う。空だと英語になる
精度の工夫コーディング語彙にチューニング済み(regex OAuth JSON localhost)。プロジェクト名とgitブランチ名を認識ヒントに自動追加
自動送信autoSubmit: true で3語以上なら自動送信。日本語の自動送信は v2.1.195 以降
キー変更~/.claude/keybindings.jsonvoice:pushToTalk を再割当できる(meta+k ならウォームアップ無し)

動かない条件(先に知っておきたい)

これは弱点ではなく、そういう設計。「入力を音声にする機能」としてはよくできている。

2. それでも足りなかった3つ

公式の音声入力と音声エージェントの対比図
図解:手・目・許可の3軸
  1. 手が離れない — スペースキーを押さえ続ける。手はキーボードの上にある
  2. 目が離れない — 返事は画面のテキスト。読まないと何が起きたか分からない
  3. 許可でキーボードに戻される — 「このコマンド実行していい?」にキーボードで答える。開発は許可の連続なので、ここで必ず引き戻される

つまり、入力が音声になっただけで、開発は画面の前に座ったまま。欲しかったのは「画面から目を離しても仕事が前に進む状態」だった。

3. 作ったものの仕組み

音声エージェントの構成図
図解:雑談と作業を分ける

キモは雑談と作業を分けたこと。全部をコーディングエージェントに流すと、雑談でも数秒待たされる。だから会話係が前段にいる。

もうひとつ大事な点として、Anthropic の APIキーは要らない。ターミナルで claude が動く状態なら、その資格情報をそのまま使う。

作るときに効いた3つの判断

  1. 人格とツール定義はサーバ側に置く — ブラウザから改変できない位置に置くため
  2. 進捗は「自分の言葉に直して」喋らせる — そのまま読み上げると機械的な実況になって聞けたものじゃない
  3. 喋っている最中はモデルを張り直さない — 言い終わる前に会話が消える

4. 実演:声だけでアプリを作らせる

この回で実際に話しかける内容。収録中はここをそのまま読む。

【実演① ToDoアプリ】
「ダウンロードフォルダに ToDoアプリを作って、開発して」
  → (無ければ)「作りますか?」と声で聞かれる
「はい」
  → フォルダが作られて、作業が始まる
「今どんな感じ?」
  → 進捗が声で返る
(ファイル作成の確認が来たら)「はい」
  → 進む

【実演② ゲーム】
「次は簡単なゲームを作りたい。ブラウザで動くやつ」
(編集の確認が続いたら)「編集は自動にして」
  → そのプロジェクトだけファイル編集の確認が消える
     ※コマンド実行の確認は残る
「確認ありに戻して」で元に戻せる

【安全設計の実演:わざと見送らせる】
・相槌だけ言う(「うんうん」)
・独り言レベルの短い発話
・こちらの読み上げをマイクに拾わせる
  → いずれも「見送りました」と画面に出る

【落ちたときの保険】
pnpm sim "ダウンロードにToDoアプリを作って"
  → 音声抜きで対話(Claude Code は実物)
  → 「声の層が落ちているだけで、下は動く」を見せて切り分ける

5. 安全設計 — 声で実行することの怖さ

安全設計:蛇口を細くしておく
図解:便利さと怖さは同じ蛇口から出る

声で開発をさせる以上、聞き間違いでコマンドが走るのがいちばん怖い。だから作業を始める前に「人が実際にそう言ったか」を機械的に確かめている。

作業を始めない条件

該当したら作業を始めず、そう画面に出す。「頼んだのに動かない」ときは、この見送りの表示が出ていないかを見る。

絞ってあるもの

設定声で開ける範囲
near作業フォルダとその隣だけ(いちばん安全)
home(既定)ホーム配下。~/.ssh などの隠しフォルダは開けない
anywhere制限なし

今どの範囲かは、サーバの起動ログに毎回出る。

便利さと怖さは、同じ蛇口から出る。
だから最初から蛇口を細くしておく。

6. 実際にかかったお金

何に実測値根拠
会話係(標準モデル)1応答あたり $0.02 前後30応答の平均
会話係(軽量モデル)単価が約3分の1公式料金表($32/$64 → $10/$20 per 1M)
Claude Code 側・1回目$0.19Sonnet 5・7セッション24回の中央値
Claude Code 側・2回目以降$0.07(幅 $0.02〜$0.38)同上
直感と逆の話 差はプロンプトキャッシュ。つまりサーバを起動したまま使い続けるほど安くなるこまめに落として立ち上げ直す人ほど高くつく。

雑談や進捗確認だけなら会話係のぶんしかかからない。実作業を頼んだときに Claude Code の料金が乗る。

なお、単価を確かめていないモデルは費用を「—」と出すようにしてある。0として黙って足し込むと、画面の数字が嘘になるため。

※ すべて作者環境での実測値。請求額を保証するものではありません。

7. つまずいた場所

macOS の権限3種

アクセシビリティ/オートメーション/画面収録。許可は「起動したアプリごと」に付くので、ターミナルから起動する場合と常駐させる場合で別に必要。「さっき許可したのに」はだいたいこれ。

ターミナルが Microphone 設定の一覧に出てこないときの復旧:

# 対象を必ず指定する(Terminal.app の場合)
tccutil reset Microphone com.apple.Terminal
# iTerm2 なら com.googlecode.iterm2
# 他のターミナルは osascript -e 'id of app "AppName"' で調べる

# → そのあと Cmd+Q で完全終了(ウィンドウを閉じるだけではダメ)
# → 再起動して /voice を実行すると、許可ダイアログが出る
⚠ 注意 bundle-id を付けずに tccutil reset Microphone を叩くと、Mac の全アプリのマイク許可が消える。Zoom や Slack も含めて。通話中は絶対に実行しない。

pnpm doctor と打っても何も出ない

pnpm 内蔵のコマンドに取られる。pnpm run doctor が正解。

8. 結局どちらを使えばいいのか

やりたいこと使うもの
タイプが面倒・長い指示を口で入れたい公式 /voice(追加料金なし。まずこれで試すべき)
画面の前にはいる。手だけ楽にしたい公式 /voicetap モード(押しっぱなし不要)
画面から離れたい・進捗を声で聞きたい・声で許可したい音声エージェント
SSH やブラウザ版の Claude Code で使いたい⚠ 公式 /voice は非対応
APIキー直・Bedrock・Vertex で使っている⚠ 公式 /voice は非対応
公式が出したのは「入力」で、
僕が欲しかったのは「会話」でした。