How-to

Mac でコードをディクテーションする方法: Cursor、VS Code、Claude Code の完全ガイド

識別子は正しく綴られる。コミットメッセージは最初から慣例フォーマット。PR 説明はあなたが打つであろう声で。6 つの作例と、私たちが毎日使っているキーボードセットアップ。

TL;DR

これは Loqua で Mac 上のコードをディクテーションする実践ガイドです — Cursor、VS Code、Claude Code でコードを書くプログラマー向けの音声入力。三つの条件が揃う必要があります。技術的識別子が認識されること、出力が宛先用にフォーマットされること、フローを壊さないほど低いレイテンシが保たれること。Loqua はその Mac ワークフロー向けに設計されています。コードコメント、コミット、PR 説明、ターミナルコマンド、Cursor プロンプト、Claude Code 指示。本ガイドは、音声がコードの全行を書く最善の方法であるかのように装うことなく、セットアップと作例を案内します。

Loqua は Mac 向けのコンテキスト認識型音声入力ツールです。IDE、ターミナル、PR 説明、チャットパネルのいずれにいるかを検出し、出力を調整します。Apple Silicon 上で Neural Engine 経由で動作し、アプリごとにフォーマットを変え、辞書を事前に読み込むことなく技術用語を認識します。

正直に言えば、コードのディクテーションは散文のディクテーションとは異なるスキルです。最初の 1 時間は遅くなります。2 時間目には、キー打鍵のコストがないので、より長いコメントとより良いコミットメッセージを書けるようになるでしょう。私たちは何ヶ月もこれを毎日使ってきました。以下がセットアップです。

90 秒でセットアップ

5 ステップ、Mac アプリをインストールしたことがあれば驚くものは何もありません:

  1. ホームページから Loqua をダウンロードし、/Applications にドラッグします。
  2. 初回起動時にマイクのアクセス許可とアクセシビリティの許可を与えます。(アクセシビリティは Loqua があなたのアクティブなアプリと選択テキストを見るために必要です — ここでのアクセシビリティの意味については Apple のプライバシーとセキュリティガイドを参照してください。)
  3. Loqua の設定を開き、プッシュトゥトークのショートカットを確認します。デフォルトは Fn + Space です。私たちはホームポジションを離れずに届くので、Karabiner-Elements 経由でリマップした Caps Lock を使っています。
  4. 任意のテキストエディタ — TextEdit、VS Code、Cursor、Notes — を開き、カーソルをテキストフィールドに置きます。
  5. ショートカットを押し続けます。話します。離します。カーソル位置にテキストが現れます。

これだけです。アプリごとの設定はありません。Loqua は Mac 上でシステム全体で動作します。

最初のコードディクテーション

VS Code または Cursor を開き、カーソルを Python ファイルの関数本体に置きます。自然に話してください:

あなたが話す
「これはレスポンスを15分間キャッシュして、認証失敗時はログインへリダイレクト、リトライはしない、というコメントを追加して」
Loqua の書き込み (VS Code、Python ファイル)
# Cache response for 15 min.
# On auth failure (401): redirect to /login — do not retry.

三つのことが起こったことに注目してください。コードの中にいることを認識した(散文ではなくコメントとして出力)、明示的な値をフォーマットした(「15 分」→「15 min」、標準の 401 ステータスコードを推論)、第二節を構造化された指示に引き締めた。これらのいずれも設定を必要としません。マルチモーダルコンテキストエンジンがファイル拡張子と隣接コードを読んで判断しました。

コードで効く音声パターン

新しい構文を学ぶ必要はありません。どの言い回しが最もクリーンな出力を生むかを学ぶ必要があります。以下のパターンは、何ヶ月もの日常使用の末に私たちが収束したものです。

  • 名前 + フォーマットヒント: 「関数名 fetch user profile」と言うと fetchUserProfile が得られます。「関数名 アンダースコア fetch user profile」と言うと fetch_user_profile が得られます。アクティブファイルの言語慣例がデフォルトです。
  • 説明による型指定: 「ユーザー ID を受け取り user の promise を返す async 関数」と言うと完全なシグネチャが得られます。Loqua はコンテキストから型を推論します。
  • コメント意図を最初に: 「X というコメントを追加して」と言えば、ファイルの構文でコメントが得られます。コードファイル内で X とだけ言うと多くの場合コメントになりますが、明示的なフレーミングは曖昧さを避けます。
  • コミットメッセージ: 何が変わったかを言う: コミットコンテキスト(ソースコントロールパネル、ターミナルの git commit)では、プレフィックスを必要とせずに慣例フォーマットのメッセージを生成します。
  • PR 説明: なぜから始める: PR テンプレートが存在すれば、Loqua はそれを読んでそれに沿って整形します。
  • 構造的シフトのために一時停止: 半秒の停止は散文では段落の区切り、コードブロックでは論理ステップの区切りとして読まれます。

6 つの作例

