项目简介

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 的查看功能。

安装步骤

  1. 安装 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
  2. 配置 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' 的路径。

基本使用方法

  1. 启动 Exhub 服务器: 按照安装步骤中的说明启动 Elixir 服务器。
  2. 启动 Emacs 客户端: 配置并启动 Emacs 客户端,确保 Emacs 能够连接到 Exhub 服务器。
  3. 使用 Exhub 功能: 通过 Emacs 提供的各种命令和功能包来使用 Exhub 提供的功能,例如:
    • 使用 'exhub-chat' 命令进行聊天。
    • 使用 'exhub-translate' 命令进行翻译。
    • 使用 'exhub-tool' 包启动和使用 MCP 工具服务器。
    • 使用 'exhub-agent' 包创建和管理 Agent。

具体功能的使用方法请参考各个功能包的 'Usage' 部分的说明。

信息

分类

开发者工具