tags :

概要

Claude Code IDE for EmacsはModel Context Protocol(MCP)を通じてClaude Code CLIとのシームレスな統合を提供します。このパッケージはEmacsワークフロー内で直接AI支援型コードアシスタンスを可能にします。

機能

  • 自動プロジェクト検出とセッション管理
  • vterm を使用したフルカラーサポート付きターミナル統合
  • IDE統合のためのMCPプロトコル実装
  • ファイル操作、エディタ状態、ワークスペース情報のツールサポート
  • Flycheckとの診断統合
  • ediff統合による高度なdiffビュー
  • 適切なコンテキスト切り替えのためのtab-barサポート
  • より良いコンテキスト認識のための選択とバッファトラッキング

スクリーンショット

アクティブファイル認識

Claude CodeはEmacsで現在表示しているファイルを自動的に認識します

コード選択コンテキスト

Claude Codeはバッファ内の選択されたテキストにアクセスして作業できます

診断機能付き高度なDiffビュー

コード変更の統合ediffビュー、Claude Codeは開いているファイルから診断データ(エラー、警告など)に直接アクセス可能

自動テキストメンション

Claudeの会話で選択されたテキストを自動的にメンションして参照

セッション復元

--resumeフラグで以前のClaude Code会話を再開

インストール

前提条件

  • Emacs 28.1以上
  • Claude Code CLIがインストールされ、PATHで利用可能
  • vterm パッケージ(ターミナルサポート用)

Claude Code CLIのインストール

Claude Code Documentationのインストール手順に従ってください。

Emacsパッケージのインストール

現在、このパッケージは開発初期段階です。=use-package= と straight.el を使用してインストールするには:

(use-package claude-code-ide
  :straight (:type git :host github :repo "manzaltu/claude-code-ide.el"))

使用方法

基本コマンド

コマンド説明
M-x claude-code-ide現在のプロジェクトでClaude Codeを開始
M-x claude-code-ide-resume以前の会話でClaude Codeを再開
M-x claude-code-ide-stop現在のプロジェクトのClaude Codeを停止
M-x claude-code-ide-switch-to-bufferプロジェクトのClaudeバッファに切り替え
M-x claude-code-ide-list-sessionsすべてのアクティブなClaude Codeセッションを一覧表示して切り替え
M-x claude-code-ide-check-statusClaude Code CLIがインストールされ動作しているかチェック
M-x claude-code-ide-insert-at-mentioned選択されたテキストをClaudeプロンプトに送信
M-x claude-code-ide-send-escapeClaudeターミナルにエスケープキーを送信
M-x claude-code-ide-insert-newlineClaudeプロンプトに改行を挿入(\ + Enterを送信)
M-x claude-code-ide-show-debugWebSocketメッセージのデバッグバッファを表示
M-x claude-code-ide-clear-debugデバッグバッファをクリア

マルチプロジェクトサポート

Claude Code IDEはEmacsの組み込み project.el を使用してプロジェクトを自動検出します。各プロジェクトは *claude-code[project-name]* のような一意のバッファ名を持つ独自のClaude Codeインスタンスを取得します。

異なるプロジェクトに対して複数のClaude Codeインスタンスを同時に実行できます。=claude-code-ide-list-sessions= を使用してすべてのアクティブセッションを表示し、それらを切り替えます。

ウィンドウ管理

  • セッションがすでにアクティブな時に claude-code-ide を実行すると、ウィンドウの表示が切り替わります
  • ウィンドウはClaudeを停止することなく、標準的なEmacsウィンドウコマンド(=C-x 0=)で閉じることができます

設定

設定変数

変数説明デフォルト
claude-code-ide-cli-pathClaude Code CLIへのパス"claude"
claude-code-ide-buffer-name-functionバッファ命名のための関数claude-code-ide--default-buffer-name
claude-code-ide-cli-debugCLIデバッグモード(-dフラグ)を有効化nil
claude-code-ide-debugデバッグログを有効化nil
claude-code-ide-log-with-contextログメッセージにセッションコンテキストを含めるt
claude-code-ide-debug-bufferデバッグ出力のバッファ名"*claude-code-ide-debug*"
claude-code-ide-window-sideClaudeウィンドウの配置場所'right
claude-code-ide-window-widthサイドウィンドウの幅(左/右)90
claude-code-ide-window-heightサイドウィンドウの高さ(上/下)20
claude-code-ide-focus-on-open開く時にClaudeウィンドウにフォーカスt
claude-code-ide-focus-claude-after-ediffediff開後にClaudeウィンドウにフォーカスt

サイドウィンドウ設定

Claude Codeバッファはデフォルトでサイドウィンドウで開きます。配置をカスタマイズできます:

;; Claudeを左側で開く
(setq claude-code-ide-window-side 'left)
 
;; Claudeをカスタム高さで下部に開く
(setq claude-code-ide-window-side 'bottom
      claude-code-ide-window-height 30)
 
;; Claudeをカスタム幅で右側に開く
(setq claude-code-ide-window-side 'right
      claude-code-ide-window-width 100)
 
;; Claudeウィンドウに自動的にフォーカスしない
(setq claude-code-ide-focus-on-open nil)
 
;; diffを開く時はediffコントロールウィンドウにフォーカスを保持
(setq claude-code-ide-focus-claude-after-ediff nil)

カスタムバッファ命名

Claude Codeバッファの命名方法をカスタマイズできます:

(setq claude-code-ide-buffer-name-function
      (lambda (directory)
        (if directory
            (format "*Claude:%s*" (file-name-nondirectory (directory-file-name directory)))
          "*Claude:Global*")))

デバッグ

  • Claude CLIデバッグモード

    Claude Code CLIのデバッグモードを有効化するには(=-d= フラグを渡す):

    (setq claude-code-ide-cli-debug t)
  • Emacsデバッグログ

    Emacs内でのデバッグログを有効化するには(WebSocketメッセージとJSON-RPC通信をログ):

    (setq claude-code-ide-debug t)

    その後、以下でデバッグログを表示:

    • M-x claude-code-ide-show-debug - デバッグバッファを表示
    • M-x claude-code-ide-clear-debug - デバッグバッファをクリア

    デバッグバッファは以下を表示します:

    • WebSocket接続イベント
    • すべてのJSON-RPCメッセージ(リクエスト/レスポンス)
    • エラーメッセージと診断
    • セッションコンテキスト付きの一般デバッグ情報

ライセンス

このプロジェクトはGNU General Public License v3.0以降の下でライセンスされています。詳細についてはLICENSEファイルを参照してください。

関連プロジェクト