以下の各例は実物です — 私たちが実際に話したこと、Loqua が実際に書いたこと。声はあなたのもの、出力は Loqua のものです:

あなたが話す (Cursor、リファクタ要求)
「レートリミッタを独自のミドルウェアファイルに移動して、インポートも更新して」
Loqua の書き込み (Cursor プロンプトとして)
リファクタ: レートリミッタロジックを新しい middleware/rateLimit.ts モジュールに抽出してください。ハンドラ全体でインポートを更新してください。現在の動作を保持してください。API 変更はなし。
あなたが話す (変更をステージング後)
「これは二つのログアウトリクエストが同時に来たときのセッションクリーンアップの競合状態を修正する、セッションストアにミューテックスを追加した、リグレッションテストも追加した」
Loqua の書き込み (git コミットメッセージとして)
fix(auth): handle concurrent session cleanup race condition

Two simultaneous /logout requests could both attempt to invalidate the same token. Added mutex lock on the session store write path. Tests: auth_test.go — TestConcurrentLogout
あなたが話す (PR 説明ボックスで)
「この PR は検索エンドポイントの部分レスポンス対応を追加する、クライアントは特定のフィールドを要求して小さいペイロードを受け取れる、テストでカバー済み、changelog も更新済み」
Loqua の書き込み (GitHub PR)
## Summary
Adds field-selection support to the search endpoint. Clients can request a subset of fields and receive a smaller payload.

## Changes
- Search endpoint accepts a fields query param
- Response serializer respects field selection
- Tests cover selection, omission, and invalid-field handling
- CHANGELOG.md updated

## Test plan
- [ ] Unit tests pass
- [ ] Manual smoke against staging
あなたが話す (ターミナルで)
「ripgrep で api フォルダ内の古い auth client の全使用箇所をテスト除外で探して」
Loqua の書き込み (ターミナル)
rg "OldAuthClient" api/ --glob '!**/*_test.go'
あなたが話す (DBeaver で SQL クエリを書く)
「users から user id、email、last login を、last login が 90 日以上前で account status が active のものを選択」
Loqua の書き込み (DBeaver)
SELECT user_id, email, last_login
FROM users
WHERE last_login < NOW() - INTERVAL '90 days'
  AND account_status = 'active';
あなたが話す (正規表現を書く)
「メールアドレスにマッチする正規表現、ただしローカルパートにプラス記号も許可」
Loqua の書き込み (VS Code、JavaScript ファイル)
const emailWithPlus = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

IDE コンテキストが出力を形作る仕組み

Loqua は単にあなたが VS Code や Cursor にいることだけを知っているわけではありません。ファイル種別、アクティブな選択範囲、周囲のコード、そして(あなたが許可すれば)開いているチャットパネルを知っています。同じ音声フレーズでも、これらの手がかりによって異なる出力を生みます:

コンテキスト出力形状
関数本体内、Python ファイルコードまたはインラインコメント、ファイルの言語に合わせて
docstring 内またはファイル冒頭のコメント散文、docstring としてフォーマット
ソースコントロールのコミットメッセージフィールド慣例コミットフォーマット
GitHub の PR 説明構造化された PR テンプレート (Summary / Changes / Test plan)
Cursor のチャットパネルコンテキスト付きプロンプト形状の指示
Claude Code のターミナルインターフェース直接的な指示、コンテキストが明確ならファイルパス付き

これを Loqua に伝える必要はありません。アクティブなアプリとカーソル周辺のテキストを読んで判断します。間違った形状になった場合は、明示的なフレーミングでフレーズを繰り返してください (例: 「...というコメントを追加して」または「コミットメッセージは...」)、調整されます。

識別子保持の背後にある、より深い画面コンテキストの仕組みについては、画面を見るリスナーを作るを参照してください。

多言語識別子とコードスイッチング

私たちが実際に遭遇した状況: コードベースに中国語名のフィーチャーフラグがあり、英語のコミットメッセージの中で文中ディクテーションされる。Loqua はこれをモード切り替えなしで扱います — EN+中パターンの詳細については 音声 + AI コーディングガイドを参照してください。要約版:

あなたが話す
「用户画像 サービスがダウンしているときのフォールバックを追加して、デフォルト状態でページがレンダリングされるように」
Loqua の書き込み (VS Code、コードコメント)
// Fallback: if the 用户画像 service is down, render the page with the default state.

