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など、ターミナルで動くものなら何でも行けます。
特徴
- 自動tmux監視:tmuxセッションを2秒ごとに監視
- スマートなプロンプト検出:コンテンツの変化を監視してAIエージェントのプロンプト状態を検出
- 非侵入型バッファ表示:フォーカスを奪わずに*ai*バッファを表示
- 1回限りの通知:プロンプト検出ごとに1回だけバッファを表示
- 簡単なテキスト送信:選択した領域を自動実行付きでAIエージェントに送信
- コンテキスト認識:送信テキストにファイルパスと行番号を自動的に含める
- セッション永続化:選択したtmuxセッションをEmacs再起動後も保持・復元
システムアーキテクチャ
使い方
準備:tmuxとAIエージェントの起動
この拡張機能を使用する前に、tmux内でAIエージェントを起動しておく必要があります。
-
tmuxセッションを起動:
tmuxまたは、セッション名を指定して起動:
tmux new -s claude -
tmux内でAIエージェントを起動:
claudeまたは他のAIコーディングエージェントを起動します。
-
Emacsを起動:別のターミナル(またはtmuxの別のペイン)でEmacsを起動します。
-
複数のtmuxセッションがある場合:
-
M-x emacs-ai-agent-bridge-select-sessionを使用してセッションを切り替え - または、モードラインの
[tmux:0]表示をクリックしてポップアップメニューから選択 - 選択したセッションは自動的に保存され、次回のEmacs起動時に復元されます
-
AIエージェントへのテキスト送信
方法1:選択した領域を送信
M-x send-to-ai
テキストリージョンを選択して上記コマンドを実行すると、AIエージェントにテキストが送信されます。
一緒にファイルパスと行番号も送信されるので「上の関数をリファクタリングしてください」や、
「下の表の行と列を入れ替えてください」などの指示ができます。
方法2:連続する行のブロックを送信 (C-c Return)
C-c <return> (Control+C の後に Return) を押して、カーソルより前の連続する行をAIエージェントに送信します。
- カーソルより前の連続する空でない行をすべて送信
- 最初の空行またはバッファの先頭で停止
- コンテキスト情報(ファイル名と行番号)を含める
例:
1行目のテキスト
2行目のテキスト
3行目のテキスト [カーソルはここ]
次の段落(送信されません)
3行目にカーソルがある状態で C-c <return> を押すと、3行すべてがAIエージェントに送信されます。
数字キーによる素早い応答
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ 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〜5)を押すと選択肢を選んで応答できます。Enterを押すと最初のオプション(デフォルト)を素早く選択できます。
インストールと設定
クイックスタート設定
(require 'emacs-ai-agent-bridge)
(emacs-ai-agent-bridge-start-monitoring)
完全な設定例
;; パッケージをロード
(require 'emacs-ai-agent-bridge)
;; オプション: 設定をカスタマイズ
(setq emacs-ai-agent-bridge-tmux-session nil) ; セッションを自動検出
(setq emacs-ai-agent-bridge-tmux-pane "0") ; ペイン0を監視
(setq emacs-ai-agent-bridge-monitor-interval 2) ; 2秒ごとにチェック
;; 自動的に監視を開始
(emacs-ai-agent-bridge-start-monitoring)
;; オプション: テキスト送信用のキーバインディングを設定
(global-set-key (kbd "C-c a s") 'send-to-ai)
;; 推奨: AIエージェントによって変更されたファイルを自動的にリロード
(global-auto-revert-mode 1)
;; 注意: WSL環境では、以下の設定も必要な場合があります:
;; (setq auto-revert-use-notify nil)
設定オプション
;; 監視するtmuxセッション(nilで自動検出)
(setq emacs-ai-agent-bridge-tmux-session nil)
;; 監視するペインID(デフォルト: "0")
(setq emacs-ai-agent-bridge-tmux-pane "0")
;; 監視間隔(秒)(デフォルト: 2)
(setq emacs-ai-agent-bridge-monitor-interval 2)
;; セッション保存先ファイルパス(デフォルト: "~/.emacs-ai-agent-bridge-session")
(setq emacs-ai-agent-bridge-session-file "~/.emacs-ai-agent-bridge-session")
必要要件
- Emacs 25.1以降
- tmux
- tmuxで実行されているAIコーディングエージェント(例:Claude Code)
最後に
emacs-ai-agent-bridgeは、AIコーディングエージェントとEmacsを結びつけ、慣れ親しんだEmacsの環境で快適に開発やドキュメント編集を続けることができます。ぜひ試してみてください。
Discussion