[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-manzaltu--claude-code-ide.el":3,"tool-manzaltu--claude-code-ide.el":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,43,44,45,15,46,26,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70612,"2026-04-05T11:12:22",[26,15,13,45],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":80,"owner_twitter":80,"owner_website":82,"owner_url":83,"languages":84,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":23,"env_os":97,"env_gpu":97,"env_ram":97,"env_deps":98,"category_tags":106,"github_topics":80,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":107,"updated_at":108,"faqs":109,"releases":138},537,"manzaltu\u002Fclaude-code-ide.el","claude-code-ide.el","Claude Code IDE integration for Emacs","claude-code-ide.el 是一款专为 Emacs 用户打造的 AI 编程助手集成插件。它将 Anthropic 的 Claude Code 命令行工具深度嵌入到 Emacs 环境中，打破了传统 AI 聊天窗口与编辑器之间的隔阂。\n\n许多开发者在使用 AI 辅助编程时，常面临上下文割裂的问题：AI 无法感知当前打开的文件、选中的代码段或项目的整体结构。claude-code-ide.el 通过 Model Context Protocol (MCP) 建立了双向桥梁，让 AI 能够实时理解 Emacs 的工作状态。它不仅支持自动检测项目和会话管理，还能利用 Emacs 强大的生态能力，如 LSP 代码导航、Tree-sitter 语法分析以及 Flycheck\u002FFlymake 诊断信息。\n\n对于习惯 Emacs 工作流的软件开发者而言，这是一个提升效率的神器。你可以直接在编辑器内获得智能的代码重构建议，并通过集成的 ediff 视图在应用修改前进行审查。此外，它支持将任意 Emacs 命令暴露给 AI，实现高度定制化的自动化操作。claude-code-ide.el 让 AI","claude-code-ide.el 是一款专为 Emacs 用户打造的 AI 编程助手集成插件。它将 Anthropic 的 Claude Code 命令行工具深度嵌入到 Emacs 环境中，打破了传统 AI 聊天窗口与编辑器之间的隔阂。\n\n许多开发者在使用 AI 辅助编程时，常面临上下文割裂的问题：AI 无法感知当前打开的文件、选中的代码段或项目的整体结构。claude-code-ide.el 通过 Model Context Protocol (MCP) 建立了双向桥梁，让 AI 能够实时理解 Emacs 的工作状态。它不仅支持自动检测项目和会话管理，还能利用 Emacs 强大的生态能力，如 LSP 代码导航、Tree-sitter 语法分析以及 Flycheck\u002FFlymake 诊断信息。\n\n对于习惯 Emacs 工作流的软件开发者而言，这是一个提升效率的神器。你可以直接在编辑器内获得智能的代码重构建议，并通过集成的 ediff 视图在应用修改前进行审查。此外，它支持将任意 Emacs 命令暴露给 AI，实现高度定制化的自动化操作。claude-code-ide.el 让 AI 真正成为了懂你工作环境的智能伙伴，而非仅仅是外部的聊天机器人。","#+TITLE: Claude Code IDE for Emacs\n#+AUTHOR: Yoav Orot\n#+EMAIL: orot.yoav@gmail.com\n#+DESCRIPTION: Claude Code integration for Emacs\n#+KEYWORDS: emacs, claude, ai, code-assistant\n#+OPTIONS: toc:t num:nil\n\n[[https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\u002Factions\u002Fworkflows\u002Ftest.yml][file:https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\u002Fworkflows\u002FCI\u002Fbadge.svg]]\n[[https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Femacs\u002F][file:https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGNU%20Emacs-28--30-blueviolet.svg]]\n[[https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-3.0][file:https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-GPL%20v3-blue.svg]]\n\n* Overview\n\nClaude Code IDE for Emacs provides native integration with Claude Code CLI through the Model Context Protocol (MCP). Unlike simple terminal wrappers, this package creates a bidirectional bridge between Claude and Emacs, enabling Claude to understand and leverage Emacs' powerful features—from LSP and project management to custom Elisp functions. This transforms Claude into a true Emacs-aware AI assistant that works within your existing workflow and can interact with your entire Emacs ecosystem.\n\n** Features\n\n- Automatic project detection and session management\n- Terminal integration with full color support using =vterm= or =eat=\n- MCP protocol implementation for IDE integration\n- Tool support for file operations, editor state, and workspace info\n- Extensible MCP tools server for accessing Emacs commands (xrefs, tree-sitter, project info, e.g.)\n- Diagnostic integration with Flycheck and Flymake\n- Advanced diff view with ediff integration (modify suggestions before applying)\n- Tab-bar support for proper context switching\n- Selection and buffer tracking for better context awareness\n\n** Emacs Tool Integration\n\nThis package enables Claude Code to leverage the full power of Emacs through MCP tools integration. Claude can directly access and utilize Emacs capabilities including:\n\n- *Language Server Protocol (LSP)* integration through xref commands for intelligent code navigation (eglot, lsp-mode and others)\n- *Tree-sitter* for syntax tree analysis and understanding code structure at the AST level\n- *Imenu* for structured symbol listing and navigation within files\n- *Project* integration for project-aware operations\n- *Any Emacs command or function* can be exposed as an MCP tool, allowing Claude to:\n  - Perform project-wide searches and refactoring\n  - Access specialized modes and their features\n  - Execute custom Elisp functions tailored to your workflow\n\nThis deep integration means Claude Code understands your project context and can leverage Emacs' extensive ecosystem to provide more intelligent and context-aware assistance.\n\n** Screenshots\n\n*** Active File Awareness\n#+CAPTION: Claude Code automatically knows which file you're currently viewing in Emacs\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_1d3e8e776739.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>Claude Code automatically knows which file you're currently viewing in Emacs\u003C\u002Fi>\u003C\u002Fp>\n\n*** Code Selection Context\n#+CAPTION: Claude Code can access and work with selected text in your buffers\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_4538c9956bda.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>Claude Code can access and work with selected text in your buffers\u003C\u002Fi>\u003C\u002Fp>\n\n*** Advanced Diff View with Diagnostics\n#+CAPTION: Integrated ediff view for code changes, with Claude Code able to directly access diagnostic data (errors, warnings, etc.) from opened files\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_b7c78377abef.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>Integrated ediff view for code changes, with Claude Code able to directly access diagnostic data (errors, warnings, etc.) from opened files\u003C\u002Fi>\u003C\u002Fp>\n\n*** Automatic Text Mentions\n#+CAPTION: Automatically mention and reference selected text in Claude conversations\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_d4bfb3769d1a.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>Automatically mention and reference selected text in Claude conversations\u003C\u002Fi>\u003C\u002Fp>\n\n*** Session Restoration\n#+CAPTION: Resume previous Claude Code conversations with the --resume flag\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_5ac772ff9bcf.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>Resume previous Claude Code conversations with the --resume flag\u003C\u002Fi>\u003C\u002Fp>\n\n* Installation\n\n** Prerequisites\n\n- Emacs 28.1 or higher\n- Claude Code CLI installed and available in PATH\n- =vterm= or =eat= package (for terminal support)\n\n** Installing Claude Code CLI\n\nFollow the installation instructions at [[https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code][Claude Code Documentation]].\n\n** Installing the Emacs Package\n\nCurrently, this package is in early development.\n\nTo install using =emacs-version= >= 30 and =use-package= with the =vc= binding:\n\n#+begin_src elisp\n(use-package claude-code-ide\n  :vc (:url \"https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\" :rev :newest)\n  :bind (\"C-c C-'\" . claude-code-ide-menu) ; Set your favorite keybinding\n  :config\n  (claude-code-ide-emacs-tools-setup)) ; Optionally enable Emacs MCP tools\n#+end_src\n\nTo install using =use-package= and [[https:\u002F\u002Fgithub.com\u002Fraxod502\u002Fstraight.el][straight.el]]:\n\n#+begin_src emacs-lisp\n(use-package claude-code-ide\n  :straight (:type git :host github :repo \"manzaltu\u002Fclaude-code-ide.el\")\n  :bind (\"C-c C-'\" . claude-code-ide-menu) ; Set your favorite keybinding\n  :config\n  (claude-code-ide-emacs-tools-setup)) ; Optionally enable Emacs MCP tools\n#+end_src\n\n*** Doom Emacs\n\nIn =packages.el=:\n\n#+begin_src emacs-lisp\n(package! claude-code-ide\n  :recipe (:host github :repo \"manzaltu\u002Fclaude-code-ide.el\"))\n#+end_src\n\nIn =config.el=:\n#+begin_src emacs-lisp\n(use-package! claude-code-ide\n  :bind (\"C-c C-'\" . claude-code-ide-menu) ; Set your favorite keybinding\n  :config\n  (claude-code-ide-emacs-tools-setup)) ; Optionally enable Emacs MCP tools\n#+end_src\n\nAfter saving the above, run: =doom sync= in the terminal.\n\n* Usage\n\n** Basic Commands\n\nThe easiest way to interact with Claude Code IDE is through the transient menu interface, which provides visual access to all available commands. Simply run =M-x claude-code-ide-menu= to open the interactive menu.\n\n| Command                                 | Description                                       |\n|-----------------------------------------+---------------------------------------------------|\n| =M-x claude-code-ide-menu=                | Open transient menu with all Claude Code commands |\n| =M-x claude-code-ide-emacs-tools-setup=   | Set up built-in MCP tools (e.g. xref, project)    |\n| =M-x claude-code-ide=                     | Start Claude Code for the current project         |\n| =M-x claude-code-ide-send-prompt=         | Send prompt to Claude from minibuffer input       |\n| =M-x claude-code-ide-continue=            | Continue most recent conversation in directory    |\n| =M-x claude-code-ide-resume=              | Resume Claude Code with previous conversation     |\n| =M-x claude-code-ide-stop=                | Stop Claude Code for the current project          |\n| =M-x claude-code-ide-switch-to-buffer=    | Switch to project's Claude buffer                 |\n| =M-x claude-code-ide-list-sessions=       | List all active Claude Code sessions and switch   |\n| =M-x claude-code-ide-check-status=        | Check if Claude Code CLI is installed and working |\n| =M-x claude-code-ide-insert-at-mentioned= | Send selected text to Claude prompt               |\n| =M-x claude-code-ide-send-escape=         | Send escape key to Claude terminal                |\n| =M-x claude-code-ide-insert-newline=      | Insert newline in Claude prompt (sends \\ + Enter) |\n| =M-x claude-code-ide-toggle=              | Toggle visibility of Claude Code window           |\n| =M-x claude-code-ide-toggle-recent=       | Toggle most recent Claude window globally         |\n| =M-x claude-code-ide-show-debug=          | Show the debug buffer with WebSocket messages     |\n| =M-x claude-code-ide-clear-debug=         | Clear the debug buffer                            |\n\n** Multi-Project Support\n\nClaude Code IDE automatically detects your project using Emacs' built-in =project.el=. Each project gets its own Claude Code instance with a unique buffer name like =*claude-code[project-name]*=.\n\nYou can run multiple Claude Code instances simultaneously for different projects. Use =claude-code-ide-list-sessions= to see all active sessions and switch between them.\n\n** Window Management\n\n- Running =claude-code-ide= when a session is already active will toggle the window visibility\n- The window can be closed with standard Emacs window commands (=C-x 0=) without stopping Claude\n- Use =claude-code-ide-toggle-recent= to toggle the most recent Claude window from anywhere, regardless of your current project context. This is useful when you're outside a project directory but want to quickly hide\u002Fshow Claude\n\n** Diff Viewing with Ediff\n\nWhen =claude-code-ide-use-ide-diff= is enabled (default), Claude's code suggestions are displayed using Emacs' powerful =ediff= interface. This provides two key advantages:\n\n1. *Visual diff comparison* - See exactly what Claude wants to change with side-by-side or unified diff views\n2. *Interactive editing* - You can modify Claude's suggestions before applying them\n\n*** How to use ediff:\n\n1. When Claude suggests code changes, =ediff= opens automatically\n2. The ediff control buffer becomes active (a small window with ediff commands)\n3. Buffer A shows the current code, Buffer B shows Claude's suggestion\n4. You can modify Buffer B to refine Claude's proposed changes\n5. Press =q= in the ediff control buffer to quit\n6. When prompted, choose whether to accept the changes (=y= or =n=)\n7. If you accept (=y=), any changes from Buffer B will be sent back to Claude to be applied on the original file\n\nThis allows you to refine Claude's suggestions before they're applied, ensuring the final code meets your exact requirements.\n\n** Configuration\n\n*** Configuration Variables\n\n| Variable                                      | Description                                 | Default                              |\n|-----------------------------------------------+---------------------------------------------+--------------------------------------|\n| ~claude-code-ide-cli-path~                      | Path to Claude Code CLI                     | ~\"claude\"~                             |\n| ~claude-code-ide-buffer-name-function~          | Function for buffer naming                  | ~claude-code-ide--default-buffer-name~ |\n| ~claude-code-ide-cli-debug~                     | Enable CLI debug mode (-d flag)             | ~nil~                                  |\n| ~claude-code-ide-cli-extra-flags~               | Additional CLI flags (e.g. \"--model\")       | ~\"\"~                                   |\n| ~claude-code-ide-debug~                         | Enable debug logging                        | ~nil~                                  |\n| ~claude-code-ide-terminal-backend~              | Terminal backend (vterm or eat)             | ~'vterm~                               |\n| ~claude-code-ide-vterm-anti-flicker~            | Enable vterm flicker reduction              | ~t~                                    |\n| ~claude-code-ide-vterm-render-delay~            | vterm render batching delay (seconds)       | ~0.005~                                |\n| ~claude-code-ide-terminal-initialization-delay~ | Initialization delay for terminals          | ~0.1~                                  |\n| ~claude-code-ide-log-with-context~              | Include session context in log messages     | ~t~                                    |\n| ~claude-code-ide-debug-buffer~                  | Buffer name for debug output                | ~\"*claude-code-ide-debug*\"~              |\n| ~claude-code-ide-use-side-window~               | Use side window vs regular buffer           | ~t~                                    |\n| ~claude-code-ide-window-side~                   | Side for Claude window                      | ~'right~                               |\n| ~claude-code-ide-window-width~                  | Width for side windows (left\u002Fright)         | ~90~                                   |\n| ~claude-code-ide-window-height~                 | Height for side windows (top\u002Fbottom)        | ~20~                                   |\n| ~claude-code-ide-focus-on-open~                 | Focus Claude window when opened             | ~t~                                    |\n| ~claude-code-ide-focus-claude-after-ediff~      | Focus Claude window after opening ediff     | ~t~                                    |\n| ~claude-code-ide-show-claude-window-in-ediff~   | Show Claude window during ediff             | ~t~                                    |\n| ~claude-code-ide-use-ide-diff~                  | Use IDE diff viewer instead of terminal     | ~t~                                    |\n| ~claude-code-ide-switch-tab-on-ediff~           | Switch to Claude's tab when opening ediff   | ~t~                                    |\n| ~claude-code-ide-system-prompt~                 | Custom system prompt to append              | ~nil~                                  |\n| ~claude-code-ide-enable-mcp-server~             | Enable MCP tools server                     | ~nil~                                  |\n| ~claude-code-ide-mcp-server-port~               | Port for MCP tools server                   | ~nil~ (auto-select)                    |\n| ~claude-code-ide-mcp-server-tools~              | Alist of exposed Emacs functions            | ~nil~                                  |\n| ~claude-code-ide-diagnostics-backend~           | Diagnostics backend (auto\u002Fflycheck\u002Fflymake) | ~'auto~                                |\n| ~claude-code-ide-prevent-reflow-glitch~         | Prevent terminal reflow glitch (bug #1422)  | ~t~                                    |\n\n*** Side Window Configuration\n\nClaude Code buffers open in a side window by default. You can customize the placement:\n\n#+begin_src emacs-lisp\n;; Open Claude on the left side\n(setq claude-code-ide-window-side 'left)\n\n;; Open Claude at the bottom with custom height\n(setq claude-code-ide-window-side 'bottom\n      claude-code-ide-window-height 30)\n\n;; Open Claude on the right with custom width\n(setq claude-code-ide-window-side 'right\n      claude-code-ide-window-width 100)\n\n;; Don't automatically focus the Claude window\n(setq claude-code-ide-focus-on-open nil)\n\n;; Keep focus on ediff control window when opening diffs\n(setq claude-code-ide-focus-claude-after-ediff nil)\n\n;; Hide Claude window during ediff for more screen space\n(setq claude-code-ide-show-claude-window-in-ediff nil)\n\n;; Disable IDE diff viewer to show diffs in terminal instead\n(setq claude-code-ide-use-ide-diff nil)\n#+end_src\n\nOr, if you'd prefer to use a regular window:\n\n#+begin_src emacs-lisp\n;; Use regular window instead of side window\n(setq claude-code-ide-use-side-window nil)\n#+end_src\n\n*** Terminal Backend Configuration\n\nClaude Code IDE supports both =vterm= and =eat= as terminal backends. By default, it uses =vterm=, but you can switch to =eat= if preferred:\n\n#+begin_src emacs-lisp\n;; Use eat instead of vterm\n(setq claude-code-ide-terminal-backend 'eat)\n\n;; Or switch back to vterm (default)\n(setq claude-code-ide-terminal-backend 'vterm)\n#+end_src\n\nThe =eat= backend is a pure Elisp terminal emulator that may work better in some environments where =vterm= compilation is problematic. Both backends provide full terminal functionality including color support and special key handling.\n\n**** vterm Rendering Optimization\n\nClaude Code IDE includes intelligent flicker reduction for vterm terminals to provide smoother visual output:\n\n#+begin_src emacs-lisp\n;; Enable\u002Fdisable vterm anti-flicker optimization (enabled by default)\n(setq claude-code-ide-vterm-anti-flicker t)\n\n;; Adjust the render delay for batching updates (default is 0.005 seconds)\n(setq claude-code-ide-vterm-render-delay 0.01)  ; Increase for smoother but less responsive\n#+end_src\n\nThis optimization detects rapid terminal redraw sequences (like when Claude expands text areas) and batches them for smoother rendering. The 5ms default delay provides optimal visual quality with imperceptible latency.\n\n**** Terminal Initialization Delay\n\nClaude Code IDE includes a brief initialization delay when launching terminals to ensure proper layout rendering:\n\n#+begin_src emacs-lisp\n;; Adjust the terminal initialization delay (default is 0.1 seconds)\n(setq claude-code-ide-terminal-initialization-delay 0.15)\n\n;; Or disable it entirely (may cause visual glitches)\n(setq claude-code-ide-terminal-initialization-delay 0)\n#+end_src\n\nThis delay prevents display artifacts such as misaligned prompts and incorrect cursor positioning that can occur when terminal emulation is initializing. The default 100ms delay is imperceptible but ensures reliable terminal startup.\n\n**** Terminal Keybindings\n\nClaude Code IDE adds custom keybindings to the terminal for easier interaction:\n\n| Keybinding | Command                        | Description                          |\n|------------+--------------------------------+--------------------------------------|\n| =M-RET=      | =claude-code-ide-insert-newline= | Insert a newline in the prompt       |\n| =C-\u003Cescape>= | =claude-code-ide-send-escape=    | Send escape key to cancel operations |\n\nThese keybindings are automatically set up for both =vterm= and =eat= backends and only apply within Claude Code terminal buffers.\n\n**** Terminal Reflow Glitch Prevention (Temporary)\n\nClaude Code IDE includes a temporary workaround for a known Claude Code bug ([[https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fissues\u002F1422][#1422]]) where terminal reflows during window resizes can cause uncontrollable scrolling. This workaround is enabled by default but can be disabled if needed:\n\n#+begin_src emacs-lisp\n;; Disable the terminal reflow glitch prevention (not recommended until bug is fixed)\n(setq claude-code-ide-prevent-reflow-glitch nil)\n#+end_src\n\nThe workaround will be removed once the upstream bug is fixed.\n\n*** Diagnostics Configuration\n\nClaude Code IDE supports both Flycheck and Flymake for code diagnostics. By default, it will automatically detect which one is active:\n\n#+begin_src emacs-lisp\n;; Let Claude Code automatically detect the active diagnostics backend\n(setq claude-code-ide-diagnostics-backend 'auto) ; default\n\n;; Or force a specific backend\n(setq claude-code-ide-diagnostics-backend 'flycheck)\n(setq claude-code-ide-diagnostics-backend 'flymake)\n#+end_src\n\n*** Custom Buffer Naming\n\nYou can customize how Claude Code buffers are named:\n\n#+begin_src emacs-lisp\n(setq claude-code-ide-buffer-name-function\n      (lambda (directory)\n        (if directory\n            (format \"*Claude:%s*\" (file-name-nondirectory (directory-file-name directory)))\n          \"*Claude:Global*\")))\n#+end_src\n\n*** Custom CLI Flags\n\nYou can pass additional flags to the Claude Code CLI:\n\n#+begin_src emacs-lisp\n;; Use a specific model\n(setq claude-code-ide-cli-extra-flags \"--model opus\")\n\n;; Pass multiple flags\n(setq claude-code-ide-cli-extra-flags \"--model opus --no-cache\")\n\n;; Flags are added to all Claude Code sessions\n#+end_src\n\nNote: These flags are appended to the Claude command after any built-in flags like =-d= (debug) or =-r= (resume).\n\n*** Custom System Prompt\n\nYou can append a custom system prompt to Claude's default prompt, allowing you to customize Claude's behavior for specific projects or contexts:\n\n#+begin_src emacs-lisp\n;; Set a custom system prompt\n(setq claude-code-ide-system-prompt \"You are an expert in Elisp and Emacs development.\")\n\n;; Or configure it per-project using dir-locals.el\n;; In .dir-locals.el:\n((nil . ((claude-code-ide-system-prompt . \"Focus on functional programming patterns and avoid mutations.\"))))\n\n;; Set via the transient menu: M-x claude-code-ide-menu → Configuration → Set system prompt\n#+end_src\n\nWhen set, this adds the =--append-system-prompt= flag to the Claude command. Set to =nil= to disable (default).\n\n*** Debugging\n\n**** Claude CLI Debug Mode\n\nTo enable debug mode for Claude Code CLI (passes the =-d= flag):\n\n#+begin_src emacs-lisp\n(setq claude-code-ide-cli-debug t)\n#+end_src\n\n**** Emacs Debug Logging\n\nTo enable debug logging within Emacs (logs WebSocket messages and JSON-RPC communication):\n\n#+begin_src emacs-lisp\n(setq claude-code-ide-debug t)\n#+end_src\n\nThen view debug logs with:\n- =M-x claude-code-ide-show-debug= - Show the debug buffer\n- =M-x claude-code-ide-clear-debug= - Clear the debug buffer\n\nThe debug buffer shows:\n- WebSocket connection events\n- All JSON-RPC messages (requests\u002Fresponses)\n- Error messages and diagnostics\n- General debug information with session context\n\n** Multiple Claude Code Instances on One Project\n\nUsing git worktrees is the recommended way for running multiple Claude Code instances on different branches of the same project. This allows you to develop features or fix bugs in parallel:\n\n#+begin_src bash\n# Create a new worktree for a feature branch\ngit worktree add ..\u002Fmyproject-worktree feature-branch\n#+end_src\n\n#+begin_src elisp\n;; Start Claude Code in the main project\nfind-file \u002Fpath\u002Fto\u002Fmyproject\nM-x claude-code-ide\n\n;; Start another Claude Code instance in the worktree\nfind-file \u002Fpath\u002Fto\u002Fmyproject-worktree\nM-x claude-code-ide\n#+end_src\n\nEach worktree is treated as a separate project by =project.el=, allowing you to have independent Claude Code sessions with their own buffers (e.g., =*claude-code[myproject]*= and =*claude-code[myproject-worktree]*=).\n\n** Emacs MCP Tools\n\nClaude Code IDE includes built-in MCP tools that expose Emacs functionality to Claude, enabling powerful code navigation and analysis capabilities:\n\n*** Built-in Tools\n\n- =xref-find-references= - Find all references to a symbol throughout the project\n- =xref-find-apropos= - Find symbols matching a pattern across the entire project\n- =treesit-info= - Get tree-sitter syntax tree information for deep code structure analysis\n- =imenu-list-symbols= - List all symbols (functions, classes, variables) in a file using imenu\n- =project-info= - Get information about the current project (directory, files, etc.)\n\n*** Enabling MCP Tools\n\nTo enable these tools, add to your configuration:\n\n#+begin_src emacs-lisp\n;; Set up the built-in Emacs tools\n(claude-code-ide-emacs-tools-setup)\n#+end_src\n\nOnce enabled, Claude can use these tools to navigate your codebase. For example:\n- \"Find the definition of function foo\"\n- \"Show me all places where this variable is used\"\n- \"What type of AST node is under the cursor?\"\n- \"Analyze the parse tree of this entire file\"\n- \"List all functions and variables in this file\"\n- \"How many files are in this project?\"\n\n** Creating Custom MCP Tools\n\nYou can expose your own Emacs functions to Claude through the MCP tools system. This allows Claude to interact with specialized Emacs features, custom commands, or domain-specific functionality.\n\n*** Tool Definition Format\n\nDefine tools using the =claude-code-ide-make-tool= function:\n\n#+begin_src emacs-lisp\n(claude-code-ide-make-tool\n :function #'function-name     ; The Emacs function to call\n :name \"tool_name\"             ; Name for Claude to use (snake_case recommended)\n :description \"...\"            ; Human-readable description\n :args '((:name \"param1\"       ; List of argument specifications\n          :type string         ; Type: string, number, integer, boolean, etc.\n          :description \"...\"   ; What this parameter does\n          :optional t)))       ; Optional parameters marked with :optional t\n#+end_src\n\nAvailable argument types: =string=, =number=, =integer=, =boolean=, =array=, =object=, =null=\n\n*** Context-Aware Tool Example\n\n#+begin_src emacs-lisp\n;; Define a context-aware function that operates in the session's project\n(defun my-project-grep (pattern)\n  \"Search for PATTERN in the current session's project.\"\n  (claude-code-ide-mcp-server-with-session-context nil\n    ;; This executes with the session's project directory as default-directory\n    (let* ((project-dir default-directory)\n           (results (shell-command-to-string\n                    (format \"rg -n '%s' %s\" pattern project-dir))))\n      results)))\n\n;; Define and register the tool (automatically added to claude-code-ide-mcp-server-tools)\n(claude-code-ide-make-tool\n :function #'my-project-grep\n :name \"my_project_grep\"\n :description \"Search for pattern in project files\"\n :args '((:name \"pattern\"\n          :type string\n          :description \"Pattern to search for\")))\n\n;; Enable Emacs tool MCP server\n(claude-code-ide-emacs-tools-setup)\n#+end_src\n\nThe =claude-code-ide-mcp-server-with-session-context= macro ensures your tool executes in the correct project context.\n\n* License\n\nThis project is licensed under the GNU General Public License v3.0 or later. See the LICENSE file for details.\n\n* Trademark Notice\n\nClaude® is a registered trademark of Anthropic, PBC. Claude Code is an application developed by Anthropic, PBC.\n\n* Related Projects\n\n- [[https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code][Claude Code CLI]]\n- [[https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code][Claude Code VS Code Extension]]\n- [[https:\u002F\u002Fgithub.com\u002Fcoder\u002Fclaudecode.nvim][claudecode.nvim]] - Neovim integration\n","#+TITLE: Emacs 的 Claude Code IDE\n#+AUTHOR: Yoav Orot\n#+EMAIL: orot.yoav@gmail.com\n#+DESCRIPTION: Emacs 的 Claude Code 集成\n#+KEYWORDS: emacs, claude, ai, code-assistant\n#+OPTIONS: toc:t num:nil\n\n[[https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\u002Factions\u002Fworkflows\u002Ftest.yml][file:https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\u002Fworkflows\u002FCI\u002Fbadge.svg]]\n[[https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Femacs\u002F][file:https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGNU%20Emacs-28--30-blueviolet.svg]]\n[[https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-3.0][file:https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-GPL%20v3-blue.svg]]\n\n* 概述\n\nEmacs 的 Claude Code IDE 通过模型上下文协议 (Model Context Protocol, MCP) 提供与 Claude Code CLI 的原生集成。与简单的终端包装器不同，此软件包在 Claude 和 Emacs 之间创建了一个双向桥梁，使 Claude 能够理解并利用 Emacs 的强大功能——从语言服务器协议 (LSP) 和项目管理和自定义 Elisp 函数。这将 Claude 转变为真正的 Emacs 感知 AI 助手，它可以在您现有的工作流程中工作，并与您的整个 Emacs 生态系统进行交互。\n\n** 功能\n\n- 自动项目检测和会话管理\n- 使用 =vterm= 或 =eat= 的全彩支持终端集成\n- 用于 IDE 集成的 MCP 协议实现\n- 支持文件操作、编辑器状态和工作区信息的工具支持\n- 可扩展的 MCP 工具服务器，用于访问 Emacs 命令（如 xrefs、tree-sitter、项目信息等）\n- 与 Flycheck 和 Flymake 的诊断集成\n- 带有 ediff 集成的高级差异视图（应用前修改建议）\n- 用于正确上下文切换的标签栏支持\n- 选择和缓冲区跟踪以提供更好的上下文感知\n\n** Emacs 工具集成\n\n此软件包使 Claude Code 能够通过 MCP 工具集成利用 Emacs 的全部功能。Claude 可以直接访问和利用 Emacs 的功能，包括：\n\n- 通过 xref 命令的*语言服务器协议 (Language Server Protocol, LSP)*集成，用于智能代码导航（eglot, lsp-mode 等）\n- *Tree-sitter*用于语法树分析，并在抽象语法树 (AST) 级别理解代码结构\n- *Imenu*用于结构化符号列表和文件内导航\n- *Project*集成用于感知项目的操作\n- *任何 Emacs 命令或函数*都可以作为 MCP 工具暴露，允许 Claude：\n  - 执行项目范围的搜索和重构\n  - 访问专用模式及其功能\n  - 执行针对您工作流程定制的自定义 Elisp 函数\n\n这种深度集成意味着 Claude Code 了解您的项目上下文，并可以利用 Emacs 广泛的生态系统来提供更智能和上下文感知的辅助。\n\n** 截图\n\n*** 活动文件感知\n#+CAPTION: Claude Code 自动知道您在 Emacs 中当前查看的文件\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_1d3e8e776739.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>Claude Code 自动知道您在 Emacs 中当前查看的文件\u003C\u002Fi>\u003C\u002Fp>\n\n*** 代码选择上下文\n#+CAPTION: Claude Code 可以访问和处理缓冲区中的选定文本\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_4538c9956bda.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>Claude Code 可以访问和处理缓冲区中的选定文本\u003C\u002Fi>\u003C\u002Fp>\n\n*** 带诊断的高级差异视图\n#+CAPTION: 用于代码更改的集成 ediff 视图，Claude Code 能够直接访问打开文件中的诊断数据（错误、警告等）\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_b7c78377abef.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>用于代码更改的集成 ediff 视图，Claude Code 能够直接访问打开文件中的诊断数据（错误、警告等）\u003C\u002Fi>\u003C\u002Fp>\n\n*** 自动文本提及\n#+CAPTION: 在 Claude 对话中自动提及和引用选定的文本\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_d4bfb3769d1a.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>在 Claude 对话中自动提及和引用选定的文本\u003C\u002Fi>\u003C\u002Fp>\n\n*** 会话恢复\n#+CAPTION: 使用 --resume 标志恢复之前的 Claude Code 对话\n#+html: \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_readme_5ac772ff9bcf.png\">\n#+html: \u003Cp align=\"center\">\u003Ci>使用 --resume 标志恢复之前的 Claude Code 对话\u003C\u002Fi>\u003C\u002Fp>\n\n* 安装\n\n** 前置条件\n\n- Emacs 28.1 或更高版本\n- 已安装 Claude Code CLI 并可从 PATH 访问\n- =vterm= 或 =eat= 软件包（用于终端支持）\n\n** 安装 Claude Code CLI\n\n请遵循 [[https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code][Claude Code 文档]] 中的安装说明。\n\n** 安装 Emacs 软件包\n\n目前，该软件包处于早期开发阶段。\n\n要使用 =emacs-version= >= 30 和 =use-package= 配合 =vc= 绑定进行安装：\n\n#+begin_src elisp\n(use-package claude-code-ide\n  :vc (:url \"https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\" :rev :newest)\n  :bind (\"C-c C-'\" . claude-code-ide-menu) ; 设置您喜欢的快捷键\n  :config\n  (claude-code-ide-emacs-tools-setup)) ; 可选地启用 Emacs MCP 工具\n#+end_src\n\n要使用 =use-package= 和 [[https:\u002F\u002Fgithub.com\u002Fraxod502\u002Fstraight.el][straight.el]] 进行安装：\n\n#+begin_src emacs-lisp\n(use-package claude-code-ide\n  :straight (:type git :host github :repo \"manzaltu\u002Fclaude-code-ide.el\")\n  :bind (\"C-c C-'\" . claude-code-ide-menu) ; 设置您喜欢的快捷键\n  :config\n  (claude-code-ide-emacs-tools-setup)) ; 可选地启用 Emacs MCP 工具\n#+end_src\n\n*** Doom Emacs\n\n在 =packages.el= 中：\n\n#+begin_src emacs-lisp\n(package! claude-code-ide\n  :recipe (:host github :repo \"manzaltu\u002Fclaude-code-ide.el\"))\n#+end_src\n\n在 =config.el= 中：\n#+begin_src emacs-lisp\n(use-package! claude-code-ide\n  :bind (\"C-c C-'\" . claude-code-ide-menu) ; 设置您喜欢的快捷键\n  :config\n  (claude-code-ide-emacs-tools-setup)) ; 可选地启用 Emacs MCP 工具\n#+end_src\n\n保存上述内容后，在终端运行：=doom sync=。\n\n* 使用\n\n** 基本命令\n\n与 Claude Code IDE 交互的最简单方法是通过瞬态菜单界面，它提供对所有可用命令的视觉访问。只需运行 =M-x claude-code-ide-menu= 即可打开交互式菜单。\n\n| Command                                 | Description                                       |\n|-----------------------------------------+---------------------------------------------------|\n| =M-x claude-code-ide-menu=              | 打开包含所有 Claude Code 命令的临时菜单           |\n| =M-x claude-code-ide-emacs-tools-setup= | 设置内置 MCP（模型上下文协议）工具（例如 xref（交叉引用）、project） |\n| =M-x claude-code-ide=                   | 为当前项目启动 Claude Code                        |\n| =M-x claude-code-ide-send-prompt=       | 从 minibuffer（小缓冲区）输入向 Claude 发送提示词     |\n| =M-x claude-code-ide-continue=          | 继续目录中最近的一次对话                          |\n| =M-x claude-code-ide-resume=            | 使用之前的对话恢复 Claude Code                    |\n| =M-x claude-code-ide-stop=              | 停止当前项目的 Claude Code                        |\n| =M-x claude-code-ide-switch-to-buffer=  | 切换到项目的 Claude buffer（缓冲区）               |\n| =M-x claude-code-ide-list-sessions=     | 列出所有活跃的 Claude Code 会话并切换             |\n| =M-x claude-code-ide-check-status=      | 检查 Claude Code CLI（命令行接口）是否已安装并正常工作 |\n| =M-x claude-code-ide-insert-at-mentioned=| 将选中的文本发送到 Claude 提示词                 |\n| =M-x claude-code-ide-send-escape=       | 向 Claude 终端发送 Escape 键                      |\n| =M-x claude-code-ide-insert-newline=    | 在 Claude 提示词中插入换行符（发送 \\ + Enter）     |\n| =M-x claude-code-ide-toggle=            | 切换 Claude Code 窗口的可见性                     |\n| =M-x claude-code-ide-toggle-recent=     | 全局切换最近的 Claude 窗口                        |\n| =M-x claude-code-ide-show-debug=        | 显示包含 WebSocket（Web 套接字）消息的调试 buffer（缓冲区） |\n| =M-x claude-code-ide-clear-debug=       | 清除调试 buffer（缓冲区）                         |\n\n** 多项目支持\n\nClaude Code IDE 利用 Emacs 内置的 =project.el= 自动检测您的项目。每个项目都会获得一个独立的 Claude Code 实例，拥有唯一的 buffer（缓冲区）名称，例如 =*claude-code[project-name]*=。\n\n您可以为不同的项目同时运行多个 Claude Code 实例。使用 =claude-code-ide-list-sessions= 查看所有活跃会话并在它们之间切换。\n\n** 窗口管理\n\n- 当会话已经活跃时运行 =claude-code-ide= 将切换窗口可见性\n- 可以使用标准的 Emacs 窗口命令 (=C-x 0=) 关闭窗口而无需停止 Claude\n- 使用 =claude-code-ide-toggle-recent= 可以从任何地方切换最近的 Claude 窗口，无论您当前的项目上下文如何。当您不在项目目录下但想要快速隐藏\u002F显示 Claude 时，这非常有用\n\n** 使用 Ediff 查看差异\n\n当启用 =claude-code-ide-use-ide-diff=（默认）时，Claude 的代码建议将通过 Emacs 强大的 =ediff=（Emacs 差异对比工具）界面显示。这提供了两个关键优势：\n\n1. *视觉差异比较* - 通过并排或统一差异视图查看 Claude 想要更改的确切内容\n2. *交互式编辑* - 您可以在应用之前修改 Claude 的建议\n\n*** 如何使用 ediff:\n\n1. 当 Claude 建议代码更改时，=ediff= 会自动打开\n2. ediff 控制 buffer（缓冲区）变为活动状态（一个带有 ediff 命令的小窗口）\n3. Buffer A 显示当前代码，Buffer B 显示 Claude 的建议\n4. 您可以修改 Buffer B 以完善 Claude 提议的更改\n5. 在 ediff 控制 buffer（缓冲区）中按 =q= 退出\n6. 当被提示时，选择是否接受更改 (=y= 或 =n=)\n7. 如果您接受 (=y=)，来自 Buffer B 的任何更改将被发送回 Claude 以应用于原始文件\n\n这允许您在应用之前完善 Claude 的建议，确保最终代码符合您的确切要求。\n\n** 配置\n\n*** 配置变量\n\n| Variable                                      | Description                                 | Default                              |\n|-----------------------------------------------+---------------------------------------------+--------------------------------------|\n| ~claude-code-ide-cli-path~                      | Claude Code CLI (命令行接口) 路径             | ~\"claude\"~                             |\n| ~claude-code-ide-buffer-name-function~          | 缓冲区命名函数                              | ~claude-code-ide--default-buffer-name~ |\n| ~claude-code-ide-cli-debug~                     | 启用 CLI 调试模式（-d 标志）                  | ~nil~                                  |\n| ~claude-code-ide-cli-extra-flags~               | 其他 CLI 标志（例如 \"--model\"）               | ~\"\"~                                   |\n| ~claude-code-ide-debug~                         | 启用调试日志记录                            | ~nil~                                  |\n| ~claude-code-ide-terminal-backend~              | 终端后端（vterm 或 eat）                      | ~'vterm~                               |\n| ~claude-code-ide-vterm-anti-flicker~            | 启用 vterm 闪烁减少功能                       | ~t~                                    |\n| ~claude-code-ide-vterm-render-delay~            | vterm 渲染批处理延迟（秒）                    | ~0.005~                                |\n| ~claude-code-ide-terminal-initialization-delay~ | 终端初始化延迟                              | ~0.1~                                  |\n| ~claude-code-ide-log-with-context~              | 在日志消息中包含会话上下文                  | ~t~                                    |\n| ~claude-code-ide-debug-buffer~                  | 调试输出缓冲区名称                          | ~\"*claude-code-ide-debug*\"~              |\n| ~claude-code-ide-use-side-window~               | 使用侧边窗口还是普通缓冲区                  | ~t~                                    |\n| ~claude-code-ide-window-side~                   | Claude 窗口所在侧                            | ~'right~                               |\n| ~claude-code-ide-window-width~                  | 侧边窗口宽度（左\u002F右）                       | ~90~                                   |\n| ~claude-code-ide-window-height~                 | 侧边窗口高度（上\u002F下）                       | ~20~                                   |\n| ~claude-code-ide-focus-on-open~                 | 打开时聚焦 Claude 窗口                        | ~t~                                    |\n| ~claude-code-ide-focus-claude-after-ediff~      | 打开 ediff (差异比较工具) 后聚焦 Claude 窗口     | ~t~                                    |\n| ~claude-code-ide-show-claude-window-in-ediff~   | ediff 期间显示 Claude 窗口                    | ~t~                                    |\n| ~claude-code-ide-use-ide-diff~                  | 使用 IDE 差异查看器而非终端                 | ~t~                                    |\n| ~claude-code-ide-switch-tab-on-ediff~           | 打开 ediff 时切换到 Claude 标签页             | ~t~                                    |\n| ~claude-code-ide-system-prompt~                 | 要追加的自定义系统提示词                    | ~nil~                                  |\n| ~claude-code-ide-enable-mcp-server~             | 启用 MCP (模型上下文协议) 工具服务器          | ~nil~                                  |\n| ~claude-code-ide-mcp-server-port~               | MCP 工具服务器端口                          | ~nil~ (自动选择)                       |\n| ~claude-code-ide-mcp-server-tools~              | 暴露的 Emacs 函数列表                       | ~nil~                                  |\n| ~claude-code-ide-diagnostics-backend~           | 诊断后端（自动\u002Fflycheck\u002Fflymake）           | ~'auto~                                |\n| ~claude-code-ide-prevent-reflow-glitch~         | 防止终端重排故障（问题 #1422）              | ~t~                                    |\n\n*** 侧边窗口配置\n\nClaude Code 缓冲区默认在侧边窗口中打开。您可以自定义其位置：\n\n#+begin_src emacs-lisp\n;; Open Claude on the left side\n(setq claude-code-ide-window-side 'left)\n\n;; Open Claude at the bottom with custom height\n(setq claude-code-ide-window-side 'bottom\n      claude-code-ide-window-height 30)\n\n;; Open Claude on the right with custom width\n(setq claude-code-ide-window-side 'right\n      claude-code-ide-window-width 100)\n\n;; Don't automatically focus the Claude window\n(setq claude-code-ide-focus-on-open nil)\n\n;; Keep focus on ediff control window when opening diffs\n(setq claude-code-ide-focus-claude-after-ediff nil)\n\n;; Hide Claude window during ediff for more screen space\n(setq claude-code-ide-show-claude-window-in-ediff nil)\n\n;; Disable IDE diff viewer to show diffs in terminal instead\n(setq claude-code-ide-use-ide-diff nil)\n#+end_src\n\n或者，如果您更喜欢使用普通窗口：\n\n#+begin_src emacs-lisp\n;; Use regular window instead of side window\n(setq claude-code-ide-use-side-window nil)\n#+end_src\n\n*** 终端后端配置\n\nClaude Code IDE 支持将 =vterm= 和 =eat= 作为终端后端。默认情况下使用 =vterm=，但如果您偏好，可以切换到 =eat=：\n\n#+begin_src emacs-lisp\n;; Use eat instead of vterm\n(setq claude-code-ide-terminal-backend 'eat)\n\n;; Or switch back to vterm (default)\n(setq claude-code-ide-terminal-backend 'vterm)\n#+end_src\n\n=eat= 后端是一个纯 Elisp (Emacs Lisp) 终端模拟器，在某些 =vterm= 编译存在问题的环境中可能表现更好。两个后端均提供完整的终端功能，包括颜色支持和特殊按键处理。\n\n**** vterm 渲染优化\n\nClaude Code IDE 包含针对 vterm 终端的智能闪烁减少功能，以提供更流畅的视觉输出：\n\n#+begin_src emacs-lisp\n;; Enable\u002Fdisable vterm anti-flicker optimization (enabled by default)\n(setq claude-code-ide-vterm-anti-flicker t)\n\n;; Adjust the render delay for batching updates (default is 0.005 seconds)\n(setq claude-code-ide-vterm-render-delay 0.01)  ; Increase for smoother but less responsive\n#+end_src\n\n此优化会检测快速的终端重绘序列（例如当 Claude 扩展文本区域时），并将它们批处理以实现更流畅的渲染。5ms 的默认延迟提供了最佳的视觉效果且延迟不可感知。\n\n**** 终端初始化延迟\n\nClaude Code IDE 在启动终端时包含短暂的初始化延迟，以确保正确的布局渲染：\n\n#+begin_src emacs-lisp\n;; Adjust the terminal initialization delay (default is 0.1 seconds)\n(setq claude-code-ide-terminal-initialization-delay 0.15)\n\n;; Or disable it entirely (may cause visual glitches)\n(setq claude-code-ide-terminal-initialization-delay 0)\n#+end_src\n\n此延迟可防止显示伪影，例如终端模拟初始化时可能出现的提示符未对齐和光标定位错误。默认的 100ms 延迟是不可感知的，但能确保可靠的终端启动。\n\n**** 终端快捷键绑定\n\nClaude Code IDE 为终端添加了自定义快捷键，以便更轻松地交互：\n\n| 快捷键 | 命令                                 | 描述                           |\n|--------+--------------------------------------+--------------------------------|\n| =M-RET=      | =claude-code-ide-insert-newline= | 在提示符中插入换行             |\n| =C-\u003Cescape>= | =claude-code-ide-send-escape=    | 发送 Escape 键以取消操作       |\n\n这些快捷键会自动为 =vterm= 和 =eat= 后端设置，并且仅适用于 Claude Code 终端缓冲区。\n\n**** 终端重排故障预防（临时）\n\nClaude Code IDE 包含一个针对已知 Claude Code 错误 ([[https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fissues\u002F1422][#1422]]) 的临时解决方案，该错误会导致窗口调整大小时终端重排引起不可控的滚动。此解决方案默认启用，但如有需要可禁用：\n\n#+begin_src emacs-lisp\n;; Disable the terminal reflow glitch prevention (not recommended until bug is fixed)\n(setq claude-code-ide-prevent-reflow-glitch nil)\n#+end_src\n\n一旦上游错误修复，此解决方案将被移除。\n\n*** 诊断配置\n\nClaude Code IDE 支持使用 Flycheck 和 Flymake 进行代码诊断。默认情况下，它会自动检测哪一个处于激活状态：\n\n#+begin_src emacs-lisp\n;; Let Claude Code automatically detect the active diagnostics backend\n(setq claude-code-ide-diagnostics-backend 'auto) ; default\n\n;; Or force a specific backend\n(setq claude-code-ide-diagnostics-backend 'flycheck)\n(setq claude-code-ide-diagnostics-backend 'flymake)\n#+end_src\n\n*** 自定义缓冲区命名\n\n您可以自定义 Claude Code 缓冲区的命名方式：\n\n#+begin_src emacs-lisp\n(setq claude-code-ide-buffer-name-function\n      (lambda (directory)\n        (if directory\n            (format \"*Claude:%s*\" (file-name-nondirectory (directory-file-name directory)))\n          \"*Claude:Global*\")))\n#+end_src\n\n*** 自定义 CLI 标志\n\n您可以向 Claude Code CLI (命令行界面) 传递额外的标志：\n\n#+begin_src emacs-lisp\n;; Use a specific model\n(setq claude-code-ide-cli-extra-flags \"--model opus\")\n\n;; Pass multiple flags\n(setq claude-code-ide-cli-extra-flags \"--model opus --no-cache\")\n\n;; Flags are added to all Claude Code sessions\n#+end_src\n\n注意：这些标志会追加到 Claude 命令之后，位于任何内置标志（如 =-d= (调试) 或 =-r= (恢复)）之后。\n\n*** 自定义系统提示词\n\n您可以将自定义系统提示词附加到 Claude 的默认提示词中，从而针对特定项目或上下文自定义 Claude 的行为：\n\n#+begin_src emacs-lisp\n;; Set a custom system prompt\n(setq claude-code-ide-system-prompt \"You are an expert in Elisp and Emacs development.\")\n\n;; Or configure it per-project using dir-locals.el\n;; In .dir-locals.el:\n((nil . ((claude-code-ide-system-prompt . \"Focus on functional programming patterns and avoid mutations.\"))))\n\n;; Set via the transient menu: M-x claude-code-ide-menu → Configuration → Set system prompt\n#+end_src\n\n设置后，这会将 =--append-system-prompt= 标志添加到 Claude 命令中。设置为 =nil= 以禁用（默认）。\n\n*** 调试\n\n**** Claude CLI 调试模式\n\n要启用 Claude Code CLI 的调试模式（传递 =-d= 标志）：\n\n#+begin_src emacs-lisp\n(setq claude-code-ide-cli-debug t)\n#+end_src\n\n**** Emacs 调试日志记录\n\n要在 Emacs 内启用调试日志记录（记录 WebSocket 消息和 JSON-RPC 通信）：\n\n#+begin_src emacs-lisp\n(setq claude-code-ide-debug t)\n#+end_src\n\n然后使用以下命令查看调试日志：\n- =M-x claude-code-ide-show-debug= - 显示调试缓冲区\n- =M-x claude-code-ide-clear-debug= - 清除调试缓冲区\n\n调试缓冲区显示：\n- WebSocket 连接事件\n- 所有 JSON-RPC 消息（请求\u002F响应）\n- 错误消息和诊断信息\n- 带有会话上下文的通用调试信息\n\n** 单个项目上的多个 Claude Code 实例\n\n使用 git worktrees (git 工作树) 是在同一项目的不同分支上运行多个 Claude Code 实例的推荐方式。这允许您并行开发功能或修复错误：\n\n#+begin_src bash\n\n# 为功能分支创建新的 worktree (工作树)\ngit worktree add ..\u002Fmyproject-worktree feature-branch\n#+end_src\n\n#+begin_src elisp\n;; Start Claude Code in the main project\nfind-file \u002Fpath\u002Fto\u002Fmyproject\nM-x claude-code-ide\n\n;; Start another Claude Code instance in the worktree\nfind-file \u002Fpath\u002Fto\u002Fmyproject-worktree\nM-x claude-code-ide\n#+end_src\n\n每个 worktree (工作树) 都被 =project.el= 视为独立的项目，允许您拥有独立的 Claude Code 会话，并拥有各自的缓冲区（例如 =*claude-code[myproject]*= 和 =*claude-code[myproject-worktree]*=）。\n\n** Emacs MCP (Model Context Protocol) 工具\n\nClaude Code IDE 包含内置的 MCP 工具，将 Emacs 功能暴露给 Claude，从而实现强大的代码导航和分析能力：\n\n*** 内置工具\n\n- =xref-find-references= - 查找项目中符号的所有引用\n- =xref-find-apropos= - 在整个项目中查找匹配模式的符号\n- =treesit-info= - 获取 tree-sitter 语法树信息以进行深层代码结构分析\n- =imenu-list-symbols= - 使用 imenu 列出文件中所有符号（函数、类、变量）\n- =project-info= - 获取当前项目信息（目录、文件等）\n\n*** 启用 MCP 工具\n\n要启用这些工具，请将以下内容添加到您的配置中：\n\n#+begin_src emacs-lisp\n;; Set up the built-in Emacs tools\n(claude-code-ide-emacs-tools-setup)\n#+end_src\n\n启用后，Claude 可以使用这些工具来浏览您的代码库。例如：\n- \"查找函数 foo 的定义\"\n- \"显示此变量使用的所有位置\"\n- \"光标下的 AST (抽象语法树) 节点是什么类型？\"\n- \"分析整个文件的解析树\"\n- \"列出此文件中的所有函数和变量\"\n- \"此项目中有多少文件？\"\n\n** 创建自定义 MCP 工具\n\n您可以通过 MCP 工具系统将自己的 Emacs 函数暴露给 Claude。这允许 Claude 与专门的 Emacs 功能、自定义命令或特定领域的功能进行交互。\n\n*** 工具定义格式\n\n使用 =claude-code-ide-make-tool= 函数定义工具：\n\n#+begin_src emacs-lisp\n(claude-code-ide-make-tool\n :function #'function-name     ; The Emacs function to call\n :name \"tool_name\"             ; Name for Claude to use (snake_case recommended)\n :description \"...\"            ; Human-readable description\n :args '((:name \"param1\"       ; List of argument specifications\n          :type string         ; Type: string, number, integer, boolean, etc.\n          :description \"...\"   ; What this parameter does\n          :optional t)))       ; Optional parameters marked with :optional t\n#+end_src\n\n可用的参数类型：=string=, =number=, =integer=, =boolean=, =array=, =object=, =null=\n\n*** 上下文感知工具示例\n\n#+begin_src emacs-lisp\n;; Define a context-aware function that operates in the session's project\n(defun my-project-grep (pattern)\n  \"Search for PATTERN in the current session's project.\"\n  (claude-code-ide-mcp-server-with-session-context nil\n    ;; This executes with the session's project directory as default-directory\n    (let* ((project-dir default-directory)\n           (results (shell-command-to-string\n                    (format \"rg -n '%s' %s\" pattern project-dir))))\n      results)))\n\n;; Define and register the tool (automatically added to claude-code-ide-mcp-server-tools)\n(claude-code-ide-make-tool\n :function #'my-project-grep\n :name \"my_project_grep\"\n :description \"Search for pattern in project files\"\n :args '((:name \"pattern\"\n          :type string\n          :description \"Pattern to search for\")))\n\n;; Enable Emacs tool MCP server\n(claude-code-ide-emacs-tools-setup)\n#+end_src\n\n=claude-code-ide-mcp-server-with-session-context= 宏确保您的工具在正确的项目上下文中执行。\n\n* 许可证\n\n本项目采用 GNU 通用公共许可证 v3.0 或更高版本授权。有关详细信息，请参阅 LICENSE 文件。\n\n* 商标声明\n\nClaude® 是 Anthropic, PBC 的注册商标。Claude Code 是由 Anthropic, PBC 开发的应用程序。\n\n* 相关项目\n\n- [[https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code][Claude Code CLI]]\n- [[https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code][Claude Code VS Code 扩展]]\n- [[https:\u002F\u002Fgithub.com\u002Fcoder\u002Fclaudecode.nvim][claudecode.nvim]] - Neovim 集成","# claude-code-ide.el 快速上手指南\n\n**claude-code-ide.el** 是一款专为 Emacs 设计的 Claude Code 集成工具。它通过模型上下文协议（MCP）在 Claude 与 Emacs 之间建立双向桥梁，使 Claude 能够理解并利用 LSP、项目管理和自定义 Elisp 函数等 Emacs 强大功能，成为真正的 Emacs 感知型 AI 助手。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n- **Emacs 版本**：28.1 或更高版本\n- **Claude Code CLI**：已安装并配置到系统 PATH 中\n  - 安装说明请参考 [Anthropic 官方文档](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code)\n- **终端后端**：需安装 `vterm` 或 `eat` 包以支持终端功能\n\n## 安装步骤\n\n根据您的 Emacs 配置方式，选择以下一种方法进行安装。\n\n### 方法一：使用 use-package (Emacs 30+)\n\n适用于原生 `use-package` 且版本较新的用户：\n\n```elisp\n(use-package claude-code-ide\n  :vc (:url \"https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\" :rev :newest)\n  :bind (\"C-c C-'\" . claude-code-ide-menu) ; 设置您喜欢的快捷键\n  :config\n  (claude-code-ide-emacs-tools-setup)) ; 可选：启用 Emacs MCP 工具\n```\n\n### 方法二：使用 straight.el\n\n如果您使用 `straight.el` 管理包：\n\n```elisp\n(use-package claude-code-ide\n  :straight (:type git :host github :repo \"manzaltu\u002Fclaude-code-ide.el\")\n  :bind (\"C-c C-'\" . claude-code-ide-menu)\n  :config\n  (claude-code-ide-emacs-tools-setup))\n```\n\n### 方法三：Doom Emacs\n\n在 `packages.el` 中添加：\n\n```elisp\n(package! claude-code-ide\n  :recipe (:host github :repo \"manzaltu\u002Fclaude-code-ide.el\"))\n```\n\n在 `config.el` 中添加：\n\n```elisp\n(use-package! claude-code-ide\n  :bind (\"C-c C-'\" . claude-code-ide-menu)\n  :config\n  (claude-code-ide-emacs-tools-setup))\n```\n\n保存后，请在终端运行 `doom sync` 同步配置。\n\n## 基本使用\n\n### 启动与交互\n\n最便捷的方式是通过临时菜单界面访问所有命令：\n\n```bash\nM-x claude-code-ide-menu\n```\n\n核心命令列表：\n\n| 命令 | 描述 |\n|------|------|\n| `M-x claude-code-ide` | 为当前项目启动 Claude Code |\n| `M-x claude-code-ide-send-prompt` | 从 minibuffer 发送提示词给 Claude |\n| `M-x claude-code-ide-resume` | 恢复之前的 Claude Code 对话 |\n| `M-x claude-code-ide-stop` | 停止当前项目的 Claude Code |\n| `M-x claude-code-ide-list-sessions` | 列出所有活跃会话并切换 |\n\n### 启用深度集成\n\n为了充分利用 Emacs 的生态能力（如 LSP 导航、Tree-sitter 分析等），建议运行以下命令启用内置 MCP 工具：\n\n```elisp\nM-x claude-code-ide-emacs-tools-setup\n```\n\n### 多项目支持\n\n该工具自动检测 Emacs 的 `project.el`。每个项目都会生成独立的 Claude Code 实例（例如 `*claude-code[project-name]*`）。您可以同时为不同项目运行多个实例，并通过 `claude-code-ide-list-sessions` 进行切换。\n\n### 高级功能：Ediff Diff 查看\n\n默认启用的 Ediff 集成允许您在应用代码更改前进行可视化对比和修改。当 Claude 提出代码建议时，Ediff 窗口会自动打开，您可以在其中调整建议内容后再确认应用。","一位资深 Emacs 开发者正在维护一个复杂的 C++ 项目，急需利用 AI 辅助重构核心模块并修复遗留 bug。\n\n### 没有 claude-code-ide.el 时\n- 需要在终端运行 AI 命令与编辑器窗口间频繁切换，手动复制粘贴代码片段来提供上下文。\n- AI 无法感知当前光标位置或文件中的 LSP 诊断信息，给出的建议往往脱离实际报错环境。\n- 修改后的代码需手动合并到缓冲区，容易遗漏细节或在复杂冲突中引入新错误。\n- 缺乏对 Emacs 特定模式的理解，难以进行跨文件的全局搜索与结构化重构。\n\n### 使用 claude-code-ide.el 后\n- claude-code-ide.el 自动识别当前编辑的文件和选中文本，无需手动复制即可传递完整上下文。\n- 通过 MCP 协议直接调用 LSP 功能，AI 能精准定位符号并理解语法树结构，建议更贴合代码逻辑。\n- 集成 ediff 视图展示差异，开发者可在应用更改前直观审查 AI 的修改建议，确保无误。\n- 支持项目级搜索与自定义 Elisp 命令，实现基于工作流的自动化重构操作，效率大幅提升。\n\nclaude-code-ide.el 让 AI 真正融入 Emacs 生态，将代码辅助从“外部聊天”升级为“内部协作”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmanzaltu_claude-code-ide.el_61c457c3.png","manzaltu","Yoav Orot","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmanzaltu_700d9de6.png","This is where I put some of my stuff\r\n𒌓𒁕",null,"United States","https:\u002F\u002Ffosstodon.org\u002F@manzaltu","https:\u002F\u002Fgithub.com\u002Fmanzaltu",[85,89],{"name":86,"color":87,"percentage":88},"Emacs Lisp","#c065db",94.6,{"name":90,"color":91,"percentage":92},"Shell","#89e051",5.4,1455,88,"2026-04-04T22:19:27","GPL-3.0","未说明",{"notes":99,"python":97,"dependencies":100},"本工具为 Emacs 扩展包，非独立应用程序。需确保已安装 Claude Code CLI 并配置在系统 PATH 中。依赖 MCP 协议与 Emacs 进行双向通信。建议使用 vterm 或 eat 终端后端以支持彩色输出和交互。无特定 GPU 或内存要求，主要依赖 Emacs 环境及外部 CLI 服务。",[101,102,103,104,105],"Emacs >= 28.1","Claude Code CLI","vterm","eat","use-package",[45,15],"2026-03-27T02:49:30.150509","2026-04-06T05:36:27.503745",[110,115,120,124,129,134],{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},2171,"MCP 服务器启动时连接超时或初始化失败如何处理？","常见原因是系统环境变量中的 `http_proxy` 导致 localhost 流量被代理。请在 `.bashrc` 中添加 `export NO_PROXY=localhost` 环境变量以绕过代理。此外，确保 Node.js 版本较新，若使用 Nix 管理，可能需要创建包装脚本指定 PATH 使用新版 Node。","https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\u002Fissues\u002F64",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},2172,"遇到 `Symbol’s function definition is void: ws-process` 错误如何解决？","这通常是因为 `emacs-web-server` 包版本过旧（ELPA 版本缺少 `ws-` 前缀）。解决方案是不使用 ELPA 发布版，而是直接从 GitHub 获取代码：https:\u002F\u002Fgithub.com\u002Feschulte\u002Femacs-web-server。","https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\u002Fissues\u002F79",{"id":121,"question_zh":122,"answer_zh":123,"source_url":119},2173,"Doom Emacs 用户加载新版 emacs-web-server 仍报错怎么办？","即使添加了 GitHub 版本，如果其他依赖包先加载了 ELPA 版本，`straight.el` 等包管理器可能仍会使用旧版。需确保加载顺序正确，避免 ELPA 版本覆盖 GitHub 版本，必要时手动调整包加载逻辑。",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},2174,"使用 Ediff 进行代码合并时，claude-code-ide 缓冲区为什么会消失？","这通常由用户自定义配置冲突引起。请检查是否启用了 `winner-mode` 或配置了 `(add-hook 'ediff-after-quit-hook-internal 'winner-undo)`。移除这些钩子或调整 `ediff-window-setup-function` 为 `'ediff-setup-windows-plain` 可解决。","https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\u002Fissues\u002F60",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},2175,"如何在 Emacs 内的 Claude Code 中继承现有的环境变量（如 envrc）？","默认情况下可能无法继承。建议启用 `eat` 终端后端支持，该功能已确认与 `envrc` 配合良好。确保配置中使用 `eat` 来运行终端会话，这样就能正确获取当前缓冲区的动态环境变量。","https:\u002F\u002Fgithub.com\u002Fmanzaltu\u002Fclaude-code-ide.el\u002Fissues\u002F33",{"id":135,"question_zh":136,"answer_zh":137,"source_url":114},2176,"Nix 环境下 MCP 初始化失败是否与 Node 版本有关？","是的，Nix 配置的项目可能使用了过旧的 Node 版本。可以尝试创建一个包装脚本，强制为 claude 设置 PATH 指向更近期的 Node 版本，或者更新 Node 版本并重新安装 claude 即可解决。",[]]