トラブルシューティング

  • 識別子が間違って出る: 識別子を通常の英語で発音してフレーズを繰り返してください (例: 各文字を発音するのではなく「fetch user profile」と言う)。Loqua の NER は自然な発話用に訓練されており、文字スペリング用ではありません。
  • コードが欲しいのに散文が出る: 明示的なフレーミングとして「...というコメントを追加して」または「コードとして:...」と言ってください。通常はカーソル位置で曖昧性が解消されますが、フレームが役立ちます。
  • 言語慣例が違う (camelCase vs snake_case): Loqua はファイルの言語デフォルトに従います。オーバーライドするには、インラインで「キャメルケース」または「スネークケース」と言ってください。
  • 音声が登録されない: メニューバーアイコンを確認してください — グレーはマイク許可なし、赤はリスニング中、グリーンはアイドル。マイク許可はシステム設定 → プライバシーとセキュリティ → マイクにあります。
  • ショートカット競合: Fn + Space が Spotlight や他のアプリと競合する場合は、設定 → ショートカットでショートカットを変更してください。私たちの多くは Karabiner 経由でリマップした Caps Lock を使っています。Caps Lock はそうしないと無駄な不動産です。

私たちが実際に毎日使っているもの

これは機能リストよりも重要な部分です。私たちの日常ワークフローはこんな感じです:

  • コードコメント — ほぼ常に音声。音声形式の方が長く、より説明的で、チームの読まれる頻度も高い。
  • コミットメッセージ — 音声 + 軽い編集パス。キー打鍵のコストがないので本文の内容が充実する。
  • PR 説明 — 音声、しばしば diff をまだ見ながらディクテーション。Loqua が GitHub テンプレートを見るので構造が正しく出る。
  • Cursor / Claude Code プロンプト — 非常に短い「これを直して」プロンプト以外はすべて音声。長いリファクタ説明こそが音声の真価が出るところ。
  • Slack / Discord エンジニアリングスレッド — 音声。より速く、より思慮深く。
  • 識別子とコード本体 — 混在。些細なコード (CRUD、グルー) は音声向き。複雑なアルゴリズムコードは構造そのものが仕事なので、通常はタイピングの方が速い。

計算してみると: コード内散文 (コメント、ドキュメント、メッセージ、プロンプト) では約 4 倍の速度向上、純粋なコード作成ではタイピングと同等。1 日のトータルでは大きく、思考モードとタイピングモードのコンテキストスイッチが減るので認知負荷も下がります。

この仕組みのより深いアーキテクチャを知りたければ、三モデル音声入力スタックに関するノートを参照してください。AI コーディングツールに特化してパターンを拡張したければ、AI コーディングのための音声入力を参照してください。

このワークフローを評価しているプログラマー向けのもう一つの注記: Mac でコードをディクテーションする方法を Web で検索すると、ほとんどの結果は「Apple のビルトインディクテーションを使う」で止まります。それは良い出発点ですが、音声のみです — あなたの IDE、識別子、構造的慣例を知りません。Loqua のピッチは次のレイヤーです: 出力が宛先にすでに合っていることを望むプログラマー向けの音声入力。

Frequently asked questions

Loqua は Cursor で特に動作しますか?
はい。Loqua は Cursor を一級 IDE として扱います — チャットパネル、ファイルコンテキスト、選択状態を検出し、それに応じて出力を整形します。プロンプトはチャットパネルへ、コードはエディタへ、コメントはアクティブファイルの言語内に留まります。
Loqua を Claude Code で使えますか?
はい。Claude Code はターミナルベースの開発ツールとして検出されます。Loqua は Claude Code が理解する形状で直接的な指示とファイルパスを生成します。長いリファクタの語りや仕様ドラフト作成には、音声が特に効率的です。
変数名が中英混在の場合はどうですか?
Loqua はモード切り替えなしで文中コードスイッチングを扱います。「用户画像 サービスのチェックを追加して」と言えば、中国語用語をインラインに保持したコメントや識別子が生成され、元の文字が保たれます。
中括弧、括弧、イコールなどの記号はどうディクテーションしますか?
通常は必要ありません。Loqua はコンテキストから構造を推論します — 「関数名 fetch user with id and return a user」と言えば、括弧、型、中括弧付きの完全なシグネチャが生成されます。明示的な記号入力 (まれ) には「open paren」「close paren」「equals sign」などと言ってください。
Loqua は長い音声セッションをどう扱いますか?
発話ごとの上限はありません。ショートカットを押し続けて、好きなだけ話して、離します。話している最中にストリーミング出力が現れます — TTFT は 200ms 未満なので、フレーズの途中で最初の言葉が表示されます。
学習曲線はありますか?
IDE 作業については約 1 時間。最大の精神的シフトは、どの言い回しが最もクリーンな出力を生むかを学ぶことです (上のパターンセクション参照)。それを過ぎれば、コード内散文作業ではタイピングより速くなり、IDE コンテキスト認識がフォーマット判断の大半を代行します。

Try Loqua today

Free to start. Mac native. Built by algorithm researchers who use it every day.

Download for Mac

More from the Loqua Blog

how-to
AI コーディングのための音声入力: タイピングせずに Cursor と Claude Code に音声プロンプト
productivity
音声プロダクティビティスタック: 私たちが実際に使っている 9 つのツール
how-to
Mac の会議メモを音声で: ノートとアクションアイテムを音声から完了まで
engineering
オムニモーダル音声入力: マルチモーダル理解、MoE、ストリーミングテキスト出力