EmacsとAIエージェントを橋渡しするemacs-ai-agent-bridge
はじめに
Emacsユーザーにとって、ターミナルウィンドウとEmacsのウィンドウを頻繁に行き来することは作業フローの中断を意味します。とにかくEmacsユーザーはホームポジションから指を離すことを極端に嫌がります。
最近、Claude CodeやGemini CLIといったAIコーディングエージェントが注目を集めていますが、これらはターミナルで動作するため、Emacsユーザーにとっては使いづらい面があります。EmacsユーザーがClaude Codeを使い始めたら、きっとEmacsの中から操作したいと思うはずです。
そこで、この問題を解決するためにemacs-ai-agent-bridgeを開発しました
。

emacs-ai-agent-bridgeとは
emacs-ai-agent-bridgeは、tmuxで動いているAIコーディングエージェントとEmacsを連携させる拡張機能です。Claude CodeやGemini CLIなど、ターミナルで動くものなら何でも行けます。
特徴
- 主な操作はEmacsから行う
- エージェントのTerminal Windowは表示専用
- Emacsからプロンプトを送信し、結果を *ai* バッファで受け取る
仕組み
以下のような仕組みで実現しています。
- 自動tmux監視:tmuxセッションを2秒ごとに監視し、AIエージェントの状態をリアルタイムで把握
- スマートなプロンプト検出:コンテンツの変化を監視してAIエージェントのプロンプト状態を自動検出
- 非侵入的なバッファ表示:フォーカスを奪わずに*ai*バッファを表示し、作業の流れを妨げない
- コンテキスト認識:送信されるテキストに自動的にファイルパスと行番号を含めて、AIエージェントに正確な位置情報を提供
- 簡単なテキスト送信:選択したリージョンやインラインコマンドで素早くAIエージェントにテキストを送信
使い方
基本的なワークフロー
1. 選択リージョンをAIエージェントに送信
M-x send-to-ai
テキストリージョンを選択して上記コマンドを実行すると、AIエージェントにテキストが送信されます。
一緒にファイルパスと行番号も送信されるので「上の関数をリファクタリングしてください」や、
「下の表の行と列を入れ替えてください」などの指示ができます。
2. インライン@aiコマンド
まず入力モードを有効化: (init.elなどに書いておいてください)
M-x emacs-ai-agent-bridge-input-mode
その後、@aiプレフィックスを使用してクイックプロンプトを送信します。
単一行プロンプト:
@ai このコードを最適化してください [Enter]
結果、プロンプト周辺のコードが最適化されます。
「@ai このコードを最適化してください」という文章は自動的に消えます。
複数行プロンプト:
@ai-begin
この関数についての説明をコメントとして埋め込んでください:
1. 引数の意味
2. 戻り値の説明
3. 使用例
@ai-end [この行でEnterを押す]
結果、プロンプト周辺の関数の説明がコメントとして埋め込まれます。
3. 数字キーによる素早い応答
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ Do you want to proceed? │
│ ❯ 1. Yes │
│ 2. Yes, and don't ask again for find commands │
│ 3. No, and tell Claude what to do differently (esc) │
╰───────────────────────────────────────────────────────────────────────────────────────╯
AIエージェントが*ai*バッファに次のような応答をしてきた場合、*ai*バッファ上で、1キーや2キーを押すと選択肢を選んで応答できます。
インストールと設定
基本インストール
(require 'emacs-ai-agent-bridge)
推奨設定
;; パッケージをロード
(require 'emacs-ai-agent-bridge)
;; 自動的に監視を開始
(emacs-ai-agent-bridge-start-monitoring)
;; ふだんエージェントに編集してもらうモードで@ai入力モードを有効化
(add-hook 'text-mode-hook 'emacs-ai-agent-bridge-input-mode)
(add-hook 'markdown-mode-hook 'emacs-ai-agent-bridge-input-mode)
(add-hook 'emacs-lisp-mode-hook 'emacs-ai-agent-bridge-input-mode)
;; コーディングエージェントが編集したファイルを検知して自動的にリロード
(global-auto-revert-mode 1)
;; WSL環境だとWindowsアプリで編集したファイルをUbuntuで監視するにはポーリングが必要なのでこれが必要
(setq auto-revert-use-notify nil)
必要要件
- Emacs 25.1以降
- tmux
- tmuxで実行されているAIコーディングエージェント
最後に
いかがでしたでしょうか。
emacs-ai-agent-bridgeは、AIコーディングエージェントとEmacsを結びつけ、慣れ親しんだEmacsの環境で快適に開発やドキュメント編集を続けることができます。ぜひ試してみてください。
Discussion