概要
Claude Code IDE for Emacs は、EmacsとClaude Code CLIを Model Context Protocol (MCP) で統合するパッケージ。 Emacsの強力な機能(LSP、プロジェクト管理、Elisp関数等)を Claudeが直接活用 可能。 プロジェクト単位でのセッション管理 や高度なウィンドウ・ターミナル連携をサポート。 Flycheck/Flymake診断、ediff統合、選択範囲認識 など、Emacsエコシステムとの深い連携。 柔軟なカスタマイズ・デバッグ機能 を備え、マルチプロジェクト運用も容易。
Claude Code IDE for Emacs 概要
- Claude Code CLIとEmacs を MCP で双方向接続する統合パッケージ
- ターミナルラッパー以上 の連携で、EmacsのLSPやElisp関数をClaudeが活用
- Emacs内でAIアシスタント としてClaudeがプロジェクト全体やエディタ状態を把握
- プロジェクト検出・セッション管理 を自動化
- vterm/eat によるフルカラー対応ターミナル統合
- MCPツールサーバ によるEmacsコマンド呼び出し(xref, tree-sitter, project info等)
- Flycheck/Flymake 診断、 ediff による差分表示連携
- タブバー、選択範囲、バッファ追跡 など、文脈認識強化
Emacsツール連携
- LSP(eglot, lsp-mode等) との連携で xref によるコードナビゲーション
- tree-sitter でASTレベルの構文解析
- imenu によるシンボルリスト・ナビゲーション
- project.el 連携でプロジェクト単位の操作
- 任意のEmacsコマンド/関数 をMCPツールとして公開可能
- プロジェクト横断検索・リファクタリング
- 専用モード・機能へのアクセス
- カスタムElisp関数の実行
画面例・機能
- アクティブファイル認識 :現在閲覧中ファイルを自動把握
- 選択範囲認識 :バッファ内選択テキストをClaudeが直接利用
- 高度な差分ビュー :ediff連携+診断データ(エラー・警告等)表示
- 自動テキスト参照 :選択範囲をClaude会話内で自動参照
- セッション復元 :--resumeフラグで過去の会話を再開
インストール手順
前提条件
- Emacs 28.1以上
- Claude Code CLI (PATHに配置)
- vtermまたはeatパッケージ (ターミナル用)
Claude Code CLIの導入
- 公式ドキュメントに従いインストール
Emacsパッケージの導入例
(use-package claude-code-ide
:straight (:type git :host github :repo "manzaltu/claude-code-ide.el")
:bind ("C-c C-'" . claude-code-ide-menu)
:config (claude-code-ide-emacs-tools-setup))
基本コマンド一覧
| コマンド | 説明 | | --- | --- | | M-x claude-code-ide-menu | コマンド一覧のトランジェントメニュー | | M-x claude-code-ide-emacs-tools-setup | MCPツール(xref, project等)のセットアップ | | M-x claude-code-ide | 現在のプロジェクトでClaude Code起動 | | M-x claude-code-ide-send-prompt | ミニバッファからClaudeへプロンプト送信 | | M-x claude-code-ide-continue | ディレクトリ内の直近会話を継続 | | M-x claude-code-ide-resume | 過去の会話を復元 | | M-x claude-code-ide-stop | セッション停止 | | M-x claude-code-ide-switch-to-buffer | プロジェクトのClaudeバッファへ切替 | | M-x claude-code-ide-list-sessions | 全セッション一覧・切替 | | M-x claude-code-ide-check-status | CLIの動作確認 | | M-x claude-code-ide-insert-at-mentioned | 選択範囲をClaudeプロンプトへ送信 | | M-x claude-code-ide-send-escape | ターミナルへEscape送信 | | M-x claude-code-ide-insert-newline | プロンプトに改行挿入 | | M-x claude-code-ide-toggle | Claudeウィンドウの表示切替 | | M-x claude-code-ide-show-debug | デバッグバッファ表示 | | M-x claude-code-ide-clear-debug | デバッグバッファクリア |
マルチプロジェクト対応
- project.el による自動プロジェクト検出
- プロジェクトごとに 独立したClaudeセッション を保持(バッファ名例:claude-code[project-name])
- 複数プロジェクト同時運用 が可能
- claude-code-ide-list-sessions でアクティブセッションの一覧・切替
ウィンドウ管理
- セッション起動時、既存セッションがあれば ウィンドウ表示をトグル
- 標準Emacsウィンドウコマンド(C-x 0等)で閉じてもセッションは維持
設定・カスタマイズ
主な変数
- claude-code-ide-cli-path : CLIのパス(デフォルト"claude")
- claude-code-ide-buffer-name-function : バッファ名生成関数
- claude-code-ide-cli-debug : CLIデバッグモード有効化
- claude-code-ide-cli-extra-flags : 追加CLIフラグ
- claude-code-ide-debug : Emacsデバッグログ有効化
- claude-code-ide-terminal-backend : ターミナルバックエンド('vtermまたは'eat)
- claude-code-ide-use-side-window : サイドウィンドウ利用有無
- claude-code-ide-window-side : Claudeウィンドウの表示位置
- claude-code-ide-window-width/height : サイドウィンドウの幅・高さ
- claude-code-ide-focus-on-open : ウィンドウ表示時に自動フォーカス
- claude-code-ide-system-prompt : システムプロンプト追加
- claude-code-ide-enable-mcp-server : MCPツールサーバ有効化
- claude-code-ide-diagnostics-backend : 診断バックエンド('auto, 'flycheck, 'flymake)
- claude-code-ide-prevent-reflow-glitch : ターミナルリフローバグ回避
サイドウィンドウ例
- 左側に表示
(setq claude-code-ide-window-side 'left) - 下部に高さ指定で表示
(setq claude-code-ide-window-side 'bottom claude-code-ide-window-height 30) - 通常ウィンドウ利用
(setq claude-code-ide-use-side-window nil)
ターミナルバックエンド切替
- eat利用
(setq claude-code-ide-terminal-backend 'eat) - vterm利用(デフォルト)
(setq claude-code-ide-terminal-backend 'vterm)
ターミナルキーバインド
- M-RET : プロンプトに改行挿入
- C-<escape> : Escapeキー送信
ターミナルリフローバグ回避
- デフォルト有効。不要時は無効化可能
(setq claude-code-ide-prevent-reflow-glitch nil)
診断バックエンド指定
- 自動判定(デフォルト)
(setq claude-code-ide-diagnostics-backend 'auto) - flycheck/flymake指定
(setq claude-code-ide-diagnostics-backend 'flycheck) (setq claude-code-ide-diagnostics-backend 'flymake)
バッファ名カスタマイズ例
(setq claude-code-ide-buffer-name-function
(lambda (directory)
(if directory
(format "*Claude:%s*" (file-name-nondirectory (directory-file-name directory)))
"*Claude:Global*")))
CLIフラグ追加例
- 特定モデル利用
(setq claude-code-ide-cli-extra-flags "--model opus") - 複数フラグ
(setq claude-code-ide-cli-extra-flags "--model opus --no-cache")
システムプロンプト追加例
- 全体設定
(setq claude-code-ide-system-prompt "You are an expert in Elisp and Emacs development.") - プロジェクトごと(.dir-locals.el)
((nil . ((claude-code-ide-system-prompt . "Focus on functional programming patterns and avoid mutations."))))
デバッグ
- CLIデバッグモード (-dフラグ)
(setq claude-code-ide-cli-debug t) - Emacsデバッグログ (WebSocket/JSON-RPC等)
(setq claude-code-ide-debug t)- M-x claude-code-ide-show-debug : デバッグバッファ表示
- M-x claude-code-ide-clear-debug : デバッグバッファクリア
複数Claude Codeインスタンス(Git worktree活用)
- git worktree で異なるブランチごとに独立Claudeセッション運用
- 例:
git worktree add ../myproject-worktree feature-branch - 各worktreeで Emacsのproject.el が独立プロジェクトとして認識
- Claudeセッションもバッファも独立(例:claude-code[myproject-worktree])
- 例:
Claude Code IDE for Emacs は、Emacsユーザーのための 真のAIアシスタント体験 を実現。 既存ワークフローに溶け込み、 柔軟なカスタマイズ性 と 高度なEmacs連携 を両立。 開発効率と知的生産性を最大化する モダンなEmacs拡張。