v0.8.1-beta.4
moeru-ai/airiv0.8.1-beta.4Jan 8, 2026by nekomeowww
AI Summary
A major feature release integrating MediaPipe for motion capture, adding the Satori Protocol Adapter, and establishing a new Hono-based API server with character schema management.
Key Highlights
- Integrated MediaPipe as a motion capture tool.
- Introduced Satori Protocol Adapter for satori-bot.
- Launched new API server with Hono, character schema, and routes.
- Added character settings page and V2 provider catalog.
- Included Map and weather widgets for tamagotchi.
New Features
- MediaPipe integration for motion capture
- Satori Protocol Adapter
- API server with Hono and character schema
- Character settings page
- Map and weather widgets
Full Release Notes
## New Contributors * @taxi13245 made their first contribution in https://github.com/moeru-ai/airi/pull/856 * @TECozens made their first contribution in https://github.com/moeru-ai/airi/pull/859 * @shangxueink made their first contribution in https://github.com/moeru-ai/airi/pull/873 ## Installation ### macOS > [!TIP] > For macOS users, currently Apple requires all installed App to have code sign validated with Apple servers, > while we are working hard for enrolling the Apple Developer Program for correct code signing, this error message may be prompted > > Apple could not verify “AIRI.app” is free of malware that may harm your Mac or compromise your privacy. > > <img width="260" height="243" alt="image" src="https://github.com/user-attachments/assets/ee48e445-8ecb-4e64-a41e-0cc0126fc0c6" /> > > In such case, you can always bypass this by issuing this following command in Terminal.app or iTerm2.app > ```shell > sudo xattr -c '/Applications/airi.app' > ``` ### Windows Download and install. ### Linux <details> <summary>Flatpak (x86_64, x64, amd64)</summary> ```shell wget https://github.com/moeru-ai/airi/releases/download/v0.8.0/AIRI-0.8.1-beta.4-linux-x64.flatpak flatpak install -u AIRI-0.8.1-beta.4-linux-x64.flatpak rm -rf AIRI-0.8.1-beta.4-linux-x64.flatpak ``` </details> <details> <summary>Flatpak (aarch64, arm64)</summary> ```shell wget https://github.com/moeru-ai/airi/releases/download/v0.8.0/AIRI-0.8.1-beta.4-linux-arm64.flatpak flatpak install -u AIRI-0.8.1-beta.4-linux-arm64.flatpak rm -rf AIRI-0.8.1-beta.4-linux-arm64.flatpak ``` </details> <details> <summary>Debian / Ubuntu / <code>apt</code> / <code>dpkg</code> (x86_64, x64, amd64)</summary> ```shell wget https://github.com/moeru-ai/airi/releases/download/v0.8.0/AIRI-0.8.1-beta.4-linux-amd64.deb sudo apt install AIRI-0.8.1-beta.4-linux-amd64.deb rm -rf AIRI-0.8.1-beta.4-linux-amd64.deb ``` </details> <details> <summary>Debian / Ubuntu / <code>apt</code> / <code>dpkg</code> (aarch64, arm64)</summary> ```shell wget https://github.com/moeru-ai/airi/releases/download/v0.8.0/AIRI-0.8.1-beta.4-linux-arm64.deb sudo apt install AIRI-0.8.1-beta.4-linux-arm64.deb rm -rf AIRI-0.8.1-beta.4-linux-arm64.deb ``` </details> <details> <summary>Fedora / <code>rpm</code> / <code>dnf</code> (x86_64, x64, amd64)</summary> ```shell wget https://github.com/moeru-ai/airi/releases/download/v0.8.0/AIRI-0.8.1-beta.4-linux-x86_64.rpm sudo dnf install AIRI-0.8.1-beta.4-linux-x86_64.rpm rm -rf AIRI-0.8.1-beta.4-linux-x86_64.rpm ``` </details> <details> <summary>Fedora / <code>rpm</code> / <code>dnf</code> (aarch64, arm64)</summary> ```shell wget https://github.com/moeru-ai/airi/releases/download/v0.8.0/AIRI-0.8.1-beta.4-linux-aarch64.rpm sudo dnf install AIRI-0.8.1-beta.4-linux-aarch64.rpm rm -rf AIRI-0.8.1-beta.4-linux-aarch64.rpm ``` </details> ### 🚀 Features - **ci**: - Lint swift code - by @LemonNekoGH [<samp>(f40b9)</samp>](https://github.com/moeru-ai/airi/commit/f40b9bcd) - **docs**: - Japanese translated & minor issues fixed - by @Neko-233 in https://github.com/moeru-ai/airi/issues/865 [<samp>(b5c6a)</samp>](https://github.com/moeru-ai/airi/commit/b5c6ab58) - **model-driver-mediapipe**: - Integrate MediaPipe as a motion capture tool - by @Lilia-Chen in https://github.com/moeru-ai/airi/issues/828 [<samp>(ecd5e)</samp>](https://github.com/moeru-ai/airi/commit/ecd5eee1) - **satori-bot**: - Integrate Satori Protocol Adapter - by @shangxueink in https://github.com/moeru-ai/airi/issues/873 [<samp>(ad086)</samp>](https://github.com/moeru-ai/airi/commit/ad086535) - **server**: - With api server, service-lize - by @luoling8192, @nekomeowww and @Neko-233 in https://github.com/moeru-ai/airi/issues/807 [<samp>(d064a)</samp>](https://github.com/moeru-ai/airi/commit/d064a959) - Hono server with character schema, valibot, routes - by @luoling8192 and @nekomeowww in https://github.com/moeru-ai/airi/issues/848 [<samp>(3dbf3)</samp>](https://github.com/moeru-ai/airi/commit/3dbf3faf) - Characters - by @luoling8192 in https://github.com/moeru-ai/airi/issues/882 [<samp>(93467)</samp>](https://github.com/moeru-ai/airi/commit/9346708c) - `system_provider_configs` and `character_covers` - by @luoling8192 in https://github.com/moeru-ai/airi/issues/905 [<samp>(371a0)</samp>](https://github.com/moeru-ai/airi/commit/371a0b10) - **stage-***: - V2 provider catalog for managing providers - by @nekomeowww [<samp>(c1984)</samp>](https://github.com/moeru-ai/airi/commit/c1984806) - Migrated all openai compatible api providers - by @nekomeowww [<samp>(d1a1e)</samp>](https://github.com/moeru-ai/airi/commit/d1a1ef73) - Process spark:notify & emitting spark:command - by @nekomeowww [<samp>(17b0b)</samp>](https://github.com/moeru-ai/airi/commit/17b0bd54) - Performance overlay & markdown stress test - by @s3d-i in https://github.com/moeru-ai/airi/issues/838 [<samp>(9005b)</samp>](https://github.com/moeru-ai/airi/commit/9005b9f4) - **stage-capacitor**: - Add notification capability, and a devtool - by @LemonNekoGH in https://github.com/moeru-ai/airi/issues/855 [<samp>(3936c)</samp>](https://github.com/moeru-ai/airi/commit/3936c0ea) - **stage-capcitor**: - Added Capacitor of stage for iOS - by @LemonNekoGH in https://github.com/moeru-ai/airi/issues/845 [<samp>(beb55)</samp>](https://github.com/moeru-ai/airi/commit/beb559df) - **stage-pages**: - Add `spark:notify` to context flow devtool - by @shinohara-rin in https://github.com/moeru-ai/airi/issues/903 [<samp>(8ee9c)</samp>](https://github.com/moeru-ai/airi/commit/8ee9c26f) - **stage-pages,stage-ui,ui**: - Character list for v2 - by @nekomeowww [<samp>(3f4fd)</samp>](https://github.com/moeru-ai/airi/commit/3f4fde48) - **stage-pocket**: - Add a layered app icon set for liquid glass - by @sumimakito [<samp>(5296e)</samp>](https://github.com/moeru-ai/airi/commit/5296e263) - **stage-tamagotchi**: - Improved weather widget - by @nekomeowww [<samp>(51b91)</samp>](https://github.com/moeru-ai/airi/commit/51b91b8e) - Debugger for inlay window, supported to setVibrancy & setBackgroundMaterial - by @nekomeowww [<samp>(d7e4d)</samp>](https://github.com/moeru-ai/airi/commit/d7e4d098) - Use vibrancy hud for window widget, improved background - by @nekomeowww [<samp>(aa85b)</samp>](https://github.com/moeru-ai/airi/commit/aa85b41b) - Added Map widget for demo - by @nekomeowww [<samp>(27313)</samp>](https://github.com/moeru-ai/airi/commit/27313d8e) - **stage-ui**: - With sorted for providers - by @nekomeowww [<samp>(52d42)</samp>](https://github.com/moeru-ai/airi/commit/52d42ce3) - Shuffle idle motions for Live2D model - by @shinohara-rin and @nekomeowww in https://github.com/moeru-ai/airi/issues/820 [<samp>(4e553)</samp>](https://github.com/moeru-ai/airi/commit/4e553b7a) - Character settings page - by @luoling8192 in https://github.com/moeru-ai/airi/issues/847 [<samp>(ddde5)</samp>](https://github.com/moeru-ai/airi/commit/ddde54d2) - Shuffle idle motions for Live2D model ", closes #881 - by @shinohara-rin in https://github.com/moeru-ai/airi/issues/820 and https://github.com/moeru-ai/airi/issues/881 [<samp>(d5604)</samp>](https://github.com/moeru-ai/airi/commit/d5604d5a) - Process for reasoning models - by @TECozens in https://github.com/moeru-ai/airi/issues/859 [<samp>(1f58f)</samp>](https://github.com/moeru-ai/airi/commit/1f58faaf) - **stage-ui,i18n**: - Added Japanese as language option - by @taxi13245 in https://github.com/moeru-ai/airi/issues/856 [<samp>(60c91)</samp>](https://github.com/moeru-ai/airi/commit/60c91755) - **stage-ui,stage-pages,i18n**: - Add support for deepgram tts - by @shinohara-rin in https://github.com/moeru-ai/airi/issues/858 [<samp>(1f6db)</samp>](https://github.com/moeru-ai/airi/commit/1f6db311) - **stage-ui,stage-ui-three**: - Support fade on hover for three - by @nekomeowww [<samp>(bd9d5)</samp>](https://github.com/moeru-ai/airi/commit/bd9d5be2) - **stage-ui-three**: - Support loading three as preview cover of model - by @nekomeowww [<samp>(0ef11)</samp>](https://github.com/moeru-ai/airi/commit/0ef110aa) ### 🐞 Bug Fixes - Replace lint-staged with nano-staged - by @sumimakito in https://github.com/moeru-ai/airi/issues/874 [<samp>(7043f)</samp>](https://github.com/moeru-ai/airi/commit/7043ff7a) - **ci**: - Swiftlint actions template - by @LemonNekoGH [<samp>(26f64)</samp>](https://github.com/moeru-ai/airi/commit/26f64270) - Swiftlint download arch - by @LemonNekoGH [<samp>(11ac9)</samp>](https://github.com/moeru-ai/airi/commit/11ac91da) - Unzip swiftlint download - by @LemonNekoGH [<samp>(4a672)</samp>](https://github.com/moeru-ai/airi/commit/4a672ca1) - **docs**: - Should count any range between Jan & Dec - by @nekomeowww [<samp>(64eb6)</samp>](https://github.com/moeru-ai/airi/commit/64eb6682) - Continue to fix Christmas time check - by @nekomeowww [<samp>(37878)</samp>](https://github.com/moeru-ai/airi/commit/37878307) - Remove hardcoded condition in Home.vue - by @Neko-233 in https://github.com/moeru-ai/airi/issues/877 [<samp>(9fd30)</samp>](https://github.com/moeru-ai/airi/commit/9fd3005c) - Incorrect translation for docs - by @Neko-233 in https://github.com/moeru-ai/airi/issues/901 [<samp>(c111f)</samp>](https://github.com/moeru-ai/airi/commit/c111f2af) - **persistence**: - Guard parsing errors and preserve falsy configs - by @s3d-i in https://github.com/moeru-ai/airi/issues/850 [<samp>(d2b20)</samp>](https://github.com/moeru-ai/airi/commit/d2b20659) - Guard parsing errors and preserve falsy configs - by @s3d-i in https://github.com/moeru-ai/airi/issues/850 [<samp>(cb754)</samp>](https://github.com/moeru-ai/airi/commit/cb754e40) - **server**: - Docker-compose fix - by @nekomeowww [<samp>(8cbdb)</samp>](https://github.com/moeru-ai/airi/commit/8cbdb6be) - Dockerfile & railway fix - by @nekomeowww [<samp>(ca45b)</samp>](https://github.com/moeru-ai/airi/commit/ca45b0df) - Database with duplicated index - by @nekomeowww [<samp>(ba77b)</samp>](https://github.com/moeru-ai/airi/commit/ba77b9e7) - Patches should be copied - by @nekomeowww [<samp>(98342)</samp>](https://github.com/moeru-ai/airi/commit/9834252d) - Incorrect path used for copied patches - by @nekomeowww [<samp>(20a6f)</samp>](https://github.com/moeru-ai/airi/commit/20a6f613) - **server,stage-web**: - Auth & rename - by @nekomeowww [<samp>(fab6c)</samp>](https://github.com/moeru-ai/airi/commit/fab6c201) - **stage-capacitor,stage-web**: - Remove unused code - by @nekomeowww [<samp>(70530)</samp>](https://github.com/moeru-ai/airi/commit/705307bc) - **stage-ios**: - Use https when live reload - by @LemonNekoGH in https://github.com/moeru-ai/airi/issues/853 [<samp>(7f3a9)</samp>](https://github.com/moeru-ai/airi/commit/7f3a90d4) - **stage-layouts**: - Improve mobile view control UI/UX - by @nekomeowww [<samp>(47098)</samp>](https://github.com/moeru-ai/airi/commit/47098e29) - Should peserve blur for background - by @nekomeowww [<samp>(f3661)</samp>](https://github.com/moeru-ai/airi/commit/f3661f89) - Use cameradistance for VRM scaling - by @shinohara-rin in https://github.com/moeru-ai/airi/issues/895 [<samp>(cdf27)</samp>](https://github.com/moeru-ai/airi/commit/cdf27880) - **stage-pages**: - Missing stage-ui-three and stage-ui-live2d - by @nekomeowww [<samp>(c2756)</samp>](https://github.com/moeru-ai/airi/commit/c2756ff4) - **stage-pocket**: - Linter issues, create swiftlint config - by @LemonNekoGH [<samp>(ad874)</samp>](https://github.com/moeru-ai/airi/commit/ad874fec) - **stage-tamagotchi**: - Ignore EADDRINUSE and ERR_SERVER_NOT_RUNNING, srvx doesn't correctly handle nodejs error - by @nekomeowww [<samp>(ff43b)</samp>](https://github.com/moeru-ai/airi/commit/ff43b3cd) - Should not reject directly due to checkForUpdates() error - by @nekomeowww [<samp>(a9f9b)</samp>](https://github.com/moeru-ai/airi/commit/a9f9b735) - Ignore EADDRINUSE and ERR_SERVER_NOT_RUNNING, srvx doesn't correctly handle nodejs error - by @nekomeowww [<samp>(d1cd1)</samp>](https://github.com/moeru-ai/airi/commit/d1cd15af) - Should not reject directly due to checkForUpdates() error - by @nekomeowww [<samp>(95c9e)</samp>](https://github.com/moeru-ai/airi/commit/95c9e193) - Missing config for app auto updater - by @nekomeowww [<samp>(23a96)</samp>](https://github.com/moeru-ai/airi/commit/23a96ad7) - Scrollbar appear & rounded corner & windows tested - by @nekomeowww [<samp>(4199b)</samp>](https://github.com/moeru-ai/airi/commit/4199b541) - Layout issue for notice windows - by @nekomeowww [<samp>(880cf)</samp>](https://github.com/moeru-ai/airi/commit/880cfd03) - **stage-ui**: - Should not reject due to server-sdk connection failed - by @nekomeowww [<samp>(f3a24)</samp>](https://github.com/moeru-ai/airi/commit/f3a2451e) - Should not reject due to server-sdk connection failed - by @nekomeowww [<samp>(3bd66)</samp>](https://github.com/moeru-ai/airi/commit/3bd664cb) - New intializer will block until server connected successfully - by @nekomeowww [<samp>(a9ece)</samp>](https://github.com/moeru-ai/airi/commit/a9ecea51) - SelectedMotionGroup can be empty string - by @shinohara-rin in https://github.com/moeru-ai/airi/issues/870 [<samp>(8b03c)</samp>](https://github.com/moeru-ai/airi/commit/8b03c8f0) - Model selector in mobile overlaps - by @nekomeowww [<samp>(3a97d)</samp>](https://github.com/moeru-ai/airi/commit/3a97d8d1) - Handle error for live2d - by @nekomeowww [<samp>(49b68)</samp>](https://github.com/moeru-ai/airi/commit/49b680ab) - Unused destructured - by @nekomeowww [<samp>(ef439)</samp>](https://github.com/moeru-ai/airi/commit/ef4390ab) - Character orchestrator should have prompts - by @nekomeowww [<samp>(0cde8)</samp>](https://github.com/moeru-ai/airi/commit/0cde81d2) - Add required fields and correct tool index in `character-orchestrator.test.ts` - by @shinohara-rin [<samp>(c69ef)</samp>](https://github.com/moeru-ai/airi/commit/c69efa6f) - Incorrect import - by @nekomeowww [<samp>(5c221)</samp>](https://github.com/moeru-ai/airi/commit/5c2218dd) - Import type issue - by @nekomeowww [<samp>(58c38)</samp>](https://github.com/moeru-ai/airi/commit/58c38e43) - Fix provider credentials change detection - by @shinohara-rin in https://github.com/moeru-ai/airi/issues/910 [<samp>(b22ac)</samp>](https://github.com/moeru-ai/airi/commit/b22acdba) - Fix placeholder check logic - by @shinohara-rin in https://github.com/moeru-ai/airi/issues/898 and https://github.com/moeru-ai/airi/issues/909 [<samp>(462f5)</samp>](https://github.com/moeru-ai/airi/commit/462f5741) - Fix notify agent toolcall - by @shinohara-rin in https://github.com/moeru-ai/airi/issues/908 [<samp>(bdea0)</samp>](https://github.com/moeru-ai/airi/commit/bdea0749) - **stage-ui,stage-ui-three**: - Resolve tamagotchi VRM loading screen hang on startup - by @shinohara-rin in https://github.com/moeru-ai/airi/issues/904 [<samp>(4f047)</samp>](https://github.com/moeru-ai/airi/commit/4f0477a2) - **stage-web**: - Ignore *.task as they are too large for HF Space - by @nekomeowww [<samp>(8d485)</samp>](https://github.com/moeru-ai/airi/commit/8d4855c5) - **ui**: - Color jittering - by @gg582 in https://github.com/moeru-ai/airi/issues/899 [<samp>(18391)</samp>](https://github.com/moeru-ai/airi/commit/18391ef3) - Should not use text-nowrap - by @nekomeowww [<samp>(35ca2)</samp>](https://github.com/moeru-ai/airi/commit/35ca227f) - Missing rename of import - by @nekomeowww [<samp>(f074d)</samp>](https://github.com/moeru-ai/airi/commit/f074d85e) - Incorrect import - by @nekomeowww [<samp>(58397)</samp>](https://github.com/moeru-ai/airi/commit/583973ad) ##### [View changes on GitHub](https://github.com/moeru-ai/airi/compare/v0.8.1-beta.2...v0.8.1-beta.4)