项目简介

GoLite 是一个创新的全栈 Go 语言框架,旨在简化 Web 应用开发,让开发者只需使用 Go 和 WebAssembly 即可构建前后端。它提供了一个 TUI (文本用户界面) 开发环境,并通过内置的 Model Context Protocol (MCP) 服务器,实现了与大型语言模型 (LLM) 助手的深度集成,让 AI 能够直接理解、调试和控制开发流程,从而极大地提高开发效率。

主要功能点

  • LLM 智能集成 (通过 MCP): 内置 MCP 服务器,允许 AI 助手(如 GitHub Copilot、Claude)获取开发环境状态、读取日志、控制编译模式(WASM L/M/S)、管理服务器(启动/停止、浏览器重载)等,实现 AI 辅助调试和开发。
  • 纯 Go 全栈开发: 前后端均使用 Go 语言,后端编译为原生应用,前端编译为 WebAssembly,大幅减少 JavaScript 依赖和配置复杂度。
  • 多模式 WebAssembly 编译: 支持 L (开发)、M (调试)、S (生产) 三种 WASM 编译模式,平衡开发速度、调试能力和最终包大小,并可由 TUI 或 LLM 动态切换。
  • 智能热重载: 自动检测 Go 后端、WASM 前端、HTML/CSS/JS 资源文件的变化,并智能地触发重编译、服务器重启和浏览器刷新。
  • TUI 开发环境: 提供一个集中的文本用户界面,实时显示服务器状态、WASM 编译、资产监听和浏览器日志,简化开发流程和基础设施管理。
  • 约定优于配置: 采用严格的项目结构约定,无需复杂的配置文件(如 'package.json', 'webpack.config.js'),提高项目可预测性和 LLM 可理解性。

安装步骤

  1. 前提条件:
    • Go 1.25.2+: 从 go.dev 下载安装。
    • TinyGo (可选,用于 M/S 模式 WASM 编译): 从 tinygo.org 安装。
    • Chrome/Chromium 浏览器: 用于浏览器自动化和热重载。
  2. 安装 GoLite CLI: 在终端执行以下命令安装 GoLite 命令行工具:
    go install -v github.com/cdvelop/golite/cmd/golite@latest
  3. 创建并启动项目: 创建一个新的项目目录,并进入该目录,然后运行 'golite' 命令:
    mkdir myapp
    cd myapp
    golite
    GoLite 将自动初始化项目结构,启动开发服务器 (默认 HTTP/HTTPS:6060),启动 TUI 界面,打开 Chrome 浏览器,并启动 MCP 服务器 (默认 HTTP:3030/mcp)。

MCP 客户端配置

要使您的 LLM 客户端(如 VS Code Copilot)能够连接到 GoLite MCP 服务器,通常需要更新客户端的 MCP 配置。以下是连接 GoLite MCP 服务器所需的关键信息:

  • 服务器名称: 'golite-mcp' (这是 GoLite 在其 MCP 配置中声明的唯一标识符,LLM 客户端需要使用此名称来引用该服务器。)
  • 连接类型: 'http' (表示通过标准的 HTTP 协议进行通信。)
  • 服务器 URL: 'http://localhost:3030/mcp' (MCP 服务器将在此地址监听来自 LLM 客户端的请求。)
  • 启动命令 (Command): 'golite' (当 LLM 客户端需要启动 GoLite 服务时,将执行此命令。)
  • 启动参数 (Args): 无需额外参数。'golite' 命令本身会启动所有必要的服务,包括 MCP 服务器,因此无需为它传递其他命令行参数。

提示: GoLite 也会尝试自动配置 VS Code 的 MCP 集成,这意味着在许多情况下,您无需手动配置即可使用。

基本使用方法

  1. 在您的 GoLite 项目目录中打开终端,运行 'golite' 命令。
  2. GoLite 将启动其 TUI 界面,您将看到实时日志、服务器和编译状态。同时,浏览器会自动打开并显示您的 GoLite 应用程序。
  3. 修改 'web/server.go' (后端 Go 代码)、'web/client.go' (WASM 前端 Go 代码) 或 'web/shared.go' (客户端和服务器共享的 Go 代码)。GoLite 的智能热重载功能将自动检测您的更改,重新编译受影响的部分,并刷新浏览器。
  4. 您的 LLM 助手现在可以通过 MCP 协议与 GoLite 进行交互。例如,您可以要求助手:
    • 'golite_status()': 获取当前开发环境的详细状态。
    • 'golite_get_logs(component="WASM", lines=100)': 获取 WASM 编译器的最新日志。
    • 'browser_take_screenshot()': 获取浏览器当前界面的屏幕截图。
    • 'wasm_set_mode(mode="S")': 将 WASM 编译模式切换到“小”模式(生产优化)。 LLM 助手将利用这些工具来辅助您进行开发、调试和环境管理。

信息

分类

开发者工具