[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-moeru-ai--airi":3,"tool-moeru-ai--airi":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":121,"forks":122,"last_commit_at":123,"license":124,"difficulty_score":125,"env_os":126,"env_gpu":127,"env_ram":128,"env_deps":129,"category_tags":139,"github_topics":140,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":151,"updated_at":152,"faqs":153,"releases":183},3788,"moeru-ai\u002Fairi","airi","💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-sama's altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web \u002F macOS \u002F Windows supported.","airi 是一款开源的本地化 AI 伴侣项目，旨在将虚拟角色（如“二次元老婆”或赛博生命）带入用户的现实世界。它的核心目标是复刻并超越知名 AI 主播 Neuro-sama 的能力，让用户能够拥有完全自主掌控、可私有化部署的智能伙伴。\n\nairi 主要解决了用户对高度定制化、具备情感交互能力且数据隐私安全的 AI 角色的需求。不同于依赖云端服务的通用助手，airi 允许用户在本地运行，不仅保护了对话隐私，还赋予了用户定义角色性格与灵魂的自由。它支持实时语音聊天，甚至能直接参与《我的世界》（Minecraft）和《异星工厂》（Factorio）等游戏，实现了从单纯对话到共同娱乐的跨越。\n\n这款工具非常适合喜爱虚拟角色的普通用户、希望搭建个性化 AI 陪伴的技术爱好者，以及研究多模态交互的开发者。其独特的技术亮点在于跨平台支持（涵盖 Web、macOS 和 Windows）以及强大的游戏交互能力，让 AI 不仅能“说”，还能“玩”。通过容器化的灵魂设计，airi 为每个人创造专属数字生命提供了可能，让虚拟陪伴变得更加真实且触手可及。","\u003Cpicture>\n  \u003Csource\n    width=\"100%\"\n    srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fbanner-dark-1280x640.avif\"\n    media=\"(prefers-color-scheme: dark)\"\n  \u002F>\n  \u003Csource\n    width=\"100%\"\n    srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_29e076be8a0d.png\"\n    media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n  \u002F>\n  \u003Cimg width=\"250\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_29e076be8a0d.png\" \u002F>\n\u003C\u002Fpicture>\n\n\u003Ch1 align=\"center\">Project AIRI\u003C\u002Fh1>\n\n\u003Cp align=\"center\">Re-creating Neuro-sama, a soul container of AI waifu \u002F virtual characters to bring them into our world.\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  [\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FTgQ3Cu2F7A\">Join Discord Server\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fairi.moeru.ai\">Try it\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.zh-CN.md\">简体中文\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.ja-JP.md\">日本語\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.ru-RU.md\">Русский\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.vi.md\">Tiếng Việt\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.fr.md\">Français\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.ko-KR.md\">한국어\u003C\u002Fa>]\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002Fmoeru-ai\u002Fairi\">\u003Cimg src=\"https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmoeru-ai\u002Fairi.svg?style=flat&colorA=080f12&colorB=1fa669\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FTgQ3Cu2F7A\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdynamic\u002Fjson?url=https%3A%2F%2Fdiscord.com%2Fapi%2Finvites%2FTgQ3Cu2F7A%3Fwith_counts%3Dtrue&query=%24.approximate_member_count&suffix=%20members&logo=discord&logoColor=white&label=%20&color=7389D8&labelColor=6A7EC2\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Fproj_airi\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%40proj__airi-black?style=flat&logo=x&labelColor=%23101419&color=%232d2e30\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ft.me\u002F+7M_ZKO3zUHFlOThh\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTelegram-%235AA9E6?logo=telegram&labelColor=FFFFFF\">\u003C\u002Fa>\n  \u003Ca href=\".\u002Fdocs\u002Fwechat.md\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWeChat-%2307C160?logo=wechat&logoColor=%2307C160&labelColor=FFFFFF\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fqun.qq.com\u002Funiversal-share\u002Fshare?ac=1&authKey=9g00d%2BZS7nORzcJugNNddJ7rCghZTIR7fhXabGwch2S%2BG%2BKGIKwlN1N2nIqkh2jg&busi_data=eyJncm91cENvZGUiOiIxMDU4MTU2Njk3IiwidG9rZW4iOiJmcnkra1hWNFIxNytEcG0zcHRUdVJIaldlRDFxN0dzK080QWtvTEdOQjJkNEY2eUFta1g1clNpbkxSMS9FQWFYIiwidWluIjoiMTI2MDkwNzMzNSJ9&data=b1eJrwn3GVOUh7YIxZ7l9vHQo99HPmRxKPpMKlDCmfzx8Y57IXb2EZCMaOC9rVTd2U558qpNjwUYUWlPHxVHvg&svctype=4&tempid=h5_group_info\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FQQ-%2312B7F5?logo=qq&labelColor=FFFFFF\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp float=\"left\" align=\"center\">\n  \u003C!-- readme-section:release-binary-windows -->\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Freleases\u002Fdownload\u002Fv0.9.0-beta.2\u002FAIRI-0.9.0-beta.2-windows-x64-setup.exe\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.windows.dark.en-US.avif\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_14e5bcf0e5a9.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_14e5bcf0e5a9.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003C!-- readme-section:release-binary-macos -->\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Freleases\u002Fdownload\u002Fv0.9.0-beta.2\u002FAIRI-0.9.0-beta.2-darwin-arm64.dmg\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.macos.dark.en-US.avif\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_6037886a2e40.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_6037886a2e40.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Freleases\u002Flatest\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.linux.dark.en-US.avif\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_560cc11b0414.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_560cc11b0414.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp float=\"left\" align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fairi.moeru.ai\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002FQR%20code%20button\u002Fsection.cards.qrcode.dark.en-US.png\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_0af7145aa4a5.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_0af7145aa4a5.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fairi.moeru.ai\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.mobile.dark.en-US.avif\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_0969feacdd5b.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_0969feacdd5b.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fairi.moeru.ai\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.browser.dark.en-US.png\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_656ce28ca4cd.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_656ce28ca4cd.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.producthunt.com\u002Fproducts\u002Fairi?embed=true&utm_source=badge-featured&utm_medium=badge&utm_source=badge-airi\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fapi.producthunt.com\u002Fwidgets\u002Fembed-image\u002Fv1\u002Ffeatured.svg?post_id=993524&theme=neutral&t=1752696535380\" alt=\"AIRI - A&#0032;container&#0032;of&#0032;cyber&#0032;living&#0032;souls&#0044;&#0032;re&#0045;creation&#0032;of&#0032;Neuro&#0045;sama | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F14636\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_4a68feb902da.png\" alt=\"moeru-ai%2Fairi | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n> Heavily inspired by [Neuro-sama](https:\u002F\u002Fwww.youtube.com\u002F@Neurosama)\n\n> [!TIP]\n> On Windows, you can also install AIRI with [Scoop](https:\u002F\u002Fscoop.sh\u002F):\n>\n> ```powershell\n> scoop bucket add airi https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\n> scoop install airi\u002Fairi\n> ```\n\n> [!WARNING]\n> **Attention:** We **do not** have any officially minted cryptocurrency or token associated with this project. Please check the information and proceed with caution.\n\n> [!NOTE]\n>\n> We've got a whole dedicated organization [@proj-airi](https:\u002F\u002Fgithub.com\u002Fproj-airi) for all the sub-projects born from Project AIRI. Check it out!\n>\n> RAG, memory system, embedded database, icons, Live2D utilities, and more!\n\n> [!TIP]\n> We have a translation project on [Crowdin](https:\u002F\u002Fcrowdin.com\u002Fproject\u002Fproj-airi). If you find any inaccurate translations, feel free to contribute improvements there.\n> \u003Ca href=\"https:\u002F\u002Fcrowdin.com\u002Fproject\u002Fproj-airi\" target=\"_blank\" rel=\"nofollow\">\u003Cimg style=\"width: 140px; height: 40px;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_b28934b8187d.png\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_b28934b8187d.png 1x, https:\u002F\u002Fbadges.crowdin.net\u002Fbadge\u002Flight\u002Fcrowdin-on-dark@2x.png 2x\" alt=\"Crowdin | Agile localization for tech companies\" width=\"140\" height=\"40\" \u002F>\u003C\u002Fa>\n\nHave you dreamed about having a cyber living being (cyber waifu, digital pet) or digital companion that could play with and talk to you?\n\nWith the power of modern large language models like [ChatGPT](https:\u002F\u002Fchatgpt.com) and famous [Claude](https:\u002F\u002Fclaude.ai), asking a virtual being to roleplay and chat with us is already easy enough for everyone. Platforms like [Character.ai (a.k.a. c.ai)](https:\u002F\u002Fcharacter.ai) and [JanitorAI](https:\u002F\u002Fjanitorai.com\u002F) as well as local playgrounds like [SillyTavern](https:\u002F\u002Fgithub.com\u002FSillyTavern\u002FSillyTavern) are already good-enough solutions for a chat based or visual adventure game like experience.\n\n> But, what about the abilities to play games? And see what you are coding at? Chatting while playing games, watching videos, and is capable of doing many other things.\n\nPerhaps you know [Neuro-sama](https:\u002F\u002Fwww.youtube.com\u002F@Neurosama) already. She is currently the best virtual streamer capable of playing games, chatting, and interacting with you and the participants. Some also call this kind of being \"digital human.\" **Sadly, as it's not open sourced, you cannot interact with her after her live streams go offline**.\n\nTherefore, this project, AIRI, offers another possibility here: **let you own your digital life, cyber living, easily, anywhere, anytime**.\n\n## DevLogs We Posted & Recent Updates\n\n- [DevLog @ 2026.03.14](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2026.03.14\u002F) on March 14, 2026\n- [DevLog @ 2026.02.16](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2026.02.16\u002F) on February 16, 2026\n- [DevLog @ 2026.01.01](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2026.01.01\u002F) on January 1, 2026\n- [DevLog @ 2025.10.20](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2025.10.20\u002F) on October 20, 2025\n- [DevLog @ 2025.08.05](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2025.08.05\u002F) on August 5, 2025\n- [DevLog @ 2025.08.01](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2025.08.01\u002F) on August 1, 2025\n- [DreamLog 0x1](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002Fdreamlog-0x1\u002F) on June 16, 2025\n- ...more on [documentation site](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002F)\n\n## What's So Special About This Project?\n\nUnlike the other AI driven VTuber open source projects, アイリ was built with support of many Web technologies such as [WebGPU](https:\u002F\u002Fwww.w3.org\u002FTR\u002Fwebgpu\u002F), [WebAudio](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWeb_Audio_API), [Web Workers](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWeb_Workers_API\u002FUsing_web_workers), [WebAssembly](https:\u002F\u002Fwebassembly.org\u002F), [WebSocket](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWebSocket), etc. from the first day.\n\n> [!TIP]\n> Worrying about the performance drop since we are using Web related technologies?\n>\n> Don't worry, while Web browser version is meant to give an insight about how much we can push and do inside browsers, and webviews, we will never fully rely on this, the desktop version of AIRI is capable of using native [NVIDIA CUDA](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-toolkit) and [Apple Metal](https:\u002F\u002Fdeveloper.apple.com\u002Fmetal\u002F) by default (thanks to HuggingFace & beloved [candle](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fcandle) project), without any complex dependency managements, considering the tradeoff, it was partially powered by Web technologies for graphics, layouts, animations, and the WIP plugin systems for everyone to integrate things.\n\nThis means that **アイリ is capable of running on modern browsers and devices** and even on mobile devices (already done with PWA support). This brings a lot of possibilities for us (the developers) to build and extend the power of アイリ VTuber to the next level, while still leaving the flexibilities for users to enable features that requires TCP connections or other non-Web technologies such as connecting to a Discord voice channel or playing Minecraft and Factorio with friends.\n\n> [!NOTE]\n>\n> We are still in the early stage of development where we are seeking out talented developers to join us and help us to make アイリ a reality.\n>\n> It's ok if you are not familiar with Vue.js, TypeScript, and devtools required for this project, you can join us as an artist, designer, or even help us to launch our first live stream.\n>\n> Even if you are a big fan of React, Svelte or even Solid, we welcome you. You can open a sub-directory to add features that you want to see in アイリ, or would like to experiment with.\n>\n> Fields (and related projects) that we are looking for:\n>\n> - Live2D modeller\n> - VRM modeller\n> - VRChat avatar designer\n> - Computer Vision\n> - Reinforcement Learning\n> - Speech Recognition\n> - Speech Synthesis\n> - ONNX Runtime\n> - Transformers.js\n> - vLLM\n> - WebGPU\n> - Three.js\n> - WebXR ([checkout the another project](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fchat) we have under the @moeru-ai organization)\n>\n> **If you are interested, why not introduce yourself here? [Would like to join part of us to build AIRI?](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fdiscussions\u002F33)**\n\n## Current Progress\n\nCapable of\n\n- [x] Brain\n  - [x] Play [Minecraft](https:\u002F\u002Fwww.minecraft.net)\n  - [x] Play [Factorio](https:\u002F\u002Fwww.factorio.com) (WIP, but [PoC and demo available](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi-factorio))\n  - [x] Play [Kerbal Space Program](https:\u002F\u002Fwww.kerbalspaceprogram.com\u002F) (announcement TBD)\n  - [ ] Co-play [Helldivers 2](https:\u002F\u002Fwww.playstation.com\u002Fen-hk\u002Fgames\u002Fhelldivers-2\u002Fpc\u002F) (WIP)\n  - [x] Chat in [Telegram](https:\u002F\u002Ftelegram.org)\n  - [x] Chat in [Discord](https:\u002F\u002Fdiscord.com)\n  - [ ] Memory\n    - [x] Pure in-browser database support (DuckDB WASM | `pglite`)\n    - [ ] Memory Alaya (WIP)\n  - [ ] Pure in-browser local (WebGPU) inference\n- [x] Ears\n  - [x] Audio input from browser\n  - [x] Audio input from [Discord](https:\u002F\u002Fdiscord.com)\n  - [x] Client side speech recognition\n  - [x] Client side talking detection\n- [x] Mouth\n  - [x] [ElevenLabs](https:\u002F\u002Felevenlabs.io\u002F) voice synthesis\n- [x] Body\n  - [x] VRM support\n    - [x] Control VRM model\n  - [x] VRM model animations\n    - [x] Auto blink\n    - [x] Auto look at\n    - [x] Idle eye movement\n  - [x] Live2D support\n    - [x] Control Live2D model\n  - [x] Live2D model animations\n    - [x] Auto blink\n    - [x] Auto look at\n    - [x] Idle eye movement\n\n## Development\n\n> For detailed instructions to develop this project, follow [CONTRIBUTING.md](.\u002F.github\u002FCONTRIBUTING.md)\n\n> [!NOTE]\n> By default, `pnpm dev` will start the development server for the Stage Web (browser version). If you would\n> like to try developing the desktop version, please make sure you read [CONTRIBUTING.md](.\u002F.github\u002FCONTRIBUTING.md)\n> to setup the environment correctly.\n\n```shell\npnpm i\npnpm dev\n```\n\n### Stage Web (Browser Version at [airi.moeru.ai](https:\u002F\u002Fairi.moeru.ai))\n\n```shell\npnpm dev\n```\n\n### Stage Tamagotchi (Desktop Version)\n\n```shell\npnpm dev:tamagotchi\n```\n\nA Nix package for Tamagotchi is included. To run airi with Nix, first make sure to enable flakes, then run:\n\n```shell\nnix run github:moeru-ai\u002Fairi\n```\n\n#### NixOS\n\nElectron requires shared libraries that aren't in standard paths on NixOS. Use the FHS shell defined in `flake.nix`:\n\n```shell\nnix develop .#fhs\npnpm dev:tamagotchi\n```\n\n### Stage Pocket (Mobile Version)\n\nStart the development server for the capacitor:\n\n```shell\npnpm dev:pocket:ios --target \u003CDEVICE_ID_OR_SIMULATOR_NAME>\n# Or\nCAPACITOR_DEVICE_ID_IOS=\u003CDEVICE_ID_OR_SIMULATOR_NAME> pnpm dev:pocket:ios\n```\n\nYou can see the list of available devices and simulators by running `pnpm exec cap run ios --list`.\n\nIf you need to connect server channel on pocket in wireless mode, you need to start tamagotchi as root:\n\n```shell\nsudo pnpm dev:tamagotchi\n```\n\nThen enable secure websocket in tamagotchi `settings\u002Fconnections`.\n\n### Documentation Site\n\n```shell\npnpm dev:docs\n```\n\n### Publish\n\nRun `bumpp` to update the monorepo version:\n\n```shell\nnpx bumpp --no-commit --no-tag\n```\n\n## Support of LLM API Providers (powered by [xsai](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fxsai))\n\n- [x] [AIHubMix (recommended)](https:\u002F\u002Faihubmix.com\u002F?aff=OOiX)\n- [x] [OpenRouter](https:\u002F\u002Fopenrouter.ai\u002F)\n- [x] [vLLM](https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm)\n- [x] [SGLang](https:\u002F\u002Fgithub.com\u002Fsgl-project\u002Fsglang)\n- [x] [Ollama](https:\u002F\u002Fgithub.com\u002Follama\u002Follama)\n- [x] [302.AI (sponsored)](https:\u002F\u002Fshare.302.ai\u002F514k2v)\n- [x] [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fgpt\u002Fchat-completions-api)\n  - [x] [Azure OpenAI API](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fai-services\u002Fopenai\u002Freference)\n- [x] [Anthropic Claude](https:\u002F\u002Fanthropic.com)\n  - [ ] [AWS Claude](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fapi\u002Fclaude-on-amazon-bedrock) (PR welcome)\n- [x] [DeepSeek](https:\u002F\u002Fwww.deepseek.com\u002F)\n- [x] [Qwen](https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F2400395.html)\n- [x] [Google Gemini](https:\u002F\u002Fdevelopers.generativeai.google)\n- [x] [xAI](https:\u002F\u002Fx.ai\u002F)\n- [x] [Groq](https:\u002F\u002Fwow.groq.com\u002F)\n- [x] [Mistral](https:\u002F\u002Fmistral.ai\u002F)\n- [x] [Cloudflare Workers AI](https:\u002F\u002Fdevelopers.cloudflare.com\u002Fworkers-ai\u002F)\n- [x] [Together.ai](https:\u002F\u002Fwww.together.ai\u002F)\n- [x] [Fireworks.ai](https:\u002F\u002Fwww.together.ai\u002F)\n- [x] [Novita](https:\u002F\u002Fwww.novita.ai\u002F)\n- [x] [Zhipu](https:\u002F\u002Fbigmodel.cn)\n- [x] [SiliconFlow](https:\u002F\u002Fcloud.siliconflow.cn\u002Fi\u002FrKXmRobW)\n- [x] [Stepfun](https:\u002F\u002Fplatform.stepfun.com\u002F)\n- [x] [Baichuan](https:\u002F\u002Fplatform.baichuan-ai.com)\n- [x] [Minimax](https:\u002F\u002Fapi.minimax.chat\u002F)\n- [x] [Moonshot AI](https:\u002F\u002Fplatform.moonshot.cn\u002F)\n- [x] [ModelScope](https:\u002F\u002Fmodelscope.cn\u002Fdocs\u002Fmodel-service\u002FAPI-Inference\u002Fintro)\n- [x] [Player2](https:\u002F\u002Fplayer2.game\u002F)\n- [x] [Tencent Cloud](https:\u002F\u002Fcloud.tencent.com\u002Fdocument\u002Fproduct\u002F1729)\n- [ ] [Sparks](https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fspark\u002FWeb.html) (PR welcome)\n- [ ] [Volcano Engine](https:\u002F\u002Fwww.volcengine.com\u002Fexperience\u002Fark?utm_term=202502dsinvite&ac=DSASUQY5&rc=2QXCA1VI) (PR welcome)\n\n## Sub-projects Born from This Project\n\n- [Awesome AI VTuber](https:\u002F\u002Fgithub.com\u002Fproj-airi\u002Fawesome-ai-vtuber): A curated list of AI VTubers and related projects\n- [`unspeech`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Funspeech): Universal endpoint proxy server for `\u002Faudio\u002Ftranscriptions` and `\u002Faudio\u002Fspeech`, like LiteLLM but for any ASR and TTS\n- [`hfup`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fhfup): tools to help on deploying, bundling to HuggingFace Spaces\n- [`xsai-transformers`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fxsai-transformers): Experimental [🤗 Transformers.js](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers.js) provider for [xsAI](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fxsai).\n- [WebAI: Realtime Voice Chat](https:\u002F\u002Fgithub.com\u002Fproj-airi\u002Fwebai-realtime-voice-chat): Full example of implementing ChatGPT's realtime voice from scratch with VAD + STT + LLM + TTS.\n- [`@proj-airi\u002Fdrizzle-duckdb-wasm`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Ftree\u002Fmain\u002Fpackages\u002Fdrizzle-duckdb-wasm\u002FREADME.md): Drizzle ORM driver for DuckDB WASM\n- [`@proj-airi\u002Fduckdb-wasm`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Ftree\u002Fmain\u002Fpackages\u002Fduckdb-wasm\u002FREADME.md): Easy to use wrapper for `@duckdb\u002Fduckdb-wasm`\n- [AIRI Factorio](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi-factorio): Allow AIRI to play Factorio.\n- [AIRI DomeKeeper](https:\u002F\u002Fgithub.com\u002Fproj-airi\u002Fgame-playing-ai-dome-keeper): Allow AIRI to play DomeKeeper.\n- [Factorio RCON API](https:\u002F\u002Fgithub.com\u002Fnekomeowww\u002Ffactorio-rcon-api): RESTful API wrapper for Factorio headless server console\n- [`autorio`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi-factorio\u002Ftree\u002Fmain\u002Fpackages\u002Fautorio): Factorio automation library\n- [`tstl-plugin-reload-factorio-mod`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi-factorio\u002Ftree\u002Fmain\u002Fpackages\u002Ftstl-plugin-reload-factorio-mod): Reload Factorio mod when developing\n- [Velin](https:\u002F\u002Fgithub.com\u002Fluoling8192\u002Fvelin): Use Vue SFC and Markdown to write easy to manage stateful prompts for LLM\n- [`demodel`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fdemodel): Easily boost the speed of pulling your models and datasets from various of inference runtimes.\n- [`inventory`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Finventory): Centralized model catalog and default provider configurations backend service\n- [MCP Launcher](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fmcp-launcher): Easy to use MCP builder & launcher for all possible MCP servers, just like Ollama for models!\n- [🥺 SAD](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fsad): Documentation and notes for self-host and browser running LLMs.\n\n```mermaid\n%%{ init: { 'flowchart': { 'curve': 'catmullRom' } } }%%\n\nflowchart TD\n  Core(\"Core\")\n  Unspeech(\"unspeech\")\n  DBDriver(\"@proj-airi\u002Fdrizzle-duckdb-wasm\")\n  MemoryDriver(\"[WIP] Memory Alaya\")\n  DB1(\"@proj-airi\u002Fduckdb-wasm\")\n  SVRT(\"@proj-airi\u002Fserver-runtime\")\n  Memory(\"Memory\")\n  STT(\"STT\")\n  Stage(\"Stage\")\n  StageUI(\"@proj-airi\u002Fstage-ui\")\n  UI(\"@proj-airi\u002Fui\")\n\n  subgraph AIRI\n    DB1 --> DBDriver --> MemoryDriver --> Memory --> Core\n    UI --> StageUI --> Stage --> Core\n    Core --> STT\n    Core --> SVRT\n  end\n\n  subgraph UI_Components\n    UI --> StageUI\n    UITransitions(\"@proj-airi\u002Fui-transitions\") --> StageUI\n    UILoadingScreens(\"@proj-airi\u002Fui-loading-screens\") --> StageUI\n    FontCJK(\"@proj-airi\u002Ffont-cjkfonts-allseto\") --> StageUI\n    FontXiaolai(\"@proj-airi\u002Ffont-xiaolai\") --> StageUI\n  end\n\n  subgraph Apps\n    Stage --> StageWeb(\"@proj-airi\u002Fstage-web\")\n    Stage --> StageTamagotchi(\"@proj-airi\u002Fstage-tamagotchi\")\n    Core --> RealtimeAudio(\"@proj-airi\u002Frealtime-audio\")\n    Core --> PromptEngineering(\"@proj-airi\u002Fplayground-prompt-engineering\")\n  end\n\n  subgraph Server_Components\n    Core --> ServerSDK(\"@proj-airi\u002Fserver-sdk\")\n    ServerShared(\"@proj-airi\u002Fserver-shared\") --> SVRT\n    ServerShared --> ServerSDK\n  end\n\n  STT -->|Speaking| Unspeech\n  SVRT -->|Playing Factorio| F_AGENT\n  SVRT -->|Playing Minecraft| MC_AGENT\n\n  subgraph Factorio_Agent\n    F_AGENT(\"Factorio Agent\")\n    F_API(\"Factorio RCON API\")\n    factorio-server(\"factorio-server\")\n    F_MOD1(\"autorio\")\n\n    F_AGENT --> F_API -.-> factorio-server\n    F_MOD1 -.-> factorio-server\n  end\n\n  subgraph Minecraft_Agent\n    MC_AGENT(\"Minecraft Agent\")\n    Mineflayer(\"Mineflayer\")\n    minecraft-server(\"minecraft-server\")\n\n    MC_AGENT --> Mineflayer -.-> minecraft-server\n  end\n\n  XSAI(\"xsAI\") --> Core\n  XSAI --> F_AGENT\n  XSAI --> MC_AGENT\n\n  Memory_PGVector(\"@proj-airi\u002Fmemory-pgvector\") --> Memory\n\n  style Core fill:#f9d4d4,stroke:#333,stroke-width:1px\n  style AIRI fill:#fcf7f7,stroke:#333,stroke-width:1px\n  style UI fill:#d4f9d4,stroke:#333,stroke-width:1px\n  style Stage fill:#d4f9d4,stroke:#333,stroke-width:1px\n  style UI_Components fill:#d4f9d4,stroke:#333,stroke-width:1px\n  style Server_Components fill:#d4e6f9,stroke:#333,stroke-width:1px\n  style Apps fill:#d4d4f9,stroke:#333,stroke-width:1px\n  style Factorio_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px\n  style Minecraft_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px\n\n  style DBDriver fill:#f9f9d4,stroke:#333,stroke-width:1px\n  style MemoryDriver fill:#f9f9d4,stroke:#333,stroke-width:1px\n  style DB1 fill:#f9f9d4,stroke:#333,stroke-width:1px\n  style Memory fill:#f9f9d4,stroke:#333,stroke-width:1px\n  style Memory_PGVector fill:#f9f9d4,stroke:#333,stroke-width:1px\n```\n\n## Similar Projects\n\n### Open sourced ones\n\n- [kimjammer\u002FNeuro: A recreation of Neuro-Sama originally created in 7 days.](https:\u002F\u002Fgithub.com\u002Fkimjammer\u002FNeuro): very well completed implementation.\n- [SugarcaneDefender\u002Fz-waif](https:\u002F\u002Fgithub.com\u002FSugarcaneDefender\u002Fz-waif): Great at gaming, autonomous, and prompt engineering\n- [semperai\u002Famica](https:\u002F\u002Fgithub.com\u002Fsemperai\u002Famica\u002F): Great at VRM, WebXR\n- [elizaOS\u002Feliza](https:\u002F\u002Fgithub.com\u002FelizaOS\u002Feliza): Great examples and software engineering on how to integrate agent into various of systems and APIs\n- [ardha27\u002FAI-Waifu-Vtuber](https:\u002F\u002Fgithub.com\u002Fardha27\u002FAI-Waifu-Vtuber): Great about Twitch API integrations\n- [InsanityLabs\u002FAIVTuber](https:\u002F\u002Fgithub.com\u002FInsanityLabs\u002FAIVTuber): Nice UI and UX\n- [IRedDragonICY\u002Fvixevia](https:\u002F\u002Fgithub.com\u002FIRedDragonICY\u002Fvixevia)\n- [t41372\u002FOpen-LLM-VTuber](https:\u002F\u002Fgithub.com\u002Ft41372\u002FOpen-LLM-VTuber)\n- [PeterH0323\u002FStreamer-Sales](https:\u002F\u002Fgithub.com\u002FPeterH0323\u002FStreamer-Sales)\n\n### Non-open-sourced ones\n\n- https:\u002F\u002Fclips.twitch.tv\u002FWanderingCaringDeerDxCat-Qt55xtiGDSoNmDDr https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8Giv5mupJNE\n- https:\u002F\u002Fclips.twitch.tv\u002FTriangularAthleticBunnySoonerLater-SXpBk1dFso21VcWD\n- https:\u002F\u002Fwww.youtube.com\u002F@NOWA_Mirai\n\n## Project Status\n\n![Repobeats analytics image](https:\u002F\u002Frepobeats.axiom.co\u002Fapi\u002Fembed\u002Fa1d6fe2c13ea2bb53a5154435a71e2431f70c2ee.svg 'Repobeats analytics image')\n\n## Acknowledgements\n\n- [Reka UI](https:\u002F\u002Fgithub.com\u002Funovue\u002Freka-ui): for designing the documentation site, the new landing page is based on this, as well as implementing a massive amount of UI components. (shadcn-vue is using Reka UI as the headless, do checkout!)\n- [pixiv\u002FChatVRM](https:\u002F\u002Fgithub.com\u002Fpixiv\u002FChatVRM)\n- [josephrocca\u002FChatVRM-js: A JS conversion\u002Fadaptation of parts of the ChatVRM (TypeScript) code for standalone use in OpenCharacters and elsewhere](https:\u002F\u002Fgithub.com\u002Fjosephrocca\u002FChatVRM-js)\n- Design of UI and style was inspired by [Cookard](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F2919650\u002FCookard\u002F), [UNBEATABLE](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F2240620\u002FUNBEATABLE\u002F), and [Sensei! I like you so much!](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F2957700\u002F_\u002F), and artworks of [Ayame by Mercedes Bazan](https:\u002F\u002Fdribbble.com\u002Fshots\u002F22157656-Ayame) with [Wish by Mercedes Bazan](https:\u002F\u002Fdribbble.com\u002Fshots\u002F24501019-Wish)\n- [mallorbc\u002Fwhisper_mic](https:\u002F\u002Fgithub.com\u002Fmallorbc\u002Fwhisper_mic)\n- [`xsai`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fxsai): Implemented a decent amount of packages to interact with LLMs and models, like [Vercel AI SDK](https:\u002F\u002Fsdk.vercel.ai\u002F) but way small.\n\n## Supporters\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Thank you for supporting Project AIRI through OpenCollective, Patreon, and Ko-fi.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fsponsors\u002Fsponsors.svg\" alt=\"Project AIRI supporters\" \u002F>\n\u003C\u002Fp>\n\n## Special Thanks\n\nSpecial thanks to all contributors for their contributions to Project AIRI ❤️\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_6c410a75baf9.png\" \u002F>\n\u003C\u002Fa>\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#moeru-ai\u002Fairi&Date\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_25c79cf38b28.png&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_25c79cf38b28.png\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_25c79cf38b28.png\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n","\u003Cpicture>\n  \u003Csource\n    width=\"100%\"\n    srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fbanner-dark-1280x640.avif\"\n    media=\"(prefers-color-scheme: dark)\"\n  \u002F>\n  \u003Csource\n    width=\"100%\"\n    srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_29e076be8a0d.png\"\n    media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n  \u002F>\n  \u003Cimg width=\"250\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_29e076be8a0d.png\" \u002F>\n\u003C\u002Fpicture>\n\n\u003Ch1 align=\"center\">Project AIRI\u003C\u002Fh1>\n\n\u003Cp align=\"center\">重新创造Neuro-sama，一个AI二次元美少女\u002F虚拟角色的灵魂容器，将她们带入我们的世界。\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  [\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FTgQ3Cu2F7A\">加入Discord服务器\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fairi.moeru.ai\">体验\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.zh-CN.md\">简体中文\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.ja-JP.md\">日本語\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.ru-RU.md\">Русский\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.vi.md\">Tiếng Việt\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.fr.md\">Français\u003C\u002Fa>] [\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002Fdocs\u002FREADME.ko-KR.md\">한국어\u003C\u002Fa>]\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002Fmoeru-ai\u002Fairi\">\u003Cimg src=\"https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmoeru-ai\u002Fairi.svg?style=flat&colorA=080f12&colorB=1fa669\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FTgQ3Cu2F7A\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdynamic\u002Fjson?url=https%3A%2F%2Fdiscord.com%2Fapi%2Finvites%2FTgQ3Cu2F7A%3Fwith_counts%3Dtrue&query=%24.approximate_member_count&suffix=%20members&logo=discord&logoColor=white&label=%20&color=7389D8&labelColor=6A7EC2\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Fproj_airi\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%40proj__airi-black?style=flat&logo=x&labelColor=%23101419&color=%232d2e30\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ft.me\u002F+7M_ZKO3zUHFlOThh\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTelegram-%235AA9E6?logo=telegram&labelColor=FFFFFF\">\u003C\u002Fa>\n  \u003Ca href=\".\u002Fdocs\u002Fwechat.md\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWeChat-%2307C160?logo=wechat&logoColor=%2307C160&labelColor=FFFFFF\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fqun.qq.com\u002Funiversal-share\u002Fshare?ac=1&authKey=9g00d%2BZS7nORzcJugNNddJ7rCghZTIR7fhXabGwch2S%2BG%2BKGIKwlN1N2nIqkh2jg&busi_data=eyJncm91cENvZGUiOiIxMDU4MTU2Njk3IiwidG9rZW4iOiJmcnkra1hWNFIxNytEcG0zcHRUdVJIaldlRDFxN0dzK080QWkvTEdOQjJkNEY2eUFta1g1clNpbkxSMS9FQWFYIiwidWluIjoiMTI2MDkwNzMzNSJ9&data=b1eJrwn3GVOUh7YIxZ7l9vHQo99HPmRxKPpMKlDCmfzx8Y57IXb2EZCMaOC9rVTd2U558qpNjwUYUWlPHxVHvg&svctype=4&tempid=h5_group_info\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FQQ-%2312B7F5?logo=qq&labelColor=FFFFFF\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp float=\"left\" align=\"center\">\n  \u003C!-- readme-section:release-binary-windows -->\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Freleases\u002Fdownload\u002Fv0.9.0-beta.2\u002FAIRI-0.9.0-beta.2-windows-x64-setup.exe\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.windows.dark.en-US.avif\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_14e5bcf0e5a9.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_14e5bcf0e5a9.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003C!-- readme-section:release-binary-macos -->\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Freleases\u002Fdownload\u002Fv0.9.0-beta.2\u002FAIRI-0.9.0-beta.2-darwin-arm64.dmg\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.macos.dark.en-US.avif\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_6037886a2e40.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_6037886a2e40.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Freleases\u002Flatest\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.linux.dark.en-US.avif\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_560cc11b0414.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_560cc11b0414.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp float=\"left\" align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fairi.moeru.ai\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002FQR%20code%20button\u002Fsection.cards.qrcode.dark.en-US.png\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_0af7145aa4a5.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_0af7145aa4a5.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fairi.moeru.ai\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.mobile.dark.en-US.avif\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_0969feacdd5b.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_0969feacdd5b.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fairi.moeru.ai\">\n    \u003Cpicture>\n      \u003Csource\n        width=\"33%\"\n        srcset=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fdownload-buttons\u002Fdownload-buttons.browser.dark.en-US.png\"\n        media=\"(prefers-color-scheme: dark)\"\n      \u002F>\n      \u003Csource\n        width=\"33%\"\n        srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_656ce28ca4cd.png\"\n        media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\"\n      \u002F>\n      \u003Cimg width=\"33%\" src \"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_656ce28ca4cd.png\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.producthunt.com\u002Fproducts\u002Fairi?embed=true&utm_source=badge-featured&utm_medium=badge&utm_source=badge-airi\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fapi.producthunt.com\u002Fwidgets\u002Fembed-image\u002Fv1\u002Ffeatured.svg?post_id=993524&theme=neutral&t=1752696535380\" alt=\"AIRI - 一个充满网络生命灵魂的容器，Neuro-sama 的再创造 | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F14636\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_4a68feb902da.png\" alt=\"moeru-ai%2Fairi | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n> 受到 [Neuro-sama](https:\u002F\u002Fwww.youtube.com\u002F@Neurosama) 的强烈启发\n\n> [!TIP]\n> 在 Windows 系统上，你也可以通过 [Scoop](https:\u002F\u002Fscoop.sh\u002F) 安装 AIRI：\n>\n> ```powershell\n> scoop bucket add airi https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\n> scoop install airi\u002Fairi\n> ```\n\n> [!WARNING]\n> **注意：** 我们与该项目没有任何官方发行的加密货币或代币。请仔细核实相关信息，并谨慎操作。\n\n> [!NOTE]\n>\n> 我们专门设立了一个组织 [@proj-airi](https:\u002F\u002Fgithub.com\u002Fproj-airi)，用于管理从 Project AIRI 中衍生出的所有子项目。欢迎查看！\n>\n> 包括 RAG、记忆系统、嵌入式数据库、图标、Live2D 工具等！\n\n> [!TIP]\n> 我们在 [Crowdin](https:\u002F\u002Fcrowdin.com\u002Fproject\u002Fproj-airi) 上有一个翻译项目。如果你发现任何翻译不准确的地方，欢迎随时贡献改进。\n> \u003Ca href=\"https:\u002F\u002Fcrowdin.com\u002Fproject\u002Fproj-airi\" target=\"_blank\" rel=\"nofollow\">\u003Cimg style=\"width: 140px; height: 40px;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_b28934b8187d.png\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_b28934b8187d.png 1x, https:\u002F\u002Fbadges.crowdin.net\u002Fbadge\u002Flight\u002Fcrowdin-on-dark@2x.png 2x\" alt=\"Crowdin | 面向科技公司的敏捷本地化\" width=\"140\" height=\"40\" \u002F>\u003C\u002Fa>\n\n你是否曾梦想过拥有一位网络生命体（虚拟女友、数字宠物）或数字伴侣，能够与你一起玩耍、聊天呢？\n\n借助现代大型语言模型的力量，比如 [ChatGPT](https:\u002F\u002Fchatgpt.com) 和著名的 [Claude](https:\u002F\u002Fclaude.ai)，让虚拟角色与我们进行角色扮演和对话已经变得非常容易。像 [Character.ai (简称 c.ai)](https:\u002F\u002Fcharacter.ai) 和 [JanitorAI](https:\u002F\u002Fjanitorai.com\u002F) 这样的平台，以及本地的开发工具如 [SillyTavern](https:\u002F\u002Fgithub.com\u002FSillyTavern\u002FSillyTavern)，都已经可以提供基于聊天或视觉冒险游戏般的体验。\n\n> 但是，如果她还能玩游戏呢？或者查看你在编写什么代码？一边聊天一边玩游戏、看视频，甚至还能做更多其他事情呢？\n\n也许你已经知道 [Neuro-sama](https:\u002F\u002Fwww.youtube.com\u002F@Neurosama) 了。她目前是最优秀的虚拟主播，既能玩游戏、聊天，又能与你和其他观众互动。有些人也将这类存在称为“数字人”。**遗憾的是，由于她并未开源，她的直播结束后你就无法再与她互动了**。\n\n因此，本项目 AIRI 提供了一种新的可能性：**让你随时随地轻松拥有属于自己的数字生命、网络生活**。\n\n\n\n## 我们的开发日志与近期更新\n\n- [DevLog @ 2026.03.14](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2026.03.14\u002F) 于 2026 年 3 月 14 日\n- [DevLog @ 2026.02.16](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2026.02.16\u002F) 于 2026 年 2 月 16 日\n- [DevLog @ 2026.01.01](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2026.01.01\u002F) 于 2026 年 1 月 1 日\n- [DevLog @ 2025.10.20](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2025.10.20\u002F) 于 2025 年 10 月 20 日\n- [DevLog @ 2025.08.05](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2025.08.05\u002F) 于 2025 年 8 月 5 日\n- [DevLog @ 2025.08.01](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002FDevLog-2025.08.01\u002F) 于 2025 年 8 月 1 日\n- [DreamLog 0x1](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002Fblog\u002Fdreamlog-0x1\u002F) 于 2025 年 6 月 16 日\n- …更多内容请参见 [文档网站](https:\u002F\u002Fairi.moeru.ai\u002Fdocs\u002Fen\u002F)\n\n## 本项目有何特别之处？\n\n与其他基于 AI 的 VTuber 开源项目不同，アイリ 从一开始就得到了多种 Web 技术的支持，例如 [WebGPU](https:\u002F\u002Fwww.w3.org\u002FTR\u002Fwebgpu\u002F)、[WebAudio](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWeb_Audio_API)、[Web Workers](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWeb_Workers_API\u002FUsing_web_workers)、[WebAssembly](https:\u002F\u002Fwebassembly.org\u002F)、[WebSocket](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWebSocket) 等。\n\n> [!TIP]\n> 担心使用 Web 相关技术会导致性能下降吗？\n>\n> 不用担心，虽然 Web 浏览器版本旨在展示我们在浏览器和 WebView 中能够实现的能力上限，但我们绝不会完全依赖它。AIRI 的桌面版默认支持原生的 [NVIDIA CUDA](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-toolkit) 和 [Apple Metal](https:\u002F\u002Fdeveloper.apple.com\u002Fmetal\u002F)（这要感谢 HuggingFace 和备受喜爱的 [candle](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fcandle) 项目），无需复杂的依赖管理。考虑到权衡因素，图形、布局、动画以及面向所有人的 WIP 插件系统部分采用了 Web 技术来实现。\n\n这意味着 **アイリ 能够在现代浏览器和设备上运行**，甚至可以在移动设备上运行（已通过 PWA 支持实现）。这为我们开发者提供了许多可能性，可以将 アイリ VTuber 的能力提升到一个新的水平，同时仍然保留用户启用需要 TCP 连接或其他非 Web 技术的功能的灵活性，比如连接到 Discord 语音频道，或者与朋友一起玩 Minecraft 和 Factorio。\n\n> [!NOTE]\n>\n> 我们目前仍处于开发的早期阶段，正在寻找有才华的开发者加入我们，帮助我们将 アイリ 变成现实。\n>\n> 即使你对 Vue.js、TypeScript 和本项目所需的开发工具不太熟悉，也可以作为艺术家、设计师加入我们，甚至帮助我们启动首次直播。\n>\n> 即使你是 React、Svelte 或 Solid 的忠实粉丝，我们也同样欢迎你。你可以创建一个子目录，添加你希望在 アイリ 中看到的功能，或者进行一些实验。\n>\n> 我们正在寻找以下领域的合作伙伴：\n>\n> - Live2D 建模师\n> - VRM 建模师\n> - VRChat 头像设计师\n> - 计算机视觉\n> - 强化学习\n> - 语音识别\n> - 语音合成\n> - ONNX Runtime\n> - Transformers.js\n> - vLLM\n> - WebGPU\n> - Three.js\n> - WebXR（请参阅我们在 @moeru-ai 组织下的另一个项目 [chat](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fchat)）\n>\n> **如果你感兴趣，为什么不在此介绍一下自己呢？[想加入我们一起打造 AIRI 吗？](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fdiscussions\u002F33)**\n\n## 当前进展\n\n具备能力：\n\n- [x] 大脑\n  - [x] 玩 [Minecraft](https:\u002F\u002Fwww.minecraft.net)\n  - [x] 玩 [Factorio](https:\u002F\u002Fwww.factorio.com)（开发中，但已有 PoC 和演示可用，详见 [GitHub](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi-factorio)）\n  - [x] 玩 [Kerbal Space Program](https:\u002F\u002Fwww.kerbalspaceprogram.com\u002F)（公告待定）\n  - [ ] 联机游玩 [Helldivers 2](https:\u002F\u002Fwww.playstation.com\u002Fen-hk\u002Fgames\u002Fhelldivers-2\u002Fpc\u002F)（开发中）\n  - [x] 在 [Telegram](https:\u002F\u002Ftelegram.org) 中聊天\n  - [x] 在 [Discord](https:\u002F\u002Fdiscord.com) 中聊天\n  - [ ] 记忆\n    - [x] 纯浏览器端数据库支持（DuckDB WASM | `pglite`）\n    - [ ] Memory Alaya（开发中）\n  - [ ] 纯浏览器端本地（WebGPU）推理\n- [x] 耳朵\n  - [x] 浏览器音频输入\n  - [x] 来自 [Discord](https:\u002F\u002Fdiscord.com) 的音频输入\n  - [x] 客户端语音识别\n  - [x] 客户端说话检测\n- [x] 口\n  - [x] 使用 [ElevenLabs](https:\u002F\u002Felevenlabs.io\u002F) 进行语音合成\n- [x] 身体\n  - [x] 支持 VRM 模型\n    - [x] 控制 VRM 模型\n  - [x] VRM 模型动画\n    - [x] 自动眨眼\n    - [x] 自动注视\n    - [x] 静态时眼睛移动\n  - [x] 支持 Live2D 模型\n    - [x] 控制 Live2D 模型\n  - [x] Live2D 模型动画\n    - [x] 自动眨眼\n    - [x] 自动注视\n    - [x] 静态时眼睛移动\n\n## 开发\n\n> 如需本项目的详细开发说明，请参阅 [CONTRIBUTING.md](.\u002F.github\u002FCONTRIBUTING.md)\n\n> [!NOTE]\n> 默认情况下，`pnpm dev` 将启动 Stage Web（浏览器版本）的开发服务器。如果您想尝试开发桌面版本，请务必阅读 [CONTRIBUTING.md](.\u002F.github\u002FCONTRIBUTING.md)，以正确设置开发环境。\n\n```shell\npnpm i\npnpm dev\n```\n\n### Stage Web（浏览器版本，访问地址：[airi.moeru.ai](https:\u002F\u002Fairi.moeru.ai)）\n\n```shell\npnpm dev\n```\n\n### Stage Tamagotchi（桌面版本）\n\n```shell\npnpm dev:tamagotchi\n```\n\n项目包含一个用于 Tamagotchi 的 Nix 包。若要使用 Nix 运行 airi，请先确保启用 flakes，然后运行：\n\n```shell\nnix run github:moeru-ai\u002Fairi\n```\n\n#### NixOS\n\nElectron 需要一些在 NixOS 标准路径中不存在的共享库。请使用 `flake.nix` 中定义的 FHS shell：\n\n```shell\nnix develop .#fhs\npnpm dev:tamagotchi\n```\n\n### Stage Pocket（移动端版本）\n\n启动电容器的开发服务器：\n\n```shell\npnpm dev:pocket:ios --target \u003CDEVICE_ID_OR_SIMULATOR_NAME>\n# 或者\nCAPACITOR_DEVICE_ID_IOS=\u003CDEVICE_ID_OR_SIMULATOR_NAME> pnpm dev:pocket:ios\n```\n\n您可以通过运行 `pnpm exec cap run ios --list` 查看可用设备和模拟器列表。\n\n如果需要在口袋版中以无线模式连接服务器通道，您需要以 root 用户身份启动 tamagotchi：\n\n```shell\nsudo pnpm dev:tamagotchi\n```\n\n然后在 tamagotchi 的“设置\u002F连接”中启用安全 WebSocket。\n\n### 文档站点\n\n```shell\npnpm dev:docs\n```\n\n### 发布\n\n运行 `bumpp` 更新 monorepo 版本：\n\n```shell\nnpx bumpp --no-commit --no-tag\n```\n\n## LLM API 提供商支持（由 [xsai](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fxsai) 提供支持）\n\n- [x] [AIHubMix（推荐）](https:\u002F\u002Faihubmix.com\u002F?aff=OOiX)\n- [x] [OpenRouter](https:\u002F\u002Fopenrouter.ai\u002F)\n- [x] [vLLM](https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm)\n- [x] [SGLang](https:\u002F\u002Fgithub.com\u002Fsgl-project\u002Fsglang)\n- [x] [Ollama](https:\u002F\u002Fgithub.com\u002Follama\u002Follama)\n- [x] [302.AI（赞助）](https:\u002F\u002Fshare.302.ai\u002F514k2v)\n- [x] [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fgpt\u002Fchat-completions-api)\n  - [x] [Azure OpenAI API](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fai-services\u002Fopenai\u002Freference)\n- [x] [Anthropic Claude](https:\u002F\u002Fanthropic.com)\n  - [ ] [AWS Claude](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fapi\u002Fclaude-on-amazon-bedrock)（欢迎提交 PR）\n- [x] [DeepSeek](https:\u002F\u002Fwww.deepseek.com\u002F)\n- [x] [Qwen](https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F2400395.html)\n- [x] [Google Gemini](https:\u002F\u002Fdevelopers.generativeai.google)\n- [x] [xAI](https:\u002F\u002Fx.ai\u002F)\n- [x] [Groq](https:\u002F\u002Fwow.groq.com\u002F)\n- [x] [Mistral](https:\u002F\u002Fmistral.ai\u002F)\n- [x] [Cloudflare Workers AI](https:\u002F\u002Fdevelopers.cloudflare.com\u002Fworkers-ai\u002F)\n- [x] [Together.ai](https:\u002F\u002Fwww.together.ai\u002F)\n- [x] [Fireworks.ai](https:\u002F\u002Fwww.together.ai\u002F)\n- [x] [Novita](https:\u002F\u002Fwww.novita.ai\u002F)\n- [x] [Zhipu](https:\u002F\u002Fbigmodel.cn)\n- [x] [SiliconFlow](https:\u002F\u002Fcloud.siliconflow.cn\u002Fi\u002FrKXmRobW)\n- [x] [Stepfun](https:\u002F\u002Fplatform.stepfun.com\u002F)\n- [x] [Baichuan](https:\u002F\u002Fplatform.baichuan-ai.com)\n- [x] [Minimax](https:\u002F\u002Fapi.minimax.chat\u002F)\n- [x] [Moonshot AI](https:\u002F\u002Fplatform.moonshot.cn\u002F)\n- [x] [ModelScope](https:\u002F\u002Fmodelscope.cn\u002Fdocs\u002Fmodel-service\u002FAPI-Inference\u002Fintro)\n- [x] [Player2](https:\u002F\u002Fplayer2.game\u002F)\n- [x] [腾讯云](https:\u002F\u002Fcloud.tencent.com\u002Fdocument\u002Fproduct\u002F1729)\n- [ ] [Sparks](https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fspark\u002FWeb.html)（欢迎提交 PR）\n- [ ] [火山引擎](https:\u002F\u002Fwww.volcengine.com\u002Fexperience\u002Fark?utm_term=202502dsinvite&ac=DSASUQY5&rc=2QXCA1VI)（欢迎提交 PR）\n\n## 由此项目衍生的子项目\n\n- [Awesome AI VTuber](https:\u002F\u002Fgithub.com\u002Fproj-airi\u002Fawesome-ai-vtuber)：精选的AI虚拟主播及相关项目列表\n- [`unspeech`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Funspeech)：适用于 `\u002Faudio\u002Ftranscriptions` 和 `\u002Faudio\u002Fspeech` 的通用端点代理服务器，类似于 LiteLLM，但可用于任何 ASR 和 TTS 模型。\n- [`hfup`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fhfup)：用于部署和打包到 HuggingFace Spaces 的工具。\n- [`xsai-transformers`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fxsai-transformers)：为 [xsAI](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fxsai) 提供的实验性 [🤗 Transformers.js](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers.js) 提供者。\n- [WebAI: 实时语音聊天](https:\u002F\u002Fgithub.com\u002Fproj-airi\u002Fwebai-realtime-voice-chat)：从头实现 ChatGPT 实时语音功能的完整示例，包含 VAD + STT + LLM + TTS。\n- [`@proj-airi\u002Fdrizzle-duckdb-wasm`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Ftree\u002Fmain\u002Fpackages\u002Fdrizzle-duckdb-wasm\u002FREADME.md)：DuckDB WASM 的 Drizzle ORM 驱动。\n- [`@proj-airi\u002Fduckdb-wasm`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Ftree\u002Fmain\u002Fpackages\u002Fduckdb-wasm\u002FREADME.md)：`@duckdb\u002Fduckdb-wasm` 的易用封装。\n- [AIRI Factorio](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi-factorio)：让 AIRI 能够游玩《异星工厂》。\n- [AIRI DomeKeeper](https:\u002F\u002Fgithub.com\u002Fproj-airi\u002Fgame-playing-ai-dome-keeper)：让 AIRI 能够游玩《穹顶守护者》。\n- [Factorio RCON API](https:\u002F\u002Fgithub.com\u002Fnekomeowww\u002Ffactorio-rcon-api)：Factorio 无头服务器控制台的 RESTful API 封装。\n- [`autorio`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi-factorio\u002Ftree\u002Fmain\u002Fpackages\u002Fautorio)：Factorio 自动化库。\n- [`tstl-plugin-reload-factorio-mod`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi-factorio\u002Ftree\u002Fmain\u002Fpackages\u002Ftstl-plugin-reload-factorio-mod)：在开发 Factorio 模组时实现热重载。\n- [Velin](https:\u002F\u002Fgithub.com\u002Fluoling8192\u002Fvelin)：使用 Vue SFC 和 Markdown 编写易于管理的、带有状态的 LLM 提示词。\n- [`demodel`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fdemodel)：轻松提升从各种推理运行时拉取模型和数据集的速度。\n- [`inventory`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Finventory)：集中式模型目录及默认提供者配置的后端服务。\n- [MCP Launcher](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fmcp-launcher)：适用于所有可能的 MCP 服务器的易用 MCP 构建与启动工具，就像 Ollama 之于模型一样！\n- [🥺 SAD](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fsad)：关于自托管和浏览器运行 LLM 的文档与笔记。\n\n```mermaid\n%%{ init: { 'flowchart': { 'curve': 'catmullRom' } } }%%\n\nflowchart TD\n  Core(\"Core\")\n  Unspeech(\"unspeech\")\n  DBDriver(\"@proj-airi\u002Fdrizzle-duckdb-wasm\")\n  MemoryDriver(\"[WIP] Memory Alaya\")\n  DB1(\"@proj-airi\u002Fduckdb-wasm\")\n  SVRT(\"@proj-airi\u002Fserver-runtime\")\n  Memory(\"Memory\")\n  STT(\"STT\")\n  Stage(\"Stage\")\n  StageUI(\"@proj-airi\u002Fstage-ui\")\n  UI(\"@proj-airi\u002Fui\")\n\n  subgraph AIRI\n    DB1 --> DBDriver --> MemoryDriver --> Memory --> Core\n    UI --> StageUI --> Stage --> Core\n    Core --> STT\n    Core --> SVRT\n  end\n\n  subgraph UI_Components\n    UI --> StageUI\n    UITransitions(\"@proj-airi\u002Fui-transitions\") --> StageUI\n    UILoadingScreens(\"@proj-airi\u002Fui-loading-screens\") --> StageUI\n    FontCJK(\"@proj-airi\u002Ffont-cjkfonts-allseto\") --> StageUI\n    FontXiaolai(\"@proj-airi\u002Ffont-xiaolai\") --> StageUI\n  end\n\n  subgraph Apps\n    Stage --> StageWeb(\"@proj-airi\u002Fstage-web\")\n    Stage --> StageTamagotchi(\"@proj-airi\u002Fstage-tamagotchi\")\n    Core --> RealtimeAudio(\"@proj-airi\u002Frealtime-audio\")\n    Core --> PromptEngineering(\"@proj-airi\u002Fplayground-prompt-engineering\")\n  end\n\n  subgraph Server_Components\n    Core --> ServerSDK(\"@proj-airi\u002Fserver-sdk\")\n    ServerShared(\"@proj-airi\u002Fserver-shared\") --> SVRT\n    ServerShared --> ServerSDK\n  end\n\n  STT -->|Speaking| Unspeech\n  SVRT -->|Playing Factorio| F_AGENT\n  SVRT -->|Playing Minecraft| MC_AGENT\n\n  subgraph Factorio_Agent\n    F_AGENT(\"Factorio Agent\")\n    F_API(\"Factorio RCON API\")\n    factorio-server(\"factorio-server\")\n    F_MOD1(\"autorio\")\n\n    F_AGENT --> F_API -.-> factorio-server\n    F_MOD1 -.-> factorio-server\n  end\n\n  subgraph Minecraft_Agent\n    MC_AGENT(\"Minecraft Agent\")\n    Mineflayer(\"Mineflayer\")\n    minecraft-server(\"minecraft-server\")\n\n    MC_AGENT --> Mineflayer -.-> minecraft-server\n  end\n\n  XSAI(\"xsAI\") --> Core\n  XSAI --> F_AGENT\n  XSAI --> MC_AGENT\n\n  Memory_PGVector(\"@proj-airi\u002Fmemory-pgvector\") --> Memory\n\n  style Core fill:#f9d4d4,stroke:#333,stroke-width:1px\n  style AIRI fill:#fcf7f7,stroke:#333,stroke-width:1px\n  style UI fill:#d4f9d4,stroke:#333,stroke-width:1px\n  style Stage fill:#d4f9d4,stroke:#333,stroke-width:1px\n  style UI_Components fill:#d4f9d4,stroke:#333,stroke-width:1px\n  style Server_Components fill:#d4e6f9,stroke:#333,stroke-width:1px\n  style Apps fill:#d4d4f9,stroke:#333,stroke-width:1px\n  style Factorio_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px\n  style Minecraft_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px\n\n  style DBDriver fill:#f9f9d4,stroke:#333,stroke-width:1px\n  style MemoryDriver fill:#f9f9d4,stroke:#333,stroke-width:1px\n  style DB1 fill:#f9f9d4,stroke:#333,stroke-width:1px\n  style Memory fill:#f9f9d4,stroke:#333,stroke-width:1px\n  style Memory_PGVector fill:#f9f9d4,stroke:#333,stroke-width:1px\n```\n\n## 类似项目\n\n### 开源项目\n\n- [kimjammer\u002FNeuro：对原定于7天内完成的 Neuro-Sama 的复刻。](https:\u002F\u002Fgithub.com\u002Fkimjammer\u002FNeuro)：非常完善的实现。\n- [SugarcaneDefender\u002Fz-waif](https:\u002F\u002Fgithub.com\u002FSugarcaneDefender\u002Fz-waif)：擅长游戏、自主行动及提示工程。\n- [semperai\u002Famica](https:\u002F\u002Fgithub.com\u002Fsemperai\u002Famica\u002F)：擅长 VRM 和 WebXR。\n- [elizaOS\u002Feliza](https:\u002F\u002Fgithub.com\u002FelizaOS\u002Feliza)：提供了如何将智能体集成到各种系统和 API 中的优秀示例与软件工程实践。\n- [ardha27\u002FAI-Waifu-Vtuber](https:\u002F\u002Fgithub.com\u002Fardha27\u002FAI-Waifu-Vtuber)：擅长 Twitch API 集成。\n- [InsanityLabs\u002FAIVTuber](https:\u002F\u002Fgithub.com\u002FInsanityLabs\u002FAIVTuber)：界面与用户体验出色。\n- [IRedDragonICY\u002Fvixevia](https:\u002F\u002Fgithub.com\u002FIRedDragonICY\u002Fvixevia)\n- [t41372\u002FOpen-LLM-VTuber](https:\u002F\u002Fgithub.com\u002Ft41372\u002FOpen-LLM-VTuber)\n- [PeterH0323\u002FStreamer-Sales](https:\u002F\u002Fgithub.com\u002FPeterH0323\u002FStreamer-Sales)\n\n### 非开源项目\n\n- https:\u002F\u002Fclips.twitch.tv\u002FWanderingCaringDeerDxCat-Qt55xtiGDSoNmDDr https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8Giv5mupJNE\n- https:\u002F\u002Fclips.twitch.tv\u002FTriangularAthleticBunnySoonerLater-SXpBk1dFso21VcWD\n- https:\u002F\u002Fwww.youtube.com\u002F@NOWA_Mirai\n\n## 项目状态\n\n![Repobeats 分析图](https:\u002F\u002Frepobeats.axiom.co\u002Fapi\u002Fembed\u002Fa1d6fe2c13ea2bb53a5154435a71e2431f70c2ee.svg 'Repobeats 分析图')\n\n## 致谢\n\n- [Reka UI](https:\u002F\u002Fgithub.com\u002Funovue\u002Freka-ui)：感谢其设计文档站点，新的首页正是基于此构建的，并且实现了大量的 UI 组件。（shadcn-vue 正在将 Reka UI 用作无头组件库，欢迎查看！）\n- [pixiv\u002FChatVRM](https:\u002F\u002Fgithub.com\u002Fpixiv\u002FChatVRM)\n- [josephrocca\u002FChatVRM-js：对 ChatVRM（TypeScript）代码部分进行 JavaScript 转换和适配，以便在 OpenCharacters 等项目中独立使用](https:\u002F\u002Fgithub.com\u002Fjosephrocca\u002FChatVRM-js)\n- UI 和风格的设计灵感来源于 [Cookard](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F2919650\u002FCookard\u002F)、[UNBEATABLE](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F2240620\u002FUNBEATABLE\u002F) 以及 [Sensei! I like you so much!](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F2957700\u002F_\u002F)，同时还参考了 Mercedes Bazan 的作品 [Ayame](https:\u002F\u002Fdribbble.com\u002Fshots\u002F22157656-Ayame) 和 [Wish](https:\u002F\u002Fdribbble.com\u002Fshots\u002F24501019-Wish)。\n- [mallorbc\u002Fwhisper_mic](https:\u002F\u002Fgithub.com\u002Fmallorbc\u002Fwhisper_mic)\n- [`xsai`](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fxsai)：实现了一定数量用于与 LLM 和模型交互的工具包，类似于 [Vercel AI SDK](https:\u002F\u002Fsdk.vercel.ai\u002F)，但体积更小。\n\n## 支持者\n\n\u003Cp align=\"center\">\n  \u003Cstrong>感谢您通过 OpenCollective、Patreon 和 Ko-fi 对 Project AIRI 的支持。\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fdocs\u002Fcontent\u002Fpublic\u002Fassets\u002Fsponsors\u002Fsponsors.svg\" alt=\"Project AIRI 的支持者\" \u002F>\n\u003C\u002Fp>\n\n## 特别致谢\n\n特别感谢所有为 Project AIRI 做出贡献的开发者 ❤️\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_6c410a75baf9.png\" \u002F>\n\u003C\u002Fa>\n\n## 星标历史\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#moeru-ai\u002Fairi&Date\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_25c79cf38b28.png&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_25c79cf38b28.png\" \u002F>\n    \u003Cimg alt=\"星标历史图表\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_readme_25c79cf38b28.png\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>","# AIRI 快速上手指南\n\nAIRI 是一个开源项目，旨在复刻类似 Neuro-sama 的 AI 虚拟角色（数字生命\u002F电子女友），使其能够与你聊天、玩游戏、观看屏幕内容并进行多模态交互。本项目基于 Web 技术构建，支持跨平台运行。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：\n  - Windows 10\u002F11 (x64)\n  - macOS (Apple Silicon ARM64 或 Intel)\n  - Linux (主流发行版)\n- **硬件建议**：\n  - 推荐使用具备 NVIDIA GPU (支持 CUDA) 或 Apple Silicon (支持 Metal) 的设备以获得最佳本地推理性能。\n  - 若仅使用云端 API 或浏览器版本，对本地显卡要求较低。\n- **前置依赖**：\n  - 现代浏览器（Chrome, Edge, Firefox 等，需支持 WebGPU\u002FWebAssembly）\n  - (可选) Node.js 和 npm\u002Fpnpm（若需从源码开发）\n  - (Windows 可选) [Scoop](https:\u002F\u002Fscoop.sh\u002F) 包管理器\n\n## 安装步骤\n\n你可以通过以下三种方式之一开始使用：\n\n### 方式一：下载桌面客户端（推荐）\n\n直接下载对应系统的安装包进行安装，无需配置复杂环境。\n\n- **Windows**: 下载 [.exe 安装程序](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Freleases\u002Fdownload\u002Fv0.9.0-beta.2\u002FAIRI-0.9.0-beta.2-windows-x64-setup.exe)\n- **macOS**: 下载 [.dmg 镜像](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Freleases\u002Fdownload\u002Fv0.9.0-beta.2\u002FAIRI-0.9.0-beta.2-darwin-arm64.dmg)\n- **Linux**: 前往 [Releases 页面](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Freleases\u002Flatest) 下载对应包\n\n> **Windows 用户提示**：如果你已安装 Scoop，可以使用以下命令快速安装：\n> ```powershell\n> scoop bucket add airi https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\n> scoop install airi\u002Fairi\n> ```\n\n### 方式二：在线体验 \u002F 移动端\n\n无需安装，直接通过浏览器或手机访问：\n- **Web 版**: 访问 [airi.moeru.ai](https:\u002F\u002Fairi.moeru.ai)\n- **移动端**: 扫描官网二维码或在手机浏览器中打开上述链接。\n\n### 方式三：从源码运行（开发者）\n\n*注：具体源码构建命令请参考项目完整文档，此处简述流程。*\n\n1. 克隆仓库：\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi.git\n   cd airi\n   ```\n2. 安装依赖并启动（需确保已安装 Node.js 及相关构建工具）：\n   ```bash\n   pnpm install\n   pnpm dev\n   ```\n\n## 基本使用\n\n1. **启动应用**：\n   - 桌面版：运行安装好的 `AIRI` 应用程序。\n   - Web 版：在浏览器打开 [airi.moeru.ai](https:\u002F\u002Fairi.moeru.ai)。\n\n2. **配置模型**：\n   - 首次运行时，进入设置页面。\n   - 选择后端模式：\n     - **本地模式**：如果你的设备支持 CUDA 或 Metal，可选择本地加载模型（自动调用 NVIDIA CUDA 或 Apple Metal 加速）。\n     - **API 模式**：填入你的 LLM API Key（如 OpenAI, Claude 等）以使用云端算力。\n\n3. **开始交互**：\n   - 创建或选择一个角色形象（支持 Live2D）。\n   - 点击麦克风图标开启语音输入，或直接在聊天框输入文字。\n   - AIRI 将不仅能对话，还能感知你的屏幕内容（如代码、游戏画面）并进行互动。\n\n> **注意**：本项目完全开源免费，官方未发行任何加密货币或代币，请注意防范诈骗。","独立游戏开发者小林希望为自己的沙盒游戏直播增添互动性，计划打造一个能实时语音聊天、自动游玩《我的世界》并与观众互动的虚拟主播形象。\n\n### 没有 airi 时\n- **开发门槛极高**：需分别整合语音识别、大语言模型、游戏自动化脚本及虚拟形象渲染，技术栈复杂且难以调试。\n- **互动延迟严重**：自建流程中各模块串联导致响应慢，观众提问后往往需要数秒甚至更久才能得到回应，直播氛围冷场。\n- **缺乏“灵魂”个性**：简单的规则机器人回复生硬，无法像 Neuro-sama 那样具备独特的性格记忆和情感反馈，难以积累粉丝粘性。\n- **隐私与成本担忧**：依赖第三方云端服务不仅每月 API 费用高昂，还担心直播数据和用户隐私泄露。\n\n### 使用 airi 后\n- **一键部署集成**：通过 airi 的容器化方案，小林在本地快速搭建了集语音对话、《我的世界》\u002F《异星工厂》游戏能力于一体的完整环境。\n- **实时流畅交互**：airi 优化的实时语音链路让虚拟角色能几乎无延迟地回应弹幕梗和观众提问，直播间气氛瞬间活跃。\n- **注入角色灵魂**：利用 airi 预设的“灵魂容器”架构，轻松定制出拥有独特口癖和记忆的虚拟伴侣，使其行为更像真实的“赛博生命”。\n- **完全自主可控**：所有数据在本地运行，既节省了云端推理成本，又确保了核心代码与用户数据的绝对隐私安全。\n\nairi 将原本需要数月研发的高阶虚拟主播能力，转化为开发者可即时拥有的本地化创意工具，真正让“赛博生命”走进现实世界。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmoeru-ai_airi_29e076be.png","moeru-ai","Moeru AI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmoeru-ai_79862b7c.png","Does kindness plus sadness equal to zero?",null,"moeru_ai","https:\u002F\u002Fmoeru.ai","https:\u002F\u002Fgithub.com\u002Fmoeru-ai",[84,88,92,96,100,104,108,111,115,118],{"name":85,"color":86,"percentage":87},"TypeScript","#3178c6",62.8,{"name":89,"color":90,"percentage":91},"Vue","#41b883",34.4,{"name":93,"color":94,"percentage":95},"JavaScript","#f1e05a",1.3,{"name":97,"color":98,"percentage":99},"CSS","#663399",0.7,{"name":101,"color":102,"percentage":103},"HTML","#e34c26",0.4,{"name":105,"color":106,"percentage":107},"Swift","#F05138",0.1,{"name":109,"color":110,"percentage":107},"Nix","#7e7eff",{"name":112,"color":113,"percentage":114},"Kotlin","#A97BFF",0,{"name":116,"color":117,"percentage":114},"Dockerfile","#384d54",{"name":119,"color":120,"percentage":114},"Shell","#89e051",37086,3669,"2026-04-05T10:54:25","MIT",1,"Windows, macOS, Linux","桌面版默认支持 NVIDIA CUDA (需 NVIDIA GPU) 和 Apple Metal (需 Apple Silicon 或兼容 AMD GPU)。Web 版需要支持 WebGPU 的浏览器。具体显存大小和 CUDA 版本未在提供的片段中明确说明。","未说明",{"notes":130,"python":131,"dependencies":132},"该项目提供 Windows (.exe)、macOS (.dmg) 和 Linux 的预编译安装包，普通用户可直接下载运行而无需配置开发环境。桌面版利用原生加速 (CUDA\u002FMetal)，而 Web 版基于浏览器技术。项目受 Neuro-sama 启发，旨在创建可玩游戏、聊天和互动的数字生命。可通过 Scoop (Windows) 安装。","未说明 (提供预编译二进制安装包，无需手动配置 Python)",[133,134,135,136,137,138],"candle (HuggingFace)","WebGPU","WebAudio","Web Workers","WebAssembly","WebSocket",[26,55,15],[141,142,143,144,145,146,147,148,149,150],"ai-vtuber","live2d","neuro-sama","neurosama","vrm","vtuber","grok-companion","ai-companion","digital-life","openclaw","2026-03-27T02:49:30.150509","2026-04-06T07:13:50.961600",[154,159,164,169,174,179],{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},17350,"如何在 Linux 上运行 AIRI？支持哪些发行版？","目前可以通过夜间构建版本（nightly build）在 Linux 上运行。你可以访问 GitHub Actions 的发布工作流页面下载：https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Factions\u002Fworkflows\u002Frelease-tamagotchi.yml。注意：在某些配置下（如使用 NVIDIA 显卡或 Wayland 显示服务器），可能会遇到 WebGL 渲染问题导致界面显示为白色，这是因为 Live2D Cubism SDK 官方不支持 Linux 上的 WebKit（Tauri 使用的内核）。建议在 X11 环境下尝试，或等待 Tauri 迁移到其他 WebView 驱动后的修复。","https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F371",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},17351,"为什么在 Linux 上启动应用后屏幕显示为白色或无法渲染模型？","这是一个已知的兼容性问题。主要原因是 Live2D Cubism Web SDK 官方不支持 Linux 上的 Safari\u002FWebKit 环境（Tauri 在 Linux 上默认使用 WebKit2GTK）。此外，该问题在 NVIDIA 显卡和 Wayland 显示协议下尤为明显，而在 Intel 集成显卡上通常表现正常。目前的临时解决方案是：1. 尝试在 X11 环境下运行（而非 Wayland）；2. 等待项目迁移 Tauri 到其他 WebView 驱动后的修复。","https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F263",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},17352,"桌面版应用在保存 AI 模型配置时闪退怎么办？","这是一个已知 Bug，通常发生在选中模型后主窗口执行未兜底的探测逻辑时。如果遇到此问题：1. 请尝试提供错误日志以便开发者定位（在 PowerShell 或终端中查看应用崩溃前的最后输出）；2. 关注后续的版本更新，维护者正在修复此问题。部分用户反馈在加载模型时也会发生闪退，建议暂时避免频繁切换或保存模型配置，直到官方发布修复补丁。","https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1230",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},17353,"应用启动时报错 'Cannot find package @proj-airi\u002Felectron-screen-capture' 如何解决？","这是由于打包过程中缺少特定模块导致的错误。维护者已经发布了修复版本（v0.8.1-beta.12），请在发布后 30 分钟内更新到最新版本即可解决。如果问题仍然存在，请检查是否完整安装了最新版的安装包，并重新安装依赖。","https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F949",{"id":175,"question_zh":176,"answer_zh":177,"source_url":178},17354,"如何为项目设置 Crowdin 翻译集成？需要使用 Bot 账号吗？","Crowdin 为开源项目提供免费许可证，但需要项目负责人的授权。设置集成主要有两种方式：1. 通过 GitHub Actions 自动化流程（适合自定义需求，参考 InvenTree 项目的 workflow 配置）；2. 通过 OAuth 认证，大型项目通常使用专门的 Bot 账号来管理 PR。关于是否需要 Bot 账号，取决于团队规模和管理偏好，小团队可以直接使用成员 OAuth，大团队建议创建专用 Bot 账号以隔离权限。","https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F353",{"id":180,"question_zh":181,"answer_zh":182,"source_url":158},17355,"Linux 下 GPU 渲染时 'Fade on Hover' 效果异常怎么办？","在 Linux 下使用 GPU 渲染时，'Fade on Hover'（悬停淡出）效果可能表现不正常，这与 llvmpipe 的行为不同。该问题在 M1 iGPU 和某些 Linux 配置下也被发现。目前尚无完美的软件层面解决方案，建议：1. 尝试切换渲染后端（如果支持）；2. 暂时接受该视觉差异，等待底层图形库或框架的更新修复。",[184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269,274,279],{"id":185,"version":186,"summary_zh":187,"released_at":188},99628,"dev\u002Fv0.9.0-beta.4-test-ios-release-pipeline","这是一个用于测试的开发版本。","2026-04-04T16:56:56",{"id":190,"version":191,"summary_zh":192,"released_at":193},99629,"v0.9.0-beta.4","## 变更内容\n* 杂项（tauri-*, crates）：现由 @nekomeowww 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1533 中负责在另一个仓库维护 tauri 和 Rust 相关的包。\n* 重构（stage-ui-three）：@Lilia-Chen 改进了轮廓逻辑，相关更改见 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1536。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-beta.2...v0.9.0-beta.4","2026-04-01T11:24:43",{"id":195,"version":196,"summary_zh":197,"released_at":198},99630,"v0.9.0-beta.2","### 🐞 错误修复\n\n- **pipelines-audio**:\n  - 不再并发执行 TTS 操作 - 由 @nekomeowww [\u003Csamp>(4ba49)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F4ba49a243)\n- **stage-tamagotchi**:\n  - 无用的底部边距 - 由 @nekomeowww [\u003Csamp>(ac59f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fac59fb580)\n  - 聊天窗口消息不同步 - 由 @nekomeowww [\u003Csamp>(4ed28)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F4ed2899ad)\n- **stage-ui**:\n  - 保持引导页保存按钮可见 - 由 @Ver-zhzh 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1280 中提出 [\u003Csamp>(66076)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F660765b1a)\n  - 保持引导页保存按钮可见 - 由 @nekomeowww 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1280 中提出 [\u003Csamp>(9dca4)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9dca44283)\n  - 保存按钮始终可见 - 由 @nekomeowww [\u003Csamp>(d391f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fd391fad92)\n- **stage-ui-live2d**:\n  - 类型问题 - 由 @nekomeowww [\u003Csamp>(127ef)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F127efef55)\n\n##### [在 GitHub 上查看更改](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-beta.1...v0.9.0-beta.2","2026-03-31T09:50:02",{"id":200,"version":201,"summary_zh":202,"released_at":203},99631,"v0.9.0-beta.1","## 新贡献者\n* @youetube 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1033 中做出了他们的首次贡献\n\n### 🚀 功能特性\n\n- **stage-ui-live2d**: Exp3 表情系统 + 自动眨眼功能重制 - 由 @youetube 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1033 中完成 [\u003Csamp>(d43d4)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fd43d4dbc5)\n\n### 🐞 错误修复\n\n- **pwa**: 当有新版本可用时显示更新提示 - 由 @JasonOA888 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1517 中完成 [\u003Csamp>(71643)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F716431800)\n- **stage-ui**: 解决 live2d 界面中的模型设置问题 - 由 @nekomeowww 完成 [\u003Csamp>(0cc08)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F0cc08ff97)\n- **stage-ui、stage-tamagotchi**: 恢复国际化支持，并改进设置数据界面 - 由 @nekomeowww 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1525 中完成 [\u003Csamp>(447d7)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F447d71803)\n\n##### [在 GitHub 上查看变更](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.36...v0.9.0-beta.1)","2026-03-31T06:36:47",{"id":205,"version":206,"summary_zh":207,"released_at":208},99632,"v0.9.0-alpha.36","## 新贡献者\n* @cheesemori 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F851 中完成了首次贡献\n* @you06 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1513 中完成了首次贡献\n\n### 🚀 功能特性\n\n- **stage-tamagotchi**: 锁屏与解锁屏 API - 由 @nekomeowww 提供 [\u003Csamp>(58401)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F58401c8b6)\n- **stage-tamagotchi,stage-web**: 添加聊天区域发送键选项 - 由 @cheesemori 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F851 中实现 [\u003Csamp>(edeca)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fedecae362)\n- **stage-ui**: 聊天操作菜单 - 由 @nekomeowww 提供 [\u003Csamp>(f0c8e)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff0c8ed996)\n- **ui,stage-ui,stage-pages,i18n**: 转录置信度过滤器 - 由 @Reisenbug 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1148 中实现 [\u003Csamp>(7ad4d)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F7ad4debe1)\n\n### 🐞 问题修复\n\n- **i18n**:\n  - 修正日语本地化中的 xsai-transformers URL 拼写错误 - 由 @you06 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1513 中完成 [\u003Csamp>(8946a)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F8946abdfa)\n- **server**:\n  - 禁用缓存 - 由 @luoling8192 提供 [\u003Csamp>(33bf6)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F33bf61f3f)\n- **server-***:\n  - 添加简单消息队列，以帮助选择消费者 - 由 @nekomeowww 提供 [\u003Csamp>(a9c28)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fa9c281c9f)\n- **server-runtime**:\n  - 保留显式空路由目标 - 由 @Gujiassh 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1521 中完成 [\u003Csamp>(2caae)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F2caae8ee4)\n- **stage-***:\n  - 移除未使用的 JSON 格式及平台检测 - 由 @LemonNekoGH 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1523 中完成 [\u003Csamp>(38f03)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F38f030610)\n  - 不应等待上下文桥接 - 由 @nekomeowww 提供 [\u003Csamp>(5f07b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5f07b6887)\n- **stage-layouts**:\n  - 在输入解析完成前清空语音自动发送输入框 - 由 @lulu0119 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1510 中完成 [\u003Csamp>(5a11f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5a11ff7b2)\n- **stage-pages**:\n  - 重复的设置页头 - 由 @nekomeowww 提供 [\u003Csamp>(44ec5)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F44ec5e416)\n\n##### [在 GitHub 上查看变更](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.34...v0.9.0-alpha.36)","2026-03-30T14:51:01",{"id":210,"version":211,"summary_zh":212,"released_at":213},99633,"v0.9.0-alpha.34","## 新贡献者\n* @jensenhuangfan 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1506 中做出了首次贡献\n\n### 🐞 错误修复\n\n- **electron-vueuse**: 从 index 导出中错误导出了 electron 和 vue 的混合依赖 - 由 @nekomeowww 完成 [\u003Csamp>(8567b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F8567b702)\n- **stage-tamagotchi**: AutoUpdater 应该选择频道 - 由 @jensenhuangfan 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1506 中完成 [\u003Csamp>(ee538)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fee538769)\n\n##### [在 GitHub 上查看更改](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.32...v0.9.0-alpha.34)\n","2026-03-29T07:30:47",{"id":215,"version":216,"summary_zh":217,"released_at":218},99634,"v0.9.0-alpha.32","### 🚀 功能特性\n\n- **auth**: Bearer 令牌处理及 OAuth 令牌提取 - 由 @luoling8192 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1501 中实现 [\u003Csamp>(bdb01)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fbdb01d30)\n\n### 🐞 Bug 修复\n\n- **server-***:\n  - 应导出更多类型，并且对于 module:announced 模块应忽略自身 - 由 @nekomeowww [\u003Csamp>(6f8f0)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F6f8f049b)\n- **server-runtime**:\n  - 导入 Buffer - 由 @shinohara-rin [\u003Csamp>(d5be1)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fd5be1a07)\n- **server\u002Fauth**:\n  - 跳过 state_mismatch 检查 - 由 @luoling8192 [\u003Csamp>(bb0c9)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fbb0c93ed)\n- **stage-tamagotchi**:\n  - 在防抖回调钩子中保护渲染器的访问权限 - 由 @nekomeowww [\u003Csamp>(1353a)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F1353a2c6)\n  - 为节拍同步设置添加持久化功能 - 由 @LemonNekoGH [\u003Csamp>(e2b00)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fe2b00e7d)\n- **stage-ui**:\n  - 在 mcp_list_tools 错误回退时返回空字符串而非空数组 - 由 @lietblue 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1497 中修复 [\u003Csamp>(82389)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F82389556)\n  - 缺少阿里云 NLS 结果变更事件 - 由 @nekomeowww [\u003Csamp>(428e1)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F428e1641)\n  - 应用了错误的消息会话 - 由 @nekomeowww [\u003Csamp>(bf882)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fbf8823bc)\n  - 应用 FieldCombobox 布局样式 - 由 @nekomeowww [\u003Csamp>(3007b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F3007b265)\n  - 文本变更、国际化变更 - 由 @nekomeowww [\u003Csamp>(306f8)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F306f8e66)\n- **ui**:\n  - 缺少禁用状态样式 - 由 @nekomeowww [\u003Csamp>(f1ff9)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff1ff9561)\n  - FieldCombobox 布局样式不正确 - 由 @nekomeowww [\u003Csamp>(f387e)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff387e18f)\n\n##### [在 GitHub 上查看更改](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.31...v0.9.0-alpha.32)","2026-03-28T20:02:19",{"id":220,"version":221,"summary_zh":222,"released_at":223},99635,"v0.9.0-alpha.31","## 新贡献者\n* @xuan0x0 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1494 中完成了首次贡献\n\n### 🚀 功能特性\n\n- **server**:\n  - Stripe 集成与积分系统 - 由 @luoling8192 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1024 中实现 [\u003Csamp>(fc517)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ffc517382)\n  - Redis、配置 KV 集成 - 由 @luoling8192 [\u003Csamp>(889a1)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F889a1e08)\n  - Stripe 服务，更多 Stripe 表 - 由 @luoling8192 [\u003Csamp>(4e510)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F4e510bf5)\n  - 增强配置校验器，添加自定义错误信息，并支持 FLUX_PACKAGES 处理 - 由 @luoling8192 [\u003Csamp>(a6444)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fa64446fb)\n  - 添加 OpenTelemetry 可观测性栈 - 由 @luoling8192 和 **Claude** 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1154 中实现 [\u003Csamp>(96330)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F96330694)\n  - 官方提供商路由 - 由 @luoling8192 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1117 中实现 [\u003Csamp>(0f9ea)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F0f9ea751)\n  - Flux 审计 - 由 @luoling8192 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1482 中实现 [\u003Csamp>(9b8d1)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9b8d1f6a)\n  - 消息队列 - 由 @luoling8192 [\u003Csamp>(ef187)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fef187727)\n  - 启用 TTS、ASR 基础功能 - 由 @luoling8192 [\u003Csamp>(b78a8)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fb78a8477)\n  - 启动时出错重试 - 由 @luoling8192 [\u003Csamp>(563d5)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F563d50fb)\n  - 重新实现消息队列，移除待发队列 - 由 @luoling8192 [\u003Csamp>(eab60)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Feab60d0b)\n  - 用于消息处理的聊天广播工具 - 由 @luoling8192 [\u003Csamp>(a515d)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fa515d200)\n  - 重构 Flux 审计为事务日志记录 - 由 @luoling8192 [\u003Csamp>(2f730)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F2f730ef9)\n- **server-protocol**:\n  - 引入 AIRI 服务器客户端和前端共享的协议类型 - 由 @luoling8192 [\u003Csamp>(ba3d6)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fba3d66de)\n- **server\u002Fotel**:\n  - 集成 OpenTelemetry 日志记录，并带上下文输出日志 - 由 @luoling8192 [\u003Csamp>(45bc5)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F45bc5fef)\n  - 按分片方式跟踪 OpenTelemetry 指标 - 由 @luoling8192 [\u003Csamp>(4a856)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F4a85654d)\n- **server\u002Fstripe**:\n  - 更新 Flux 包处理及元数据集成 - 由 @luoling8192 [\u003Csamp>(04c8f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F04c8f499)\n\n### 🐞 错误修复\n\n- 回滚 Electron 版本 - 由 @Misaka-0x447f 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1490 中完成 [\u003Csamp>(f92b0)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff92b07de)\n- **auth)**：澄清返回类型，避免在 createAuth 函数中出现 TS2742 错误；测试修复：强制转换响应","2026-03-28T04:59:34",{"id":225,"version":226,"summary_zh":227,"released_at":228},99636,"v0.9.0-alpha.28","## 新贡献者\n* @areong 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1483 中做出了首次贡献\n\n### 🐞 错误修复\n\n- **docs**: 修复指向其他文档页面的链接 - 由 @areong 在 https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1483 中完成 [\u003Csamp>(79b95)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F79b95233)\n- **stage-layouts, stage-tamagotchi**: 解决聊天消息状态过时及聊天存储竞争写入冲突问题 - 由 @nekomeowww [\u003Csamp>(9d983)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9d983bb2)\n- **stage-tamagotchi**: 修复 tamagotchi（桌面版）听力模块的状态管理错误 - 由 @nekomeowww [\u003Csamp>(2a9ae)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F2a9ae942)\n\n##### [在 GitHub 上查看更改](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.24...v0.9.0-alpha.28)","2026-03-27T10:05:08",{"id":230,"version":231,"summary_zh":232,"released_at":233},99637,"v0.9.0-alpha.24","*无重大变更*\n\n##### [在 GitHub 上查看更改](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.23...v0.9.0-alpha.24)\n","2026-03-26T19:49:55",{"id":235,"version":236,"summary_zh":237,"released_at":238},99638,"v0.9.0-alpha.23","## New Contributors\r\n* @howtomakeaname made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1437\r\n* @breezy89757 made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1057\r\n\r\n### 🚀 Features\r\n\r\n- **stage-ui**:\r\n  - Add Z.ai provider - by @AdairLi2504 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1409 [\u003Csamp>(002c3)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F002c35e1)\r\n  - Added Azure OpenAI provider - by @breezy89757 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1057 [\u003Csamp>(f4d5d)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff4d5d3de)\r\n- **ui**:\r\n  - Now dedicated Select component - by @nekomeowww [\u003Csamp>(f5dac)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff5dac392)\r\n\r\n### 🐞 Bug Fixes\r\n\r\n- **stage-***:\r\n  - Incorrect use of useAudioDevices hook - by @nekomeowww [\u003Csamp>(46147)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F46147b0f)\r\n- **stage-ui**:\r\n  - Bind cursor floating css vars - by @Gujiassh in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1472 [\u003Csamp>(eef0a)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Feef0a385)\r\n  - Use normalized audio spectrum values - by @Gujiassh in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1474 [\u003Csamp>(1be76)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F1be7639b)\r\n  - Allow custom model input when model list is empty - by @howtomakeaname in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1437 [\u003Csamp>(7c04f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F7c04f9a8)\r\n  - Should correctly handle aliyun nls error - by @nekomeowww [\u003Csamp>(59997)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5999744d)\r\n  - Audio wasn't even starting and will not when resources prepared - by @nekomeowww [\u003Csamp>(9b709)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9b70949a)\r\n  - Incorrect size and style of Profile Selector - by @nekomeowww [\u003Csamp>(aa883)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Faa8834db)\r\n- **stage-ui-three**:\r\n  - Cutout bug fix - by @Lilia-Chen in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1471 [\u003Csamp>(088ce)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F088ce34a)\r\n  - Call nodeConstraintManager.update() in render loop - by @sumimakito [\u003Csamp>(279b4)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F279b4db1)\r\n  - Test type missing nodeConstraintMs - by @nekomeowww [\u003Csamp>(f622e)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff622e803)\r\n  - Removed duplicated IBL inject - by @Lilia-Chen [\u003Csamp>(10376)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F1037614a)\r\n- **ui**:\r\n  - Outdated import path - by @nekomeowww [\u003Csamp>(6d871)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F6d871146)\r\n\r\n### 🏎 Performance\r\n\r\n- **stage-ui**: Improve about dialog to be blurry - by @nekomeowww [\u003Csamp>(5b78f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5b78f348)\r\n- **ui**: Improve the props and customization of Select component - by @nekomeowww [\u003Csamp>(7d0e0)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F7d0e02f5)\r\n\r\n##### [View changes on GitHub](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.22...v0.9.0-alpha.23)","2026-03-26T15:41:23",{"id":240,"version":241,"summary_zh":242,"released_at":243},99639,"v0.9.0-alpha.22","## New Contributors\r\n* @PurCHES5 made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1457\r\n* @spidershield-contrib made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1445\r\n* @lulu0119 made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1466\r\n\r\n### 🚀 Features\r\n\r\n- **cap-vite**:\r\n  - Use platform-specific device id - by @LemonNekoGH in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1458 [\u003Csamp>(5ba6f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5ba6f4cb)\r\n- **docs**:\r\n  - Added new DevLog 2026-03-23 - by @PurCHES5 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1457 [\u003Csamp>(faeb2)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ffaeb250f)\r\n- **plugin-sdk**:\r\n  - Much better refactor, and new permission model - by @nekomeowww in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1423 [\u003Csamp>(a2e13)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fa2e134d4)\r\n- **stage-***:\r\n  - Refactor settings data page and add app data folder action - by @Garfield550 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1447 [\u003Csamp>(4a295)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F4a295980)\r\n- **stage-layouts**:\r\n  - Hide header in desktop - by @lietblue in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1462 [\u003Csamp>(fe40a)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ffe40ac72)\r\n- **stage-pages**:\r\n  - Reorder sections and add danger zone red background - by @Garfield550 [\u003Csamp>(e64c2)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fe64c2cc5)\r\n- **stage-tamagotchi**:\r\n  - Added fundamental vision - by @nekomeowww [\u003Csamp>(2dd2a)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F2dd2a149)\r\n- **stage-ui**:\r\n  - Include OpenRouter attribution headers - by @monolithic827 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1436 [\u003Csamp>(6e056)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F6e056ecd)\r\n  - Added language selector for onboarding screen - by @nekomeowww [\u003Csamp>(440bf)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F440bff85)\r\n\r\n### 🐞 Bug Fixes\r\n\r\n- Many type errors - by @nekomeowww [\u003Csamp>(1bd34)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F1bd34722)\r\n- **bucket**:\r\n  - Update Scoop manifest to v0.9.0-alpha.18 - by @mvanhorn in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1430 [\u003Csamp>(9fadc)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9fadca2c)\r\n- **ci**:\r\n  - Re-calculate Windows artifact hash - by @nekomeowww [\u003Csamp>(b2d06)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fb2d0643d)\r\n  - Re-calculate Windows artifact hash - by @nekomeowww [\u003Csamp>(0cd68)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F0cd68568)\r\n- **docs**:\r\n  - Try Live leads to 404 in VitePress SPA router - by @Garfield550 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1461 [\u003Csamp>(95380)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9538068d)\r\n- **nix\u002Fcommon**:\r\n  - Ignore editor config - by @kwaa in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1459 [\u003Csamp>(3156b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F3156b82a)\r\n- **server-runtime**:\r\n  - Use constant-time comparison for auth token - by @spidershield-contrib in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1445 [\u003Csamp>(15c8b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F15c8b690)\r\n- **stage-layouts**:\r\n  - Discover tools compatibility on web chat mount - by @lulu0119 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1466 [\u003Csamp>(ea10e)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fea10e2c3)\r\n- **stage-pages**:\r\n  - Fix navigation for context-observer - by @sumimakito [\u003Csamp>(2a08c)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F2a08c5b5)\r\n- **stage-tamagotchi**:\r\n  - Persist vision model settings - by @sumimakito [\u003Csamp>(f4a93)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff4a93206)\r\n  - Vision model switch - by @nekomeowww [\u003Csamp>(89237)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F89237cf0)\r\n- **stage-ui**:\r\n  - Should handle error rejected from xsAI stream - by @nekomeowww [\u003Csamp>(dc515)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fdc515af0)\r\n  - Cannot send message - by @nekomeowww [\u003Csamp>(b3993)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fb3993086)\r\n  - Improve profile switcher popover UI - by @lietblue in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1425 [\u003Csamp>(96dba)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F96dbae7a)\r\n  - Tools not available when using remote API - by @BeanDz in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1468 [\u003Csamp>(74fd0)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F74fd0e17)\r\n- **stage-ui,stage-pages**:\r\n  - Many type errors - by @nekomeowww [\u003Csamp>(aad3b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Faad3b327)\r\n- **stage-ui-live2d**:\r\n  - Type error - by @nekomeowww [\u003Csamp>(c1600)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fc160010f)\r\n- **stage-ui-three**:\r\n  - Type error - by @nekomeowww [\u003Csamp>(0ace1)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F0ace1fb2)\r\n- **ui**:\r\n  - Incorrect layout impl for FieldSelect - by @nekomeowww [\u003Csamp>(b5bdc)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fb5bdcad7)\r\n\r\n##### [View changes on GitHub](ht","2026-03-24T17:20:18",{"id":245,"version":246,"summary_zh":247,"released_at":248},99640,"v0.9.0-alpha.18","## New Contributors\r\n* @mvanhorn made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1392\r\n* @jim139129 made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1412\r\n* @octo-patch made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1417\r\n* @monolithic827 made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1302\r\n\r\n### 🚀 Features\r\n\r\n- Upgrade MiniMax default model to M2.7 - by @octo-patch in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1417 [\u003Csamp>(8b91d)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F8b91d441)\r\n- **cap-vite**:\r\n  - Press `R` to re-run capacitor cli - by @LemonNekoGH [\u003Csamp>(071e0)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F071e095e)\r\n- **docs**:\r\n  - Add a simple web version guide - by @jim139129 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1420 [\u003Csamp>(43abf)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F43abf7e1)\r\n  - Sync download buttons and added SponsorKit - by @Neko-233 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1407 [\u003Csamp>(21dfb)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F21dfb21a)\r\n- **stage-pages,stage-ui,i18n**:\r\n  - Disable auto trigger for chatcompletion check and use explict button - by @shinohara-rin and @nekomeowww in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1336 [\u003Csamp>(623f3)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F623f35a7)\r\n  - Add OpenRouter as a speech (TTS) provider - by @monolithic827 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1302 [\u003Csamp>(30354)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F30354e9c)\r\n- **stage-pocket**:\r\n  - Add Android target - by @lietblue and @LemonNekoGH in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1326 [\u003Csamp>(f92db)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff92db7a7)\r\n\r\n### 🐞 Bug Fixes\r\n\r\n- **cap-vite**:\r\n  - Don't auto restart when generated files update - by @LemonNekoGH [\u003Csamp>(3c03a)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F3c03a45b)\r\n- **ci**:\r\n  - Ignore generated `Package.swift` - by @LemonNekoGH [\u003Csamp>(d11ed)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fd11ede51)\r\n- **docs**:\r\n  - Fix typo in landing page - by @qyl27 and @Garfield550 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1399 [\u003Csamp>(a5690)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fa5690614)\r\n  - Incorrect button link - by @qyl27 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1411 [\u003Csamp>(5a574)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5a574e18)\r\n- **eslint**:\r\n  - Skip the symbolic link CLAUDE.md - by @sumimakito [\u003Csamp>(c4646)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fc4646767)\r\n- **llm**:\r\n  - Flatten content array for OpenAI-compatible providers - by @Reisenbug in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1222 [\u003Csamp>(00890)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F0089040f)\r\n- **pnpm**:\r\n  - Skip bundled postinstall script in simple-git-hooks - by @sumimakito [\u003Csamp>(5f137)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5f137af6)\r\n  - Missing peerDeps for unplugin-vue-i18n - by @sumimakito [\u003Csamp>(338df)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F338df9b8)\r\n  - Add missing peerDeps for eslint - by @sumimakito [\u003Csamp>(00666)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F00666ddd)\r\n  - Add missing peerDeps for @huggingface\u002Ftransformers - by @sumimakito [\u003Csamp>(73d93)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F73d93f77)\r\n  - Add missing peerDeps for stage-ui dependencies - by @sumimakito [\u003Csamp>(4671c)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F4671ceaa)\r\n  - Add missing peerDep three for @pmndrs\u002Fpointer-events - by @sumimakito [\u003Csamp>(e73cd)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fe73cdb0a)\r\n- **stage-pages**:\r\n  - Use placeholderLocalized from provider config for API key input - by @mvanhorn and **Matt Van Horn** in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1391 [\u003Csamp>(09f24)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F09f2470c)\r\n  - Prevent airi card dialogs from closing on outside click - by @Reisenbug in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1419 [\u003Csamp>(848df)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F848df09a)\r\n- **stage-pocket**:\r\n  - Fix template-compiler-options import and vite file serving allow list - by @sumimakito [\u003Csamp>(7e4ea)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F7e4ea16a)\r\n- **stage-tamagotchi**:\r\n  - Import template-compiler-options from tresjs instead - by @sumimakito [\u003Csamp>(a6b4f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fa6b4fdce)\r\n  - Mute the \"request id is outside of Vite serving allow list\" error - by @sumimakito [\u003Csamp>(40434)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F40434592)\r\n  - Harden caption overlay follow+mouse handling - by @Iro96 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1402 [\u003Csamp>(eb537)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Feb53744c)\r\n  - Do not pause Live2D on visibility change (desktop switch) - by @Iro96 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1410 [\u003Csamp>(ea599)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fea599e85)\r\n- **stage-ui**:\r\n  - U","2026-03-19T14:10:33",{"id":250,"version":251,"summary_zh":252,"released_at":253},99641,"v0.9.0-alpha.16","## New Contributors\r\n* @stablegenius49 made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1316\r\n* @Oldcircle made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1333\r\n* @Reisenbug made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1341\r\n\r\n### 🚀 Features\r\n\r\n- **stage-pocket**:\r\n  - Request permissions onboarding - by @LemonNekoGH in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1292 [\u003Csamp>(58955)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F589553c0e)\r\n- **stage-tamagotchi**:\r\n  - Show connection status - by @LemonNekoGH in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1311 [\u003Csamp>(a80f0)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fa80f03894)\r\n  - Add profile switcher to controls island and web header - by @lietblue in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1328 [\u003Csamp>(5d8a0)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5d8a0c88f)\r\n- **stage-ui**:\r\n  - Optimize card many select component layout styles - by @horizonzzzz in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1096 [\u003Csamp>(d9582)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fd9582d52f)\r\n\r\n### 🐞 Bug Fixes\r\n\r\n- **minecraft**:\r\n  - Xss mitigation for minecraft debug dashboard - by @shinohara-rin in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1344 [\u003Csamp>(e83c1)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fe83c17fe5)\r\n- **plugin-sdk**:\r\n  - Trim negotiated compatibility versions - by @Gujiassh in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1305 [\u003Csamp>(38b80)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F38b8058ee)\r\n  - Preserve absolute plugin entrypoints - by @Gujiassh in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1323 [\u003Csamp>(aac7a)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Faac7a3159)\r\n- **server-runtime**:\r\n  - Shutdown server on interruption properly - by @shinohara-rin in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1356 [\u003Csamp>(1a1f7)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F1a1f720c9)\r\n  - Preserve explicit empty route destinations - by @Gujiassh in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1324 [\u003Csamp>(c276b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fc276bcc24)\r\n- **speech**:\r\n  - Prevent speech provider config reset on startup by removing premature immediate watcher - by @lietblue in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1340 [\u003Csamp>(a1a94)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fa1a94371f)\r\n- **stage-tamagotchi**:\r\n  - Handle app exit correctly - by @sumimakito in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1319 [\u003Csamp>(28db2)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F28db2f6e2)\r\n  - Let tray menu close caption overlay - by @stablegenius49 and **stablegenius49** in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1316 [\u003Csamp>(0d1dc)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F0d1dc34bd)\r\n  - Make handleAppExit more robust - by @sumimakito in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1321 [\u003Csamp>(4c7bd)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F4c7bd5522)\r\n  - Move wss setting to connection page - by @LemonNekoGH [\u003Csamp>(0ed21)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F0ed21860a)\r\n  - Fix model flickering and jumping on window resize - by @Reisenbug in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1341 [\u003Csamp>(3a8dc)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F3a8dc7523)\r\n  - Quit app on Live2D close button to cleanup background processes - by @Reisenbug in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1361 [\u003Csamp>(53d1e)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F53d1e2517)\r\n  - Fix model flickering and jumping on window res…\" - by @nekomeowww in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1364 [\u003Csamp>(32ea8)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F32ea8d0e0)\r\n- **stage-ui**:\r\n  - Skip optimistic updates before apply - by @Gujiassh and **Sisyphus** in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1304 [\u003Csamp>(41ce2)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F41ce282e9)\r\n  - Flip canvas pixel reads on Y axis - by @Gujiassh in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1309 [\u003Csamp>(c897a)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fc897aade2)\r\n  - Use stable chat history keys in the stage UI - by @stablegenius49 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1312 [\u003Csamp>(3aa47)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F3aa47ff43)\r\n  - Fix hash scroll on SPA navigation to providers page - by @shinohara-rin in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1347 [\u003Csamp>(621d1)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F621d16c8b)\r\n  - Keep nested reasoning out of speech - by @Gujiassh in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1322 [\u003Csamp>(c702c)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fc702c1f8e)\r\n- **telegram-bot**:\r\n  - Fix velin rendering, action loop, and LLM compatibility - by @Oldcircle in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1333 [\u003Csamp>(f654d)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff654d175f)\r\n\r\n##### [View changes on GitHub](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.14...v0.9.0-alpha.16)","2026-03-14T20:08:54",{"id":255,"version":256,"summary_zh":257,"released_at":258},99642,"v0.9.0-alpha.14","### 🐞 Bug Fixes\r\n\r\n- **stage-tamagotchi**:\r\n  - Provide the missing core components to createCoreContext - by @sumimakito in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1288 [\u003Csamp>(28109)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F28109a8f0)\r\n  - Move @intlify\u002Fcore from devDeps to deps - by @sumimakito in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1291 [\u003Csamp>(b1b7d)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fb1b7dadfe)\r\n- **stage-ui**:\r\n  - Deduplicate provider models by id - by @lietblue in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1282 [\u003Csamp>(78334)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F783342c94)\r\n\r\n##### [View changes on GitHub](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.13...v0.9.0-alpha.14)","2026-03-11T17:51:23",{"id":260,"version":261,"summary_zh":262,"released_at":263},99643,"v0.9.0-alpha.13","## New Contributors\r\n* @hobostay made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1261\r\n\r\n## 🐞 Bug Fixes\r\n\r\n- **services**: Resolve lint issues - by @hobostay and **Claude Opus 4.6** in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1261 [\u003Csamp>(5157b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5157b9c44)\r\n- **stage-tamagotchi**: Dependency missing for h3 - by @nekomeowww in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1265 [\u003Csamp>(857c3)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F857c35f99)\r\n- **stage-ui**: Remove SSML support for Volcengine speech provider - by @pratyush618 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1232 [\u003Csamp>(9e24b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9e24b9b25)\r\n\r\n##### [View changes on GitHub](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.12...v0.9.0-alpha.13)","2026-03-11T11:43:48",{"id":265,"version":266,"summary_zh":267,"released_at":268},99644,"v0.9.0-alpha.12","## New Contributors\r\n* @fordelkon made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1231\r\n\r\n### ⚠️ Critical Bug Fixes\r\n\r\n- **stage-tamagotchi**:\r\n  - Crash on onboarding save by bump electron to v40.8.0, bring back auto-popup - by @sumimakito in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1246 [\u003Csamp>(68bf3)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F68bf3c0d1)\r\n\r\n### 🚀 Features\r\n\r\n- **nix**:\r\n  - Add FHS devShell for running Electron on NixOS - by @lietblue in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1245 [\u003Csamp>(2b9f5)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F2b9f5092d)\r\n- **stage-tamagotchi**:\r\n  - Add top drag area to move window - by @fordelkon in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1231 [\u003Csamp>(d1189)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fd118980fa)\r\n  - Add electron main process file logger hook - by @Garfield550, **Copilot** and **RainbowBird** in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1247 [\u003Csamp>(92e75)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F92e75d86f)\r\n  - Add top drag area to move window \" - by @nekomeowww in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1231 [\u003Csamp>(80b0e)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F80b0e6c67)\r\n\r\n### 🐞 Bug Fixes\r\n\r\n- **pixi-live2d-display**:\r\n  - Should ignore `items_pinned_to_model.json` file - by @nekomeowww [\u003Csamp>(f42c5)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff42c56e76)\r\n- **stage-tamagotchi**:\r\n  - Ensure config directory exists - by @nekomeowww [\u003Csamp>(9cee6)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9cee673a9)\r\n  - Prompt onboarding for stage window only - by @nekomeowww [\u003Csamp>(9c88f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9c88f83e2)\r\n  - Should handle EADDRINUSE, bug of srvx, robust for server channel restart, injeca fix - by @nekomeowww [\u003Csamp>(a2da0)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fa2da08f2c)\r\n  - Forgot to export ServerChannel - by @nekomeowww [\u003Csamp>(0f8ad)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F0f8ad5990)\r\n  - Incorrect property - by @nekomeowww [\u003Csamp>(5e075)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5e075d620)\r\n- **stage-ui**:\r\n  - Use lightweight fetch for connectivity check - by @Minnzen in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1238 [\u003Csamp>(eab0f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Feab0fbd83)\r\n\r\n##### [View changes on GitHub](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.7...v0.9.0-alpha.12)","2026-03-10T20:37:53",{"id":270,"version":271,"summary_zh":272,"released_at":273},99645,"v0.9.0-alpha.7","## New Contributors\r\n* @pratyush618 made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1156\r\n* @freezinlove made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1243\r\n\r\n### 🐞 Bug Fixes\r\n\r\n- **server-runtime,server-sdk**:\r\n  - Accept plain JSON from external WebSocket clients - by @pratyush618 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1234 [\u003Csamp>(ada6e)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fada6e778)\r\n- **stage-tamagotchi**:\r\n  - Disable hoverable content of control button - by @LemonNekoGH, **雨落** and **Garfield Lee** in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1240 [\u003Csamp>(396dd)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F396dd961)\r\n  - Double close caused crash, simplified onboarding, added `safeClose` - by @freezinlove in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1243 [\u003Csamp>(5415b)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5415b285)\r\n- **stage-ui-live2d**:\r\n  - Require `.model.json` or `.model3.json` for Live2D files - by @pratyush618 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1156 [\u003Csamp>(68a7e)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F68a7ed0d)\r\n- **stage-ui-live2d,stage-tamagotchi**:\r\n  - Use temp file to prevent config loss and handle more Live2D model load failures - by @pratyush618 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1233 [\u003Csamp>(2b5ce)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F2b5cebed)\r\n\r\n##### [View changes on GitHub](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.6...v0.9.0-alpha.7)","2026-03-10T09:57:45",{"id":275,"version":276,"summary_zh":277,"released_at":278},99646,"v0.9.0-alpha.6","## New Contributors\r\n* @NJX-njx made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1150\r\n* @Gujiassh made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1162\r\n* @04cb made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1182\r\n* @dongguacute made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1169\r\n* @SakataRyuichi made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1187\r\n* @JasonOA888 made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1203\r\n* @Ver-zhzh made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1196\r\n* @Minnzen made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1214\r\n* @kbhujbal made their first contribution in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1213\r\n\r\n### 🚀 Features\r\n\r\n- **minecraft**:\r\n  - Disable debug servers by default - by @shinohara-rin in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1193 [\u003Csamp>(7b11d)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F7b11d1e0)\r\n- **server**:\r\n  - Add OpenTelemetry observability stack - by @luoling8192 [\u003Csamp>(284b1)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F284b1000)\r\n- **stage-pages**:\r\n  - Add manual model input fallback when model list fails to load - by @NJX-njx in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1145 [\u003Csamp>(9f347)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F9f347a5d)\r\n  - Add model selection navigation after provider validation - by @Minnzen in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1214 [\u003Csamp>(d6268)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fd6268298)\r\n- **stage-pocket**:\r\n  - Introducing a new package for better DX - by @LemonNekoGH [\u003Csamp>(25e66)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F25e66f66)\r\n- **stage-ui**:\r\n  - Add Ollama thinking mode config and provider-side think mapping - by @Garfield550 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1140 [\u003Csamp>(86c0d)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F86c0d9d2)\r\n  - Periodically check Ollama connectivity - by @nekomeowww [\u003Csamp>(3f12d)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F3f12d714)\r\n  - Add nvidia nim provider - by @Ver-zhzh in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1196 [\u003Csamp>(861be)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F861beaca)\r\n- **stage-ui-three**:\r\n  - Add anti-aliasing support for 3D models - by @NJX-njx in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1150 [\u003Csamp>(5d571)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5d571c51)\r\n- **tamagotchi**:\r\n  - Add \"Pin on top\" toggle to controls island - by @lietblue in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1183 [\u003Csamp>(60434)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F604341a1)\r\n\r\n### 🐞 Bug Fixes\r\n\r\n- **cap-vite**:\r\n  - No need to run cap sync manually - by @LemonNekoGH [\u003Csamp>(fd44e)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ffd44e542)\r\n- **ci**:\r\n  - With outputHashAlgo to output non-empty output - by @04cb in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1182 [\u003Csamp>(7c7ad)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F7c7add82)\r\n- **discord**:\r\n  - Prevent VoiceManager memory leaks on join\u002Fleave cycles - by @JasonOA888 in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1203 [\u003Csamp>(3e723)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F3e723aba)\r\n- **minecraft**:\r\n  - Downgrade to mitigate upstream issue and mcp cleanup - by @shinohara-rin in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1192 [\u003Csamp>(561b6)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F561b608c)\r\n  - Add stop method to Ticker to prevent resource leak - by @kbhujbal in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1213 [\u003Csamp>(57b04)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F57b04d95)\r\n- **server**:\r\n  - Collect metrics correctly - by @luoling8192 [\u003Csamp>(47d97)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F47d97320)\r\n- **server-runtime**:\r\n  - Use superjson.parse for incoming WebSocket messages - by @SakataRyuichi in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1187 [\u003Csamp>(49d57)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F49d57a5b)\r\n- **stage-***:\r\n  - Can’t get mcp servers when use remote api - by @BeanDz in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1181 [\u003Csamp>(5bed6)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5bed6bca)\r\n  - Can’t get mcp servers when use remote api \" - by @nekomeowww in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1181 and https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1204 [\u003Csamp>(d3c5f)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Fd3c5f810)\r\n- **stage-layouts**:\r\n  - Replace Tooltip with Popover for microphone controls - by @dongguacute in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1169 [\u003Csamp>(f8fb6)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002Ff8fb6e22)\r\n  - Login drawer in mobile - by @luoling8192 [\u003Csamp>(5e209)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcommit\u002F5e209399)\r\n- **stage-pages,stage-ui**:\r\n  - Surface provider transcription errors - by @liuxiaopai-ai in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fissues\u002F1070 [\u003Csamp>(261f6)\u003C\u002Fsamp>](https:\u002F\u002Fgithub.com\u002Fmoeru-a","2026-03-09T17:31:01",{"id":280,"version":281,"summary_zh":282,"released_at":283},99647,"v0.9.0-alpha.2","## What's Changed\r\n\r\n* feat(stage-ui): add missing icon for gaming-factorio module by @lietblue in https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fpull\u002F1130\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fmoeru-ai\u002Fairi\u002Fcompare\u002Fv0.9.0-alpha.1...v0.9.0-alpha.2","2026-03-05T07:59:01"]