DrSmoothl feb7fcac0e feat(group-album): expose cover and upload metadata
Decode the verified album cover response field and expose normalized cover details and last-upload timestamps through both album list actions. Preserve the legacy numeric timestamp shape, retain string timestamps for the native response, return null when no cover exists, and avoid additional network requests.

Document the new output contracts in the OneBot and MCP catalogs. Add independent wire fixtures and action-level regression tests for the protocol mapping and public response shapes.

Refs #257
2026-07-20 23:37:41 +08:00
2026-05-03 14:02:29 +08:00
2026-06-19 02:15:54 +08:00
2026-07-20 15:52:49 +08:00
2026-06-19 02:15:54 +08:00
2026-07-14 21:34:34 +08:00

SnowLuma 将 QQ 原生会话桥接到 OneBot、WebUI 与自动化工具

最新版本 构建状态 SnowLuma SDK 版本 SnowLuma MCP 版本 GitHub Stars

快速开始 · 运行链路 · 动作参考 · SDK · MCP · 问题反馈

SnowLuma 是面向 QQ 客户端的 TypeScript 互操作运行时。它把 QQ 原生会话转换为 OneBot v11 动作与事件,并通过 WebSocket、HTTP、WebUI、SDK 和 MCP 提供统一入口;每个账号拥有独立会话,适合机器人开发、自动化与协议研究。

Caution

使用边界:SnowLuma 是独立的第三方互操作项目,与腾讯 / QQ 无任何隶属或授权关系。本项目仅供学习与技术研究,请遵守《QQ 用户协议》及适用法律;软件按“现状”提供、不附带任何担保,使用风险自负。详见 EULA.md。

Disclaimer: SnowLuma is an independent third-party interoperability project with no affiliation with or endorsement by Tencent / QQ. It is provided for study and research only, “as is” and without warranty. See EULA.md.

运行链路

QQ 会话经过协议桥接与 OneBot 标准化后连接到 WebSocket、HTTP、WebUI、SDK 和 MCP

SnowLuma 将会话接入、协议解析、身份映射、OneBot 转换和网络适配拆成清晰边界。多个 QQ 账号可以并行运行,同时保持独立状态、日志与连接配置。

核心能力

场景 SnowLuma 提供
OneBot 接入 OneBot v11 动作与事件,支持 WebSocket 服务端 / 客户端及 HTTP 服务端 / 上报
消息与媒体 文本、图片、语音、视频、文件、回复、提及、转发及 JSON / XML 卡片等常见消息元素
多账号运行 每个 QQ 账号独立维护会话、身份映射、消息存储与网络适配器
WebUI 管理 账号状态、实时日志、连接配置、动作调试、密码管理与可定制总览
开发者工具 提供 @snowluma/sdk 与 @snowluma/mcp
可观察错误 关键解析与执行失败会留下明确上下文,不以静默丢弃掩盖问题

快速开始

1. 选择发行包

前往 Releases 下载与你的平台匹配的版本:

平台 完整版(内置 Node.js,推荐) Lite(需要 Node.js 22+)
Windows x64 SnowLuma-vX.Y.Z-win-x64.zip SnowLuma-vX.Y.Z-win-x64-lite.zip
Linux x64 SnowLuma-vX.Y.Z-linux-x64.tar.gz SnowLuma-vX.Y.Z-linux-x64-lite.tar.gz
Linux arm64 SnowLuma-vX.Y.Z-linux-arm64.tar.gz SnowLuma-vX.Y.Z-linux-arm64-lite.tar.gz

完整版适合直接解压运行;Lite 版只移除了内置 Node.js,其余运行时依赖与 WebUI 静态资源保持一致。

2. 启动 SnowLuma

Windows 运行 launcher.bat。Linux 在解压目录执行:

chmod +x launcher.sh
./launcher.sh

3. 打开 WebUI

浏览器访问 http://localhost:5099。初始账号为 admin,随机密码会显示在启动日志中;登录后即可接入已启动的 QQ 进程并配置 OneBot 连接。

无人值守部署:通过环境变量确认协议

同时设置以下两个变量可跳过 WebUI 的协议确认页面:

SNOWLUMA_ACCEPT_EULA=1
SNOWLUMA_ACCEPT_PRIVACY=1

两项必须同时设置,且环境变量确认不会写入持久化同意记录。设置变量即表示运营者已阅读并同意 EULA.md 与 PRIVACY.md。

选择接入方式

入口 适合场景 参考
WebSocket / HTTP 对接现有 OneBot 机器人框架 OneBot 动作参考
TypeScript SDK 编写类型安全的客户端与消息逻辑 packages/sdk
MCP 让支持 MCP 的工具查询或调用 SnowLuma 动作 packages/mcp
WebUI 管理运行状态、日志、账号与连接 启动后访问 http://localhost:5099

开发与贡献

本地开发需要 Node.js 22+ 与项目锁定版本的 pnpm。所有日常开发基于 dev 分支:

git clone https://github.com/SnowLuma/SnowLuma.git
cd SnowLuma
git checkout dev
pnpm install
pnpm typecheck
pnpm test
主要目录
路径 作用
packages/protocol QQ 协议定义、数据包解析、消息推送与 OIDB 服务
packages/onebot OneBot 动作执行、事件转换与网络适配
packages/core 运行时编排、QQ 会话桥接与 WebUI 服务端
packages/webui React 管理界面
packages/sdk 对外发布的 TypeScript SDK
packages/mcp 面向 MCP 客户端的动作目录与执行入口

使用边界与许可

Important

SnowLuma 使用 源码可见非商业许可,不是 OSI 开源许可。源码可用于查看、学习、非商业自托管及私下修改;任何商业使用,以及公开发布修改版或衍生版,均需事先取得书面授权。

  • 完整条款见 LICENSE。
  • 随附的原生附加组件为专有组件,不在源码许可范围内。
  • 二进制发行包另受 EULA.md 与 PRIVACY.md 约束。
  • 商业授权请联系 motricseven@foxmail.com。

SnowLuma is source-available for study and non-commercial self-hosting, but it is not OSI open source. Commercial use and public distribution of modified or derivative versions require prior written permission. Bundled native components are proprietary and excluded from the source license.

社区与支持

鸣谢

项目参考了 LagrangeV2 的协议定义与 NapCatQQ 的实现思路。

SnowLuma 贡献者

S
Description
No description provided
Readme
64 MiB
Languages
TypeScript 98.9%
CSS 0.5%
JavaScript 0.5%