Releases: moeru-ai/airi
v0.10.1
v0.10.1 Highlights
Account & AIRI Cloud
- You can now sign in with email, verify your email address, reset your password, and manage your profile from the account page.
- You can now link social accounts to your AIRI account, making it easier to manage different sign-in methods in one place.
- You can now delete your account from settings when you no longer want to keep your data.
- AIRI Cloud now supports server-side TTS with per-character Flux billing.
- We improved Flux billing reliability for TTS usage, especially when usage needs to be recorded before payment is fully settled.
- Some users could run into unstable sign-in sessions when multiple requests refreshed auth at the same time. We improved token refresh handling so sign-in state should be more reliable.
New Providers
- You can now use Amazon Bedrock as a chat provider.
- You can now use MiniMax Speech as a TTS provider.
- Artistry now supports image providers such as ComfyUI, Replicate, and Nano Banana.
Chat & Settings
- The chat input could flicker or feel unstable in some cases. We adjusted the input behavior so typing and sending messages should feel smoother.
- When a message fails, you can now retry it directly instead of recreating it manually.
- Some chat bubbles, buttons, tabs, and input scrollbars did not fit cleanly. We fixed several layout issues to make the chat UI feel more polished.
- Some provider lists in settings were hard to reach because they did not scroll correctly. We fixed this so all options should be accessible.
- Kokoro’s default model is now saved correctly on first visit.
- You can now clear OpenAI-compatible speech model fields when you want to reset them.
Artistry
- You can now use Artistry to generate or work with images through supported image providers.
- AIRI Card creation and scene settings now have better image-related controls and previews.
- Generated image results in chat are easier to inspect with the new journal preview flow.
Models & Local Inference
- You can now get clearer feedback when importing Live2D models. AIRI checks the model structure and shows a report when something looks wrong.
- We improved WebGPU-based local inference for speech, TTS, and background removal. This should make local model loading, cancellation, and recovery from GPU issues more reliable.
- Some CJK and keep-text speech processing cases could strip text incorrectly. We improved the audio text processing pipeline to handle those cases better.
Computer Use
- AIRI now has an experimental Computer Use foundation for observing the desktop and interacting with browser content.
- Browser actions are now routed through DOM-aware tools where possible, which should make web interactions more accurate than coordinate-only clicking.
- We added safer session tracking, read-only DOM inspection tools, transcript-based state tracking, and improved desktop overlay behavior.
- Some macOS cursor, display geometry, iframe coordinate, and cleanup issues were fixed to make the experimental desktop flow more stable.
Mobile & Stage
- You can now use a transparent background in Stage Pocket.
- We added an early Godot Stage preview. This is experimental, but it gives us a path toward richer stage runtimes.
For Plugin Developers
- You can now build plugins with the new Kits API, Bindings API, Tools API, and Gamelet API.
- Plugin manifests now use
plugin.airi.json. - Plugins can now provide custom widget UI.
- We added a local loopback server so plugin assets can be served more safely inside Stage Tamagotchi.
- We added an initial chess gamelet example to show how the new Gamelet API works.
- We improved plugin host structure, debugging, auto reload, asset mounting, and iframe messaging through
@moeru/eventa. - Some plugin tools were not being enabled correctly. We fixed that so plugin-provided tools can be used as expected.
Developer Tools
- We added IO Tracer to help inspect how messages, hearing, and other runtime flows move through AIRI.
- IO Tracer now has better layout behavior, clearer identifiers, and localized route metadata.
- We added the foundation for global shortcuts.
Upgrade Notes
- If you self-host AIRI, set
BETTER_AUTH_SECRETbefore upgrading. - If you maintain a plugin, migrate your manifest to
plugin.airi.json. - Artistry, Computer Use, Desktop Overlay, and Godot Stage are still evolving. Some details may change in future releases.
v0.10.0
New Contributors
- @3361559784 made their first contribution in #1380
- @ENTWOPY made their first contribution in #1624
- @eidoid made their first contribution in #1639
- @createmeow made their first contribution in #1375
- @arkrolin made their first contribution in #1666
- @drHuangMHT made their first contribution in #1664
- @0xSelenicDove made their first contribution in #1702
- @chaosreload made their first contribution in #1256
- @officialasishkumar made their first contribution in #1726
- @alicesainta made their first contribution in #1730
- @fuyua9 made their first contribution in #1728
- @felixtremblay made their first contribution in #1764
🚀 Features
- auth:
- Email login & profile - by @luoling8192 and @lietblue in #1745 (172e4)
- Oidc jwt bearer plugin & linked social accounts - by @luoling8192 and @lietblue in #1753 (0af7d)
- Delete account - by @luoling8192 in #1756 (6f0b7)
- computer-use-mcp:
- Add read-only DOM tools parity to extension bridge - by @3361559784 in #1733 (e145c)
- Add transcript truth source and safe projection - by @3361559784 in #1734 (f92e6)
- core-agent:
- Extract pure runtime logic from stage-ui into
core-agent- by @NashChennc in #1524 (bf416)
- Extract pure runtime logic from stage-ui into
- desktop:
- Add desktop observation and overlay baseline - by @3361559784 in #1647 (632aa)
- docs:
- Authors region, published at, more tweaks on ui, @assets() fix - by @nekomeowww (32087)
- flux:
- Update transaction stats to use capacity from latest credit/initial transaction - by @luoling8192 (67151)
- inference:
- mcp-computer-use:
- Lay down the foundation of computer use - by @3361559784 in #1380 (aa742)
- pipelines-audio:
- Universal Speech Transformer port with CJK & keep-text support - by @0xSelenicDove in #1702 (c259c)
- plugin-sdk:
- Kits api, binding api, and better comments - by @nekomeowww (0294d)
- plugin-sdk,stage-tamagotchi:
- Rework of plugin structure, integrated kits api, now plugin manifest is plugin.airi.json - by @nekomeowww (509c0)
- plugin-sdk-tamagotchi,airi-plugin-game-chess:
- Tools api, gamelet api, init chess gamelet - by @nekomeowww (33901)
- providers:
- Add Amazon Bedrock provider - by @chaosreload in #1256 (a1895)
- server:
- Use stripe product as flux pricing - by @luoling8192 in #1640 (93888)
- Require BETTER_AUTH_SECRET and pass it explicitly to betterAuth - by @luoling8192 (fc0ad)
- Add gateway and model configuration to environment variables - by @luoling8192 (57533)
- Add TTS support with per-character billing - by @luoling8192 (8967b)
- server/billing:
- Implement debt ledger for TTS service using FluxMeter - by @luoling8192 (a1172)
- stage-*:
- Port artistry & chatbox enhancements - by @dasilva333 in #1636 (4e6da)
- stage-layouts:
- Add an optional disableBackButton to route metadata - by @sumimakito (82686)
- stage-pages,stage-shared,stage-ui:
- Better OTel identifiers - by @sumimakito (dbe85)
- stage-pocket:
- Allow to set transparent background - by @LemonNekoGH (c8a01)
- stage-shared:
- Add types for IO tracing - by @sumimakito (dd9cc)
- stage-shared,stage-ui:
- Add store and integrations for IO tracer - by @sumimakito (7d544)
- stage-tamagotchi:
- Support detached devtools window with params - by @sumimakito (3d35d)
- Improve updater cleanup lane and admin diagnostics - by @jensenhuangfan (c14e9)
- Built-in local loopback http server - by @nekomeowww (033e7)
- Widget now supports customizable ui from plugin/extension - by @nekomeowww (a406f)
- stage-tamagotchi,computer-use-mcp:
- Implement browser-native DOM action routing - by @3361559784 in #1648 (255ce)
- stage-tamagotchi,i18n,stage-pages:
- Localize IO Tracer title and update route metadata - by @sumimakito (a620c)
- stage-tamagotchi,stage-pages:
- Initialize IO trace viewer - by @sumimakito (b0b48)
- stage-tamagotchi,stage-shared:
- Essentials for global shortcut - by @sumimakito (3566e)
- stage-tamagotchi,stage-ui,computer-use-mcp:
- Intro agent-owned session and ghost pointer phases - by @3361559784 in #1649 (d7402)
- stage-tamagotchi,stage-ui,ui:
- Input should not flink, added retry for errored item, adjusted button - by @nekomeowww (a3249)
- stage-tamagotchi-godot:
- Initiation of Godot stage - by @Lilia-Chen in #1697 (567fd)
- Add Godot stage G0 sidecar preview - by @Lilia-Chen in #1724 (c6c04)
- stage-ui:
- Add OTel deps and IO tracer helpers - by @sumimakito (bc539)
- Should handle WebGPU device-loss - by @NJX-njx in #1680 (f7ac6)
- Webgpu detect improved - by @NJX-njx in #1681 (d8570)
- Added AbortController for inference utils - by @NJX-njx in #1682 (6a50d)
- Port model selector redesign and live2d validation - by @dasilva333 in #1297 (d6601)
- stage-ui,i18n:
- Add MiniMax Speech TTS provider - by @octo-patch in #1594 (11ac5)
- ui:
- Add ErrorBoundary component for error handling in Vue - by @luoling8192 (f292a)
- New component - by @nekomeowww (2d099)
🐞 Bug Fixes
- background-store:
- Rename store id to avoid collision with stage-layouts - by @luoling8192 [(7312e)](7...
v0.9.0
New Contributors
- @YoungUsing made their first contribution in #1109
- @Gujiassh made their first contribution in #1162
- @04cb made their first contribution in #1182
- @dongguacute made their first contribution in #1169
- @SakataRyuichi made their first contribution in #1187
- @JasonOA888 made their first contribution in #1203
- @Ver-zhzh made their first contribution in #1196
- @Minnzen made their first contribution in #1214
- @kbhujbal made their first contribution in #1213
- @pratyush618 made their first contribution in #1156
- @freezinlove made their first contribution in #1243
- @fordelkon made their first contribution in #1231
- @hobostay made their first contribution in #1261
- @stablegenius49 made their first contribution in #1316
- @Oldcircle made their first contribution in #1333
- @Reisenbug made their first contribution in #1341
- @mvanhorn made their first contribution in #1392
- @jim139129 made their first contribution in #1412
- @monolithic827 made their first contribution in #1302
- @PurCHES5 made their first contribution in #1457
- @spidershield-contrib made their first contribution in #1445
- @howtomakeaname made their first contribution in #1437
- @breezy89757 made their first contribution in #1057
- @areong made their first contribution in #1483
- @xuan0x0 made their first contribution in #1494
- @jensenhuangfan made their first contribution in #1506
- @cheesemori made their first contribution in #851
- @you06 made their first contribution in #1513
- @youetube made their first contribution in #1033
- @JhIcefair made their first contribution in #1559
- @PhoenixForrestLin made their first contribution in #1563
- @dasilva333 made their first contribution in #1582
What's Changed
- fix(docs): typo in instructions for Chat window by @YoungUsing in #1109
- feat(stage-*): basic mcp implementation by @BeanDz in #1115
- feat(stage-tamagotchi): popup controls island and better tray with window opts by @lietblue in #1106
- fix(stage-tamagotchi): improve controls island tooltip placement by @lietblue in #1119
- chore(docs): updated supported LLM API providers by @Neko-233 in #1114
- chore(i18n): update translations by @github-actions[bot] in #1120
- feat(stage-ui): add missing icon for gaming-factorio module by @lietblue in #1130
- feat: add Ollama thinking mode config and provider-side think mapping by @Garfield550 in #1140
- chore(i18n): update translations by @github-actions[bot] in #1157
- refactor(satori-bot): migrate persistence to adapter by @NashChennc in #1155
- feat: add anti-aliasing support for 3D models by @NJX-njx in #1150
- fix: improve VRM expression rendering and add missing emotion mappings by @NJX-njx in #1147
- fix(stage-ui): guard against undefined voices in ElevenLabs listVoices by @NJX-njx in #1142
- fix(ui): raise ComboboxContent z-index above Dialog overlay by @NJX-njx in #1143
- fix(stage-ui): auto-mark provider as added after successful validation on settings page by @NJX-njx in #1144
- feat(stage-pages): add manual model input fallback when model list fails to load by @NJX-njx in #1145
- chore(stage-pages): add Minecraft integration unavailability notice with WIP bot setup instructions by @shinohara-rin in #1161
- fix(telegram-bot): guard structured message fallback by @Gujiassh in #1162
- refactor(minecraft): migrate reflex runtime to alien-signals, harden zod validation, and unify skill utilities by @s3d-i in #1092
- fix(stage-pages,stage-ui): surface provider transcription errors by @liuxiaopai-ai in #1070
- fix(stage-ui): add model list for index-tts-vllm by @liuxiaopai-ai in #1066
- fix(ci): with outputHashAlgo to output non-empty output by @04cb in #1182
- chore(i18n): update translations by @github-actions[bot] in #1177
- fix(stage-layouts): replace Tooltip with Popover for microphone controls by @dongguacute in #1169
- fix(stage-*): can’t get mcp servers when use remote api by @BeanDz in #1181
- fix(minecraft): downgrade to mitigate upstream issue and mcp cleanup by @shinohara-rin in #1192
- fix(server-runtime): use superjson.parse for incoming WebSocket messages by @SakataRyuichi in #1187
- feat(minecraft): disable debug servers by default by @shinohara-rin in #1193
- fix(stage-ui): LM studio validation problem and add CORS note by @shinohara-rin in #1175
- fix(discord): prevent VoiceManager memory leaks on join/leave cycles by @JasonOA888 in #1203
- chore(docs): reorganize content by @NashChennc in #1170
- fix(telegram-bot): guard malformed structured messages by @Gujiassh in #1179
- Revert "fix(stage-*): can’t get mcp servers when use remote api" by @nekomeowww in #1204
- chore(i18n): update translations by @github-actions[bot] in #1209
- feat(stage-ui): add nvidia nim provider by @Ver-zhzh in #1196
- feat(stage-pages): add model selection navigation after provider validation by @Minnzen in #1214
- fix(stage-ui): user-sent message lost by @typed-sigterm in #1215
- fix(minecraft): add stop method to Ticker to prevent resource leak by @kbhujbal in #1213
- feat(tamagotchi): add "Pin on top" toggle to controls island by @lietblue in #1183
- fix(stage-tamagotchi): bring back onboarding dialog by @shinohara-rin in #1104
- fix(stage-ui): reset always-on-top via manual reset by @Garfield550 in #1218
- fix(stage-pocket): use system mkcert to work around feaxios download crash by @Minnzen in #1220
- fix(stage-ui-live2d): require
.model.jsonor.model3.jsonfor Live2D files by @pratyush618 in #1156 - chore(i18n): update translations by @github-actions[bot] in #1226
- fix(server-runtime,server-sdk): accept plain JSON from external WebSocket clients by @pratyush618 in #1234
- refactor(stage-ui): steps of onboarding dialog by @LemonNekoGH in #1224
- fix(stage-tamagotchi): disable hoverable content of control button by @LemonNekoGH in #1240
- fix(stage-ui-live2d,stage-tamagotchi): use temp file to prevent config loss and handle more Live2D model load failures by @pratyush618 in #1233
- fix(stage-tamagotchi): double close caused crash, simplified onboarding, added
safeCloseby @freezinlove in #1243 - feat(stage-tamagotchi): add top drag area to move window by @fordelkon in #1231
- feat(nix): add FHS devShell for running Electron on NixOS by @lietblue in #1245
- fix(stage-ui): use lightweight fetch for connectivity check by @Minnzen in #1238
- feat(stage-tamagotchi): add electron main process file logger hook by @Garfield550 in #1247
- fix(stage-tamagotchi): crash on onboarding save by bump electron to v40.8.0, bring back auto-popup by @sumimakito in #1246
- chore(i18n): update translations by @github-actions[bot] in https...
v0.9.0-rc.1
🚀 Features
- stage-ui: New BugReporterDialog component - by @nekomeowww (b1a4e)
- ui: Error container - by @nekomeowww (ec4d1)
- ui,stage-ui: FieldInput, InputFileCard, and story update - by @nekomeowww (14f82)
🐞 Bug Fixes
- stage-pocket: Position of status icons - by @LemonNekoGH (a786e)
- stage-tamagotchi: No longer being able to build electron due to nested pack - by @nekomeowww in #1609 (c4a15)
- stage-ui: Improve LLM KV-cache compatibility for XML context injection - by @luoling8192 in #1593 (d212d)
🏎 Performance
View changes on GitHub
v0.9.0-beta.7
🚀 Features
- stage-pocket: Scan qr code to connect to tamagotchi - by @LemonNekoGH (0cd09)
- stage-tamagotchi: Added weather API + tool for widget calling - by @NJX-njx in #1588 (0ddc2)
- stage-ui: Let AIRI see tool failures in LLM context (captureToolErrors + xsai patches) - by @lulu0119 in #1602 (286cc)
🐞 Bug Fixes
- stage-*:
- Qr should have dark mode adapted, connection component moved - by @nekomeowww (16017)
- stage-pocket:
- Outdated import - by @nekomeowww (92b42)
- stage-tamagotchi:
- Incorrect auto updater - by @nekomeowww (d989e)
- AutoUpdater fix with channels - by @nekomeowww (c2dba)
- stage-ui:
- Disable coupon - by @luoling8192 (65419)
- stage-ui,ui:
- RoundRange updated, onboarding props corrected - by @nekomeowww (9be9b)
🏎 Performance
- stage-tamagotchi: Better fallback, matrix smoking test - by @nekomeowww (b95d8)
View changes on GitHub
v0.9.0-beta.6
New Contributors
- @JhIcefair made their first contribution in #1559
- @PhoenixForrestLin made their first contribution in #1563
- @dasilva333 made their first contribution in #1582
🚀 Features
- Lang select now moved to top-right corner - AIRI-209 - by @Misaka-0x447f in #1555 (e644d)
- Full rollout chat completion check - by @Misaka-0x447f in #1557 (89432)
- Add browser artifact transformer pipeline - by @nekomeowww (a909d)
- auth:
- OIDC - by @luoling8192 in #1531 (f1fe1)
- Jwt sign - by @luoling8192 (d7823)
- devtool-capture-stage-tamagotchi:
- Tool for interacting the electron apps - by @nekomeowww in #1549 (eb448)
- docs:
- font-chillroundm:
- Added new font chillroundm - by @nekomeowww (da2ba)
- minecraft,stage-*:
- Airi integration, isolated-vm plus misc updates - by @shinohara-rin and Claude Sonnet 4.6 in #1371 (fdeb9)
- otel:
- Server instrumentation script - by @luoling8192 (9451c)
- scenarios-stage-tamagotchi-browser:
- Anchor to, and dock avoiding - by @nekomeowww (404b7)
- stage-*,workspace:
- Added Nunito for default English font, ChillRoundM for CJK font - by @nekomeowww (3b76b)
- stage-pocket:
- WebSocket status indicator + shared i18n - by @LemonNekoGH in #1586 (883ec)
- stage-pocket-android:
- Bump version with bumpp - by @LemonNekoGH (cbbc6)
- stage-pocket-ios:
- Websocket bridge - by @LemonNekoGH (7690d)
- stage-tamagotchi,stage-ui,server-sdk,server-runtime:
- Zero-trust websocket authentication - by @dasilva333 in #1582 (99be8)
- stage-ui:
- ui-server-auth:
- Init server auth page - by @nekomeowww (af63c)
- vishot-,scenarios-:
- New packages, and playwright high level abstraction - by @nekomeowww and Codex (c9dd2)
- Output transformer, avif by default - by @nekomeowww (7d88e)
🐞 Bug Fixes
- Decouple vrm loading reason and ThreeScene phase transition reason - by @Lilia-Chen (631a6)
- ci:
- Fix missing build-tools - by @LemonNekoGH (b307d)
- Wrong apk path - by @LemonNekoGH (c1d3c)
- font-*:
- Incorrect build for all fonts we re-dist - by @nekomeowww (da405)
- i18n:
- Remove duplicate keys - by @LemonNekoGH (4b203)
- scenarios-stage-tamagotchi-browser:
- Skip build - by @nekomeowww (d1427)
- server-*,stage-ui:
- WebSocket cannot reconnect correctly, improved log - by @PhoenixForrestLin in #1563 (70a66)
- server-runtime,docs,vishot-*:
- Tsconfig issue, node issue, h3 export - by @nekomeowww (99e44)
- Tsconfig issue, node issue, h3 export - by @nekomeowww (73429)
- stage-*:
- Missing install of embla-carousel-vue - by @nekomeowww (9baa8)
- Onboarding model selection footer overlap and list height - by @lulu0119 in #1583 (bb9a6)
- stage-pages:
- XSS vulnerability in provider definition - by @shinohara-rin, shinohara-rin and @nekomeowww in #1492 (a8441)
- stage-pocket:
- Should not reset to default value when entering connections page - by @LemonNekoGH (a7139)
- stage-pocket-android:
- Bridge the websocket connection to android native - by @LemonNekoGH (e35b3)
- stage-tamagotchi:
- Correct onboarding padding - by @nekomeowww (dd6d5)
- OpenDevtoolsWindow in settings not working due to missing windowAuthManager from injeca - by @sumimakito (b8580)
- Rollback when wss enable failed, show errors - by @LemonNekoGH (1fcca)
- Harden cross-platform auto-updater flow, diagnostics, logs, and cache cleanup - by @jensenhuangfan in #1566 (babdb)
- Add drag region to onboarding layout - by @lulu0119 in #1584 (97b3c)
- More onboarding fix - by @nekomeowww (aa9b6)
- Intercept close and treat as hide by default - by @nekomeowww (5452c)
- stage-tamagotchi,server-runtime:
- Crossws error in EADDRINUSE not handled - by @nekomeowww (cb724)
- stage-ui:
- Updated format of version info - by @nekomeowww (2d2ee)
- Channel-server should handle onReady as well - by @nekomeowww in #1550 (7d152)
- Spark command tool - by @nekomeowww (438dd)
- Do not display action menu button on mobile - by @nekomeowww (f24f6)
- Improved the policy and strategy for chat history auto scrolling - by @nekomeowww (4a712)
- stage-ui-three:
- Model offset and camera position setting is now persistent in stage-web app - by @Lilia-Chen in #1543 (522e4)
- tests:
- Server build - by @luoling8192 (457ad)
- vishot-*,deps:
- Update lock, incorrect button impl - by @nekomeowww (4880f)
- vishot-,scenarios-:
- Incorrect button click impl, outdated import - by @nekomeowww (32c88)
- vishot-runtime:
- Missing scale and coordinate relocate - by @nekomeowww (fd50d)
- workspace:
- Incorrect font configured - by @nekomeowww (2ba82)
View changes on GitHub
v0.9.0-beta.5
dev/v0.9.0-beta.4-test-ios-release-pipeline
This is a dev release for testing purposes.
v0.9.0-beta.4
What's Changed
- chore(tauri-*,crates): now maintaining tauri and rust packages in another repo by @nekomeowww in #1533
- refactor(stage-ui-three): improved outline logic by @Lilia-Chen in #1536
Full Changelog: v0.9.0-beta.2...v0.9.0-beta.4
v0.9.0-beta.2
🐞 Bug Fixes
- pipelines-audio:
- No longer concurrently tts - by @nekomeowww (4ba49)
- stage-tamagotchi:
- Useless margin bottom - by @nekomeowww (ac59f)
- Chat window message not well sync - by @nekomeowww (4ed28)
- stage-ui:
- Keep onboarding save button visible - by @Ver-zhzh in #1280 (66076)
- Keep onboarding save button visible " - by @nekomeowww in #1280 (9dca4)
- Save button always visible - by @nekomeowww (d391f)
- stage-ui-live2d:
- Type issues - by @nekomeowww (127ef)