项目简介
Exhub 是一个基于 Elixir 开发的 Emacs 插件服务端,旨在增强 Emacs 的功能。它通过 WebSocket 协议与 Emacs 客户端进行双向通信,允许 Emacs 调用 Elixir 服务器提供的各种功能,例如集成 MCP 工具、连接 LLM 模型、处理文件、进行代码操作和文本翻译等。Exhub 致力于为 Emacs 提供一个强大、可扩展的后端服务,提升用户在 Emacs 环境下的工作效率。
主要功能点
- WebSocket 通信: 通过 WebSocket 协议实现 Emacs 客户端和 Elixir 服务器之间的实时双向通信。
- MCP 工具集成: 可以集成和启动多种 MCP 工具服务器(如 Git, File, K8s, Gitee, GitHub MCP Server),允许 Emacs 客户端通过 Exhub 调用这些工具的功能。
- LLM 模型支持: 支持配置和连接多个 LLM 模型(如 qwen2.5, gpt-4o),为各种 AI 功能提供模型基础。
- 代码相关功能: 提供代码生成、代码调整、代码注释、代码重构、代码格式化等功能。
- 文档处理功能: 支持文档润色、语法纠错、Markdown 预览等功能。
- 翻译功能: 提供多种翻译方式,包括插入翻译、替换翻译、Posframe 翻译等。
- Agent 集成: 支持 Agent 功能,允许用户创建和管理 Agent,并使用 Agent 与工具进行交互。
- Gitee 集成: 提供 Gitee issues 和 pulls 的查看功能。
安装步骤
-
安装 Elixir 服务器:
- 克隆仓库到本地:
git clone https://github.com/edmondfrank/exhub.git cd exhub - 安装 Elixir 依赖:
mix deps.get - 构建 Elixir 服务器:
MIX_ENV=prod mix release - 运行 Elixir 服务器:
_build/prod/rel/exhub/bin/exhub start
- 克隆仓库到本地:
-
配置 Emacs 客户端:
- 将 'site-lisp/exhub' 目录添加到 Emacs 的 'load-path' 中。
- 在 Emacs 配置文件(如 '~/.emacs.d/init.el')中添加以下代码:
(add-to-list 'load-path (expand-file-name "site-lisp/exhub" user-emacs-directory)) (require 'exhub) (exhub-start-elixir) ;; 启动 Elixir 后端连接 (exhub-start) ;; 启动 Exhub 客户端 - 根据需要安装和配置其他 Exhub 功能包,例如 'exhub-chat', 'exhub-gitee', 'exhub-tool' 等。
服务器配置
MCP 客户端需要配置 Exhub 服务器的启动命令以建立连接。以下是 Exhub 服务器的配置信息示例:
{ "serverName": "exhub-server", "command": "_build/prod/rel/exhub/bin/exhub", "args": ["start"] }
配置参数说明:
- 'serverName': 服务器名称,可以自定义。
- 'command': 服务器启动命令,指向 Exhub 服务器的可执行文件路径。 在此示例中,指向构建后的 'exhub' 启动脚本。
- 'args': 启动命令参数,这里使用 'start' 参数启动 Exhub 服务器。
注意: 实际使用时,请确保 'command' 路径正确指向 'exhub' 服务器的启动脚本。如果需要在不同的环境或目录下运行,可能需要调整 'command' 的路径。
基本使用方法
- 启动 Exhub 服务器: 按照安装步骤中的说明启动 Elixir 服务器。
- 启动 Emacs 客户端: 配置并启动 Emacs 客户端,确保 Emacs 能够连接到 Exhub 服务器。
- 使用 Exhub 功能: 通过 Emacs 提供的各种命令和功能包来使用 Exhub 提供的功能,例如:
- 使用 'exhub-chat' 命令进行聊天。
- 使用 'exhub-translate' 命令进行翻译。
- 使用 'exhub-tool' 包启动和使用 MCP 工具服务器。
- 使用 'exhub-agent' 包创建和管理 Agent。
具体功能的使用方法请参考各个功能包的 'Usage' 部分的说明。
信息
分类
开发者工具