{"id":29016179,"url":"https://github.com/yuya373/claude-code-emacs","last_synced_at":"2026-02-02T06:05:24.059Z","repository":{"id":296584208,"uuid":"993857256","full_name":"yuya373/claude-code-emacs","owner":"yuya373","description":"This package provides seamless integration with Claude Code, allowing you to run AI-powered coding sessions directly in your Emacs environment.","archived":false,"fork":false,"pushed_at":"2025-09-19T19:08:41.000Z","size":690,"stargazers_count":43,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-22T05:21:23.327Z","etag":null,"topics":["claude","claude-code","emacs","mcp","mcp-server"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuya373.png","metadata":{"files":{"readme":"README.ja.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-31T17:10:27.000Z","updated_at":"2025-10-17T01:52:19.000Z","dependencies_parsed_at":"2025-07-14T05:13:06.737Z","dependency_job_id":"b5d24671-0af8-45a9-b181-d33fd04880a2","html_url":"https://github.com/yuya373/claude-code-emacs","commit_stats":null,"previous_names":["yuya373/claude-code-emacs"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/yuya373/claude-code-emacs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuya373%2Fclaude-code-emacs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuya373%2Fclaude-code-emacs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuya373%2Fclaude-code-emacs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuya373%2Fclaude-code-emacs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuya373","download_url":"https://codeload.github.com/yuya373/claude-code-emacs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuya373%2Fclaude-code-emacs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29006695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T04:25:24.522Z","status":"ssl_error","status_checked_at":"2026-02-02T04:24:51.069Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude","claude-code","emacs","mcp","mcp-server"],"created_at":"2025-06-25T22:07:12.093Z","updated_at":"2026-02-02T06:05:24.046Z","avatar_url":"https://github.com/yuya373.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Code Emacs\n\n[![CI Tests](https://github.com/yuya373/claude-code-emacs/actions/workflows/test.yml/badge.svg)](https://github.com/yuya373/claude-code-emacs/actions/workflows/test.yml)\n\n[Claude Code](https://docs.anthropic.com/ja/docs/claude-code) AIコーディングセッションをEmacsで直接実行。強力なMCP統合付き。\n\n## クイックスタート\n\n```elisp\n;; init.elに追加\n(add-to-list 'load-path \"/path/to/claude-code\")\n(require 'claude-code)\n(global-set-key (kbd \"C-c c\") 'claude-code-transient)\n```\n\n```bash\n# MCPサーバーをグローバルにインストール\nnpm install -g claude-code-mcp-server\n\n# Claude CodeでMCPを設定\nclaude mcp add-json emacs '{\n  \"type\": \"stdio\",\n  \"command\": \"claude-code-mcp\"\n}'\n```\n\n`M-x claude-code-run` でセッションを開始！\n\n## 主な機能\n\n### 🚀 コア機能\n- **プロジェクト別セッション** - 各プロジェクトが独立したClaude Codeバッファを持つ\n- **スマートファイル補完** - プロンプトで`@`を入力してファイル参照\n- **Transientメニュー** - `C-c c`でメインメニューと全コマンドにアクセス\n- **カスタムコマンド** - `.claude/commands/*.md`に再利用可能なコマンドを定義\n- **プロジェクトプロンプト** - プロジェクトごとの`.claude-code.prompt.md`ファイルで永続的なコンテキスト\n\n### 🔌 MCP統合\nClaude CodeがEmacs環境と直接やり取り：\n- **バッファ操作** - 開いているバッファの一覧/読み取り、選択テキストの取得\n- **LSP統合** - 診断取得、定義/参照の検索、シンボル説明\n- **差分ツール** - ファイル比較、git変更表示\n- **リアルタイムイベント** - バッファ変更と診断が自動的にClaude Codeに送信\n\n### ⌨️ キーバインド\n\n#### グローバル\n| キー | アクション |\n|-----|--------|\n| `C-c c` | メインTransientメニューを開く |\n| `C-u M-x claude-code-run` | オプション付きで起動（モデル、再開など） |\n\n#### Claude Codeセッション内（vtermモード）\n| キー | アクション |\n|-----|--------|\n| `C-c C-q` | Claude Codeウィンドウを閉じる |\n| `C-c C-k` | Escapeキーを送信 |\n| `C-c C-r` | Ctrl+Rを送信（展開の切り替え） |\n| `C-c C-e` | Ctrl+Eを送信（さらに展開） |\n| `C-c RET` | Returnキーを送信 |\n| `C-c TAB` | Shift+Tabを送信（自動承認の切り替え） |\n| `C-c C-t` | Transientメニューを開く |\n\n#### プロンプトバッファ内\n| キー | アクション |\n|-----|--------|\n| `C-c C-s` | カーソル位置のセクションを送信 |\n| `C-c C-r` | 選択範囲を送信 |\n| `C-c C-o` | Claude Codeセッションを開く |\n| `C-c C-t` | プロンプトTransientメニューを開く |\n| `@` | ファイル補完 |\n\n#### Transientメニュー内（C-c c）\n| キー | アクション |\n|-----|--------|\n| `1`/`y` | 1を送信（はい） |\n| `2` | 2を送信 |\n| `3` | 3を送信 |\n| `k` | Escapeを送信 |\n| `e` | Ctrl+Eを送信（さらに展開） |\n| `r` | Ctrl+Rを送信（展開の切り替え） |\n| `g` | Git \u0026 GitHubメニュー |\n| `/` | スラッシュコマンドメニュー |\n\n## よくある使い方\n\n### プロジェクトプロンプト\n各プロジェクトのルートに`.claude-code.prompt.md`ファイルが作成されます。このファイルを開くと、素早くプロンプトを入力できるよう自動的に最後尾に移動します：\n```markdown\n# Claude Code Prompts for my-project\n\nこのファイルにはClaude Codeセッション用のプロンプトが含まれています。\n\n## プロンプト例\n\n@src/utils.jsで空文字列時にパーサーが失敗するバグを修正\n\n---\n\n@src/api/auth.jsのユニットテストを追加\n```\n`M-x claude-code-open-prompt-file`またはTransientメニューの`p`で開きます。\n\n### LSPエラーの修正\n```elisp\nM-x claude-code-fix-diagnostic\n;; またはTransientメニューで 'f'\n```\n\n### カスタムコマンド\n`.claude/commands/refactor.md`を作成：\n```markdown\n次のコードをリファクタリングしてください: $ARGUMENTS\n```\nTransientメニューで`x` → \"refactor\"を選択して実行\n\n### Git操作\nメインメニューで`g`を押してgitコマンド：\n- `g` - コミット\n- `p` - プッシュ\n- `r` - 変更をレビュー\n- `c` - PRコメント\n\n## 必要環境\n\n- Emacs 28.1以上\n- [Claude Code CLI](https://docs.anthropic.com/ja/docs/claude-code)インストール済み\n- Node.js 16以上（MCP用）\n- 必須パッケージ: `projectile`、`vterm`、`transient`、`markdown-mode`\n- オプションパッケージ:\n  - `lsp-mode` (9.0.0以上): LSP診断修正とMCPツール統合用\n  - `websocket` (1.15以上): MCPサーバーのWebSocket通信用\n  - `alert`: デスクトップ通知用\n\n## インストールの詳細\n\n### MCPサーバーのインストール\n\n#### オプション1: グローバルインストール（推奨）\n```bash\n# npmからグローバルにインストール\nnpm install -g claude-code-mcp-server\n\n# Claude Codeを設定\nclaude mcp add-json emacs '{\n  \"type\": \"stdio\",\n  \"command\": \"claude-code-mcp\"\n}'\n```\n\n#### オプション2: npxを使用（インストール不要）\n```bash\n# Claude Codeでnpxを使うよう設定\n# npxはパッケージを必要に応じてダウンロードして実行\nclaude mcp add-json emacs '{\n  \"type\": \"stdio\",\n  \"command\": \"npx\",\n  \"args\": [\"claude-code-mcp-server\"]\n}'\n```\n\n#### オプション3: ソースからビルド\n```bash\n# リポジトリをクローンした場合\ncd /path/to/claude-code/mcp-server\nnpm install\nnpm run build\n\n# Claude Codeを設定\nclaude mcp add-json emacs '{\n  \"type\": \"stdio\",\n  \"command\": \"node\",\n  \"args\": [\"/path/to/claude-code/mcp-server/dist/index.js\"]\n}'\n```\n\n詳しいMCP設定は[docs/MCP-SETUP.md](docs/MCP-SETUP.md)を参照。\n\n## アーキテクチャ\n\n- **モジュラー設計** - バッファ管理、コマンド、UI、MCPで個別モジュール\n- **プロジェクト別WebSocket** - 各プロジェクトが独自のMCP接続を維持\n- **自動再接続** - ping/pongによるMCP接続の健全性監視\n- **イベントバッチング** - デバウンス付きの効率的なリアルタイム通知\n\n## コントリビューション\n\n1. リポジトリをフォーク\n2. 機能ブランチを作成\n3. 新機能のテストを追加\n4. `make test`で全テストの成功を確認\n5. プルリクエストを送信\n\n### 開発コマンド\n\n```bash\n# すべての依存関係（オプションも含む）でコンパイル\nmake compile\n\n# オプションの依存関係（websocket、lsp-mode）なしでコンパイル\n# MELPAの互換性テストに便利\nmake compile-minimal\n\n# テストを実行\nmake test\n\n# package-lintを実行\nmake lint\n```\n\n## リリースプロセス\n\nGitHub Actionsを使用した自動リリース：\n\n### 新しいリリースの作成\n\n#### オプション1: GitHub CLIを使用（推奨）\n```bash\n# ドラフトリリースを作成\n./scripts/create-release.sh 0.2.0\n\n# または即座に公開\n./scripts/create-release.sh 0.2.0 --publish\n```\n\n#### オプション2: GitHub Actionsを使用\n1. Actions → Create Release Draft → Run workflowに移動\n2. バージョン番号を入力（例：0.2.0）\n\n#### 最終ステップ\n1. 自動生成されたリリースノートを確認\n2. 必要に応じて編集\n3. 「Publish release」をクリック（ドラフトの場合）\n\n3. **自動化されるステップ**（公開後）：\n   - Gitタグが自動的に作成されます\n   - 以下のファイルのバージョン番号が更新されます：\n     - `claude-code.el`\n     - `mcp-server/package.json`\n   - MCPサーバーがnpmに公開されます\n   - MELPAレシピが生成されます\n\n### 手動バージョン更新\n\nローカルでのバージョン更新：\n```bash\n./scripts/update-version.sh 0.2.0\n```\n\n## ライセンス\n\nGPL-3.0-or-later\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuya373%2Fclaude-code-emacs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuya373%2Fclaude-code-emacs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuya373%2Fclaude-code-emacs/lists"}