ALemonX 用户手册
September 2, 2026 · View on GitHub
面向第一次接触 ALemonX / AlemonJS 的用户。本手册从“这是什么”讲起,解释工作台里常见的核心概念与相关技术,最后整理了常见问题。英文版见 English version。
目录
一、认识项目
ALemonX 是什么
ALemonX(命令行叫 alx)是 AlemonJS 机器人的本地工作台。AlemonJS 是一个基于 Node.js 的机器人开发框架,可以对接 QQ、Discord、OneBot 等平台;ALemonX 则把这些机器人的创建、运行、调试、测试和发布集中到一个图形化工作台里,让你不用全程敲命令。
一句话理解:ALemonX 管“机器人项目”,AlemonJS 是“机器人框架”,你的机器人项目是一个跑在 Node.js 上的 AlemonJS 应用。
你能用 ALemonX 做什么
- 创建机器人项目:支持 JavaScript / TypeScript,可选样式、图片组件、能力模板(气泡服务、数据存储、QQ Bot、Discord、OneBot 等)。
- 检查开发环境:自动检测 Node.js、Git、包管理器、浏览器等是否就绪,缺什么给出一键修复入口。
- 运行机器人:开发模式(热更新)、前台运行、PM2 持续运行三种方式。
- 管理多个机器人:添加、固定、切换机器人目录,统一查看运行状态与日志。
- 测试与调试:内置测试中心、LiveChat、机器人应用页,PM2 日志支持分页、流式和导出。
- 发布:一键打包发布到 npm,或创建 Git Release 标签。
- AI 协作:在工作台内让 AI Agent 阅读、修改你的机器人代码,每次写操作都要你确认;还有 AI 运维(观察/灰度/自动修复)和 MCP 控制面,供 Codex 等本地 AI 客户端接入。
- 扩展能力:系统插件(网络、Docker、QQ 管理等)为工作台本身增加本机管理能力。
机器人发布时的构建入口和 bundle 规范见机器人构建规范。
核心概念
工作台与窗口
前端是一个“桌面式”界面:窗口可以拖拽、缩放、最小化,系统功能(环境、任务、运维、账户、插件)以侧栏窗口呈现,每个已安装的系统插件也有自己的窗口。界面支持亮/暗主题,并适配小窗口和窄屏。
机器人项目 / 机器人目录
一个机器人项目就是一个目录,根目录必须包含 package.json。你可以用引导页新建项目,也可以在「管理」中添加已有的机器人目录;工作台以“机器人目录”作为身份键来管理运行、端口、PM2 和机器人应用页。
三种运行方式
| 方式 | 用途 | 特点 |
|---|---|---|
| 开发模式(dev) | 日常开发调试 | 使用 lvy app.ts 启动,改动热更新,日志直接可见 |
| 前台模式 | 临时运行 | 在当前终端前台运行,Ctrl+C 停止 |
| PM2 持续运行 | 生产运行 | 守护进程管理,异常自动拉起,支持 pm2 save 恢复清单,推荐生产环境使用 |
统一工作区(workspace)
ALemonX 把模板、工具、新建机器人和系统插件收敛到一个工作区(默认 <运行目录>/workspace,可用 --workspace 或 ALX_WORKSPACE 指定):
workspace/
├── templates/ 项目模板(首次启动从内嵌模板物化,可编辑)
├── packages/ 工具目录(内置 Yarn 物化副本;PM2 首次使用时安装到这里)
├── bots/ 新建机器人的默认落点
├── plugins/ 已安装系统插件(唯一安装目标,优先于程序 plugins/)
└── store/ 插件持久数据(每个插件使用 store/<插件 ID>/)
三种入口
- 浏览器 UI:
alx(默认http://127.0.0.1:17390),日常使用。 - 命令行
alx:浏览器不可用或远程排障时使用,见 命令行文档。 - MCP 控制面:让 Codex、豆包等本机 AI 客户端通过标准 MCP 协议管理机器人,见 MCP 文档。
三种容易混淆的“嵌入页面”
| 名称 | 谁在用 | 能做什么 |
|---|---|---|
| 系统面板页 | 系统插件 | 插件自己的管理界面,可调用宿主能力与特权操作 |
| 宿主 WebView | 系统插件打开的 resource 窗口 | 普通 iframe,展示插件自身静态页面并提供受控宿主能力 |
| 机器人应用页 | 机器人插件 | 只能访问当前机器人的 ./api/*,是机器人自己的前端 |
三者的代理、权限、页面注入与生命周期互不复用。系统插件请求打开 HTTP/HTTPS 地址时,会交给左下角的浏览器创建新标签;只有系统插件自身的静态 resource 页面才会在插件窗口内打开。详细边界见:WebView 架构。
系统插件 vs 机器人插件
- 系统插件:为 ALemonX 本身提供系统级能力(网络、防火墙、Docker 等),与具体机器人无关。
- 机器人插件:为某个机器人提供命令、配置页、机器人应用页,属于机器人项目的一部分。
快速上手
- 安装:按 README 的「一行安装」安装
alx(国内用户使用镜像命令)。 - 打开:运行
alx,在浏览器打开http://127.0.0.1:17390;或alx open。 - 创建:在引导页选择「开发」创建新机器人,或「管理」添加已有机器人目录。
- 检查环境:在「环境」确认 Node.js(v22.22.3+)、Git 等就绪,按提示一键修复。
- 运行:在「运行」选择开发模式调试,或使用 PM2 持续运行。
- 测试与发布:用测试中心验证功能,再通过「发布」打包到 npm 或创建 Git Release。
二、相关技术
下面的技术你在工作台里都会遇到。对新手来说,不需要先学会全部,只要理解“它是什么、负责什么”就够了,具体操作工作台会引导你完成。
| 技术 | 一句话解释 | 在 ALemonX 里的作用 |
|---|---|---|
| Node.js | 在电脑上运行 JavaScript 的“引擎” | 机器人的运行基础,ALemonX 也用它管理机器人进程 |
| npm / Yarn | JavaScript 的“包管理器”,负责下载和安装依赖 | 安装机器人依赖、启动脚本、打包发布 |
| JSON | 一种通用的数据/配置文本格式 | package.json 等配置文件 |
| YAML | 另一种更易读的配置格式 | alemon.config.yaml 机器人配置 |
| JavaScript / TypeScript | 写机器人逻辑的语言 | 机器人模板支持 JS 或 TS |
| Git | 代码版本管理工具 | 项目版本管理、创建 Git Release |
| PM2 | Node.js 进程守护工具 | 让机器人持续运行、异常自动重启 |
| Redis | 内存数据库 | 可选的内置缓存,可关闭 |
| SSE | 服务器向浏览器单向推送事件的机制 | 工作台实时刷新日志、任务进度 |
| MCP | 让 AI 客户端连接本地工具的协议 | Codex 等接入 ALemonX 控制面 |
| AlemonJS 生态 | 机器人框架 + 配套工具 | 运行、构建、检查机器人 |
Node.js
- 是什么:一个让 JavaScript 在电脑上直接运行的运行时(runtime)。就像浏览器能“跑”网页里的 JS 一样,Node.js 让 JS 能跑在服务器/本地。
- 在 ALemonX 里做什么:你的机器人是 Node.js 应用;ALemonX 负责用 Node.js 启动、停止和监控它们,并检查 Node.js 环境是否可用。
- 需要你做什么:版本建议 v22.22.3 或更高。版本过低时工作台会提示升级,但不会阻止你继续使用;只有“完全缺失或无法运行”才是阻断项。
npm 与 Yarn
- 是什么:包管理器。npm 随 Node.js 自带,Yarn 是另一款常用包管理器;它们负责从仓库下载别人写好的代码包(依赖)并记录版本。
- 在 ALemonX 里做什么:安装机器人依赖(
install)、构建、启动脚本、发布到 npm。ALemonX 内置了 Yarn 副本,创建项目和安装依赖不依赖你手动安装 npm 包;PM2 等工具也会被自动安装到工作区。 - 需要你做什么:一般不用手动操作;需要时在工作台选择包管理器(npm / yarn / pnpm)。
JSON
- 是什么:JavaScript Object Notation,一种用
{}、[]、"key": value描述数据的纯文本格式,人和程序都能读。 - 在 ALemonX 里做什么:
package.json(项目元信息、依赖、脚本)、插件清单alx.json、部分本地数据文件都是 JSON。 - 需要你做什么:只要知道配置文件是 JSON、注意逗号和引号即可;工作台的配置编辑器会帮你校验。
YAML
- 是什么:另一种配置格式,用缩进表达层级,比 JSON 更“易读”。ALemonJS 机器人使用
alemon.config.yaml配置平台账号、监听端口等。 - 在 ALemonX 里做什么:工作台提供该配置的可视化编辑器,也会在设置里注入主题变量等。
- 需要你做什么:注意 YAML 对缩进敏感;用工作台编辑器修改比手写更安全。
JavaScript / TypeScript
- 是什么:JavaScript 是机器人逻辑的编写语言;TypeScript 是带类型检查的 JS 超集,能提前发现很多低级错误。
- 在 ALemonX 里做什么:创建项目时可选择 JS 或 TS 模板;机器人命令、事件处理都写在源码里。
- 需要你做什么:写机器人功能时了解基础语法即可;AI Agent 也可以在你确认后帮你改代码。
JSX / JSXP
- 是什么:JSX 是一种在 JS 里写界面结构的语法;JSXP(jsxp)是 AlemonJS 用来在机器人里生成图片/界面组件的渲染方案。
- 在 ALemonX 里做什么:机器人的图片消息、帮助页等组件;模板里可选是否包含图片组件能力。
Git
- 是什么:代码版本管理工具,记录每次修改,支持回退、分支和协作。
- 在 ALemonX 里做什么:初始化仓库、查看改动、提交,以及创建 Git Release 标签用于发布。
- 需要你做什么:确保已安装 Git;不熟悉命令也没关系,工作台有图形化 Git 面板。
PM2
- 是什么:Node.js 进程守护工具,让程序持续运行、崩溃自动重启,并管理日志。
- 在 ALemonX 里做什么:机器人「持续运行」模式基于 PM2;ALemonX 在启动/重启/reload 成功后执行
pm2 save保存恢复清单。 - 身份与移动:PM2 应用名由机器人根目录的
.alemonx-id与package.json名称决定,移动目录不会改变身份;旧项目没有该文件时保持旧名,直到配置被重写。 - 需要你做什么:首次部署在服务器上时,管理员按 PM2 输出执行一次
pm2 startup,避免主机重启后丢失守护进程。
Redis
- 是什么:一个高性能内存数据库,常用来做缓存、队列。
- 在 ALemonX 里做什么:内置的可选 Redis,可调整端口(
--redis-port)或关闭(--redis-off);设置页可随时调整。 - 需要你做什么:一般不用管;端口被占用时可以换端口或关闭。
SSE
- 是什么:Server-Sent Events,服务器单向推送事件给浏览器的机制,类似“订阅了一个实时消息流”。
- 在 ALemonX 里做什么:日志、任务进度、插件变更、运维事件等页面实时刷新都靠它。
MCP
- 是什么:Model Context Protocol,一套让 AI 客户端(Codex、豆包等)安全连接本地工具的标准协议,使用 JSON-RPC 2.0。
- 在 ALemonX 里做什么:把机器人管理能力以受限工具的形式暴露给本地 AI 客户端;所有修改性操作都要求
confirm: true确认。 - 需要你做什么:想用 AI 客户端控制机器人时,按 MCP 文档 配置 stdio 或流式 HTTP;可设置
MCP_ALLOWED_ROOTS限制可管理的目录。
AlemonJS 生态工具
| 工具 | 作用 |
|---|---|
alemonjs | 机器人框架核心包 |
alemonc | 机器人检查/启动辅助(npx alemonc start) |
lvy | 开发/构建工具(lvy app.ts、lvy build) |
jsxp | 图片/界面组件渲染 |
三、常见问题
安装与启动
Q1:国内安装很慢或直接失败,怎么办?
使用镜像命令安装(README「国内用户安装」),例如 curl ... | ALX_PREFER_MIRROR=1 sh;ghfast.top 不可用时换成 ghproxy.net 或 gh-proxy.com。也可设置 ALX_DOWNLOAD_BASE 指向自建镜像。安装脚本会自动校验 SHA-256。
Q2:提示 alx: command not found?
安装脚本会把 alx 放到用户命令目录(macOS/Linux 通常是 ~/.local/bin,Windows 是 %LOCALAPPDATA%\Programs\ALemonX)。重新打开终端,或把该目录加入 PATH。
Q3:端口 17390 被占用?
用 alx --port 其他端口 启动,或先停掉占用进程;内置 Redis 端口冲突可用 --redis-port 调整或 --redis-off 关闭。
Q4:浏览器打不开工作台?
确认服务已启动:alx health、alx status、alx doctor 可以诊断。默认监听 0.0.0.0,局域网可直接访问 http://服务器IP:17390;只想本机访问用 alx --host 127.0.0.1。
Q5:提示需要管理员权限 / sudo?
部分系统级操作(安装环境依赖、系统服务、插件特权操作)需要授权。可在特权弹窗输入密码(password 模式)或使用系统原生授权(native 模式);操作会写入审计记录。
Q6:后台服务注册到哪里?移动 alx 程序后怎么办?
alx install 注册的是你当前执行的 alx 程序(不会复制到别的目录),并把安装时解析出的工作区固定进服务参数,后台服务与前台使用同一工作区。每次执行 alx install 都会以当前程序与工作区直接覆盖重新注册,不会因为已安装而跳过。 安装默认开启开机自启;Linux 上还会默认尝试开启无登录运行(权限不足时会提示,可在设置 → 服务中稍后启用)。程序移动后,从新位置重新执行 alx install,或直接执行 alx start(会自动检测并按当前程序重新注册);alx status 会显示注册的程序与工作区路径。
卸载后台服务:执行 alx uninstall --yes,或在「设置 → 服务」点「卸载服务」。卸载只移除后台服务注册与开机自启,不会删除工作台数据、账户或机器人项目;之后手动运行 alx 即可重新打开工作台。
环境与依赖
Q7:Node.js 版本太低怎么办?
建议升级到 v22.22.3+。版本低时工作台会标记为 outdated 并显示升级入口,但不会阻止使用;只有缺失或无法运行才会阻断。
Q8:缺少 Git 或包管理器?
在「环境」页面查看检查项,按提示一键安装。Git 用于版本管理与发布;包管理器用于安装机器人依赖。
机器人运行
Q9:机器人启动失败,日志在哪里看?
开发/前台模式的日志在终端或运行面板;PM2 模式用「PM2 日志」查看,支持分页、流式、导出。命令行可用 alx logs 查看后台服务日志(macOS:~/Library/Logs/alx.log;Linux:journalctl --user -u alx.service;Windows:%LOCALAPPDATA%\alx\alx.log)。
Q10:提示端口被其他进程占用?
工作台会自动识别端口归属;确认是其他程序占用后,换一个机器人端口,或停止占用程序。Windows 下端口归属按进程树识别 npm/yarn 派生的 Node 进程。
Q11:开发模式和 PM2 模式有什么区别?
开发模式适合改代码:改动热更新、日志直观;PM2 模式适合稳定运行:守护进程、自动重启、开机恢复清单,生产环境推荐。
配置与数据
Q12:机器人配置在哪里改?
机器人根目录的 alemon.config.yaml(平台账号、端口等)和 package.json(依赖、脚本、发布信息)。工作台提供可视化编辑器,敏感字段(.env、.npmrc、alemon 配置草稿)不会持久化到浏览器。
Q13:工作台的数据存在哪里,怎么备份?
工作区目录保存模板、工具、新建机器人和系统插件;系统插件固定在 workspace/plugins,安装时不会写入程序目录。插件的默认可恢复数据目录为 workspace/store/<插件 ID>,例如 QQ 的登录态和下载组件;插件升级不会删除它。工作台状态(账户、配置、SQLite、下载缓存)在用户配置目录(Docker 部署在宿主机 ./data)。AI 运维数据默认在 ops.db(SQLite)。备份工作区和数据目录即可。
工作区路径也会显示在创建机器人的"保存位置"里(默认 workspace/bots)。模板或内置工具若检测到更新版本,不会自动覆盖;如需刷新,删除对应副本目录后重新使用即可。
Docker 部署也默认启用 Redis;它仅监听容器内 127.0.0.1,不会新增对外端口。./data 卷会保留其配置与回退快照。
Q14:忘记工作台管理员密码?
认证已开启时,使用紧急恢复命令重设超级管理员:alx auth reset-super-admin --account ... --password ... --confirm-password ... --yes。它会立即使旧会话失效,并禁用其他超级管理员账号;普通账号、角色和工作台数据会保留。alx auth status 可查看当前状态。生产部署建议配合防火墙限制访问来源。
为避免密码出现在 shell 历史和进程参数中,请使用 --password-stdin 并通过标准输入连续传入两次密码。Docker 部署必须在容器内执行,保证写入实际运行服务的认证文件:docker compose exec -T alx /app/alx auth reset-super-admin --account <账户> --password-stdin --yes。先执行 docker compose exec -T alx /app/alx auth status 可确认配置路径。
AI 与 MCP
Q15:为什么 AI 写代码要反复确认?
这是设计的安全边界:所有修改性操作都必须由你确认(confirm: true),MCP 的约束在 Go 服务层强制执行,不依赖客户端提示。你随时可以拒绝或停止任务。
Q16:Codex 连不上 MCP?
先 command -v alx 确认 alx 在 PATH;stdio 方式填启动命令 alx、参数 mcp;流式 HTTP 需要先设置 MCP_TOKEN 并启动 alx mcp-http,地址 http://127.0.0.1:17391/mcp。可选设置 MCP_ALLOWED_ROOTS 限制可管理目录。
Q17:AI 能对我的机器人做什么,不能做什么?
能:读源码、改代码、安装依赖、构建、Git 操作、管理运行(在你确认后)。不能:任意宿主 Shell 命令、读取 .env/.npmrc/私钥、访问 .git/node_modules/符号链接、读写超过 1 MiB 的文件。
更新与升级
Q18:如何更新 ALemonX?
alx update 检查并自动更新(校验 SHA-256)。Docker 部署请在宿主机执行 sh docker-install.sh pull && restart,不要在容器内执行 alx update。
Q19:更新后配置会丢吗?
不会。模板与工具包只在缺失时复制,已存在文件不会被覆盖;账户、配置、SQLite 与插件数据都保留。若遇到不兼容,先备份 workspace、./data(Docker)与 ops.db 再升级。