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.
In such case, you can always bypass this by issuing this following command in Terminal.app or iTerm2.app
sudo xattr -c '/Applications/airi.app'Windows
Download and install.
Linux
Flatpak (x86_64, x64, amd64)
wget https://github.com/moeru-ai/airi/releases/download/v0.8.1/AIRI-0.8.1-linux-x64.flatpak
flatpak install -u AIRI-0.8.1-linux-x64.flatpak
rm -rf AIRI-0.8.1-linux-x64.flatpakFlatpak (aarch64, arm64)
wget https://github.com/moeru-ai/airi/releases/download/v0.8.1/AIRI-0.8.1-linux-arm64.flatpak
flatpak install -u AIRI-0.8.1-linux-arm64.flatpak
rm -rf AIRI-0.8.1-linux-arm64.flatpakDebian / Ubuntu / apt / dpkg (x86_64, x64, amd64)
wget https://github.com/moeru-ai/airi/releases/download/v0.8.1/AIRI-0.8.1-linux-amd64.deb
sudo apt install AIRI-0.8.1-linux-amd64.deb
rm -rf AIRI-0.8.1-linux-amd64.debDebian / Ubuntu / apt / dpkg (aarch64, arm64)
wget https://github.com/moeru-ai/airi/releases/download/v0.8.1/AIRI-0.8.1-linux-arm64.deb
sudo apt install AIRI-0.8.1-linux-arm64.deb
rm -rf AIRI-0.8.1-linux-arm64.debFedora / rpm / dnf (x86_64, x64, amd64)
wget https://github.com/moeru-ai/airi/releases/download/v0.8.1/AIRI-0.8.1-linux-x86_64.rpm
sudo dnf install AIRI-0.8.1-linux-x86_64.rpm
rm -rf AIRI-0.8.1-linux-x86_64.rpmFedora / rpm / dnf (aarch64, arm64)
wget https://github.com/moeru-ai/airi/releases/download/v0.8.1/AIRI-0.8.1-linux-aarch64.rpm
sudo dnf install AIRI-0.8.1-linux-aarch64.rpm
rm -rf AIRI-0.8.1-linux-aarch64.rpmNew Contributors
- @taxi13245 made their first contribution in #856
- @TECozens made their first contribution in #859
- @shangxueink made their first contribution in #873
- @abr-Projects made their first contribution in #913
- @MirLunaDEV made their first contribution in #921
- @leaft made their first contribution in #923
- @skyline624 made their first contribution in #928
- @zsleavitt made their first contribution in #933
- @lockrush-dev made their first contribution in #946
- @Lstmxx made their first contribution in #880
🚀 Features
- airi-plugin-web-extension:
- Integrated to server-sdk, now supports to read context from browser - by @nekomeowww (b241f)
- ci:
- Lint swift code - by @LemonNekoGH (f40b9)
- discord:
- Add guild segmentation, DM support and context enrichment - by @skyline624 in #942 (2a801)
- docs:
- electron-screen-capture:
- Introduce new screen capture utilities - by @sumimakito in #937 (4cda1)
- model-driver-mediapipe:
- Integrate MediaPipe as a motion capture tool - by @Lilia-Chen in #828 (ecd5e)
- satori-bot:
- Integrate Satori Protocol Adapter - by @shangxueink in #873 (ad086)
- server:
- With api server, service-lize - by @luoling8192, @nekomeowww and @Neko-233 in #807 (d064a)
- Hono server with character schema, valibot, routes - by @luoling8192 and @nekomeowww in #848 (3dbf3)
- Characters - by @luoling8192 in #882 (93467)
system_provider_configsandcharacter_covers- by @luoling8192 in #905 (371a0)
- server-*:
- Extend server capability, routing, heartbeat, and better type - by @nekomeowww (eb803)
- stage-*:
- V2 provider catalog for managing providers - by @nekomeowww (c1984)
- Migrated all openai compatible api providers - by @nekomeowww (d1a1e)
- Process spark:notify & emitting spark:command - by @nekomeowww (17b0b)
- Performance overlay & markdown stress test - by @s3d-i in #838 (9005b)
- Devtool for websocket - by @LemonNekoGH in #932 (a7d7c)
- Browser provided speech recognition as provider - by @zsleavitt in #933 (bcafc)
- Allow to connect remote ws server - by @LemonNekoGH in #953 (06b34)
- stage-capacitor:
- Add notification capability, and a devtool - by @LemonNekoGH in #855 (3936c)
- stage-capcitor:
- Added Capacitor of stage for iOS - by @LemonNekoGH in #845 (beb55)
- stage-pages:
- Add
spark:notifyto context flow devtool - by @shinohara-rin in #903 (8ee9c) - Improved context flow devtools, show spark:notify handler - by @nekomeowww (dff0a)
- Add
- stage-pages,stage-ui,ui:
- Character list for v2 - by @nekomeowww (3f4fd)
- stage-pocket:
- Add a layered app icon set for liquid glass - by @sumimakito (5296e)
- stage-tamagotchi:
- Improved weather widget - by @nekomeowww (51b91)
- Debugger for inlay window, supported to setVibrancy & setBackgroundMaterial - by @nekomeowww (d7e4d)
- Use vibrancy hud for window widget, improved background - by @nekomeowww (aa85b)
- Added Map widget for demo - by @nekomeowww (27313)
- Update app icons and window icons - by @sumimakito (b2a46)
- Support to auto fade out & resize for caption window - by @nekomeowww (a7d57)
- Disable back button on settings home page - by @leaft in #931 (164ec)
- Add icon size settings for tamagotchi - by @leaft in #940 (0e543)
- stage-tamagotchi,electron-screen-capture,i18n:
- Check for screen capture permissions - by @sumimakito (969d5)
- stage-ui:
- With sorted for providers - by @nekomeowww (52d42)
- Shuffle idle motions for Live2D model - by @shinohara-rin and @nekomeowww in #820 (4e553)
- Character settings page - by @luoling8192 in #847 (ddde5)
- Shuffle idle motions for Live2D model ", closes #881 - by @shinohara-rin in #820 and #881 (d5604)
- Process for reasoning models - by @TECozens in #859 (1f58f)
- Local-first storage - by @luoling8192 in #922 (6db26)
- Add edit mode for airi card - by @leaft in #939 (cf881)
- Support custom model - by @Lstmxx in #880 (45b0b)
- stage-ui, stage-web:
- Add loading state for authing - by @luoling8192 (f8b63)
- stage-ui,i18n:
- Added Japanese as language option - by @taxi13245 in #856 (60c91)
- stage-ui,server:
- Use optimistic request for provider catalog - by @luoling8192 in #951 (42925)
- stage-ui,stage-pages,i18n:
- Add support for deepgram tts - by @shinohara-rin in #858 (1f6db)
- stage-ui,stage-ui-three:
- Support fade on hover for three - by @nekomeowww (bd9d5)
- stage-ui-*:
- ACT special tokens for future motion gen - by @Lilia-Chen in #974 (00938)
- stage-ui-three:
- Support loading three as preview cover of model - by @nekomeowww (0ef11)
- stage-web:
- Use drawer in mobile login page - by @luoling8192 (061de)
🐞 Bug Fixes
- Replace lint-staged with nano-staged - by @sumimakito in #874 (7043f)
- Add smooth control multiplier to VRM X axis slider - by @lockrush-dev in #946 (019cc)
- Lint warnings - by @kwaa in #976 (f432a)
- Lint warnings " - by @nekomeowww in #976 (b00e7)
- Lint warnings - by @nekomeowww and @kwaa (8effa)
- airi-plugin-vscode:
- Should not use any dependencies in vscode plugin package - by @nekomeowww (e3b37)
- ci:
- Swiftlint actions template - by @LemonNekoGH (26f64)
- Swiftlint download arch - by @LemonNekoGH (11ac9)
- Unzip swiftlint download - by @LemonNekoGH (4a672)
- Matrix does not support if so skip the build via workarounds - by @sumimakito (01d8f)
- Incorrect condition - by @sumimakito (5f5d5)
- I should have remembered to invert the conditions - by @sumimakito (4009d)
- Continue-on-error when skipping platforms - by @sumimakito (6e108)
- deps:
- Sync vue to catalog: - by @nekomeowww (e3836)
- docker:
- Server dockerfile - by @luoling8192 (b34f7)
- docs:
- Should count any range between Jan & Dec - by @nekomeowww (64eb6)
- Continue to fix Christmas time check - by @nekomeowww (37878)
- Remove hardcoded condition in Home.vue - by @Neko-233 in #877 (9fd30)
- Incorrect translation for docs - by @Neko-233 in #901 (c111f)
- Minor style fixes, improved readability - by @nekomeowww (88848)
- Uno.config property - by @nekomeowww (84bd9)
- electron-screen-capture:
- Module not found on stage-tamagotchi start - by @sumimakito in #952 (73d33)
- persistence:
- server:
- Docker-compose fix - by @nekomeowww (8cbdb)
- Dockerfile & railway fix - by @nekomeowww (ca45b)
- Database with duplicated index - by @nekomeowww (ba77b)
- Patches should be copied - by @nekomeowww (98342)
- Incorrect path used for copied patches - by @nekomeowww (20a6f)
- server,stage-web:
- Auth & rename - by @nekomeowww (fab6c)
- server-*:
- Rename message ping & pong body & type - by @nekomeowww (ea332)
- Should not have source anymore - by @nekomeowww (0ba6e)
- server-sdk:
- Cannot handle Discord BigInt serialization - by @nekomeowww (96235)
- Event.data may be empty - by @nekomeowww (a0cf7)
- stage-*:
- OpenAI Compatible Speech and Hearing modules activation - by @lockrush-dev in #947 (815ce)
- stage-capacitor,stage-web:
- Remove unused code - by @nekomeowww (70530)
- stage-ios:
- Use https when live reload - by @LemonNekoGH in #853 (7f3a9)
- stage-layout:
- Missing back button - by @nekomeowww in #950 (aeeb7)
- stage-layouts:
- Improve mobile view control UI/UX - by @nekomeowww (47098)
- Should peserve blur for background - by @nekomeowww (f3661)
- Use cameradistance for VRM scaling - by @shinohara-rin in #895 (cdf27)
- stage-pages:
- Missing stage-ui-three and stage-ui-live2d - by @nekomeowww (c2756)
- Fix the cancel text display problem in settings -> data - by @leaft in #924 (8736d)
- stage-pages,stage-ui:
- Type issue - by @nekomeowww (d9237)
- stage-pocket:
- Linter issues, create swiftlint config - by @LemonNekoGH (ad874)
- stage-tamagotchi:
- Ignore EADDRINUSE and ERR_SERVER_NOT_RUNNING, srvx doesn't correctly handle nodejs error - by @nekomeowww (ff43b)
- Should not reject directly due to checkForUpdates() error - by @nekomeowww (a9f9b)
- Missing config for app auto updater - by @nekomeowww (23a96)
- Scrollbar appear & rounded corner & windows tested - by @nekomeowww (4199b)
- Layout issue for notice windows - by @nekomeowww (880cf)
- Programmtical resize - by @abr-Projects in #913 (f858a)
- Missing register to createAppService - by @nekomeowww (bdf7d)
- Use icns for macOS builds for now - by @sumimakito (44520)
- Widget_tool was broken due to incorrectly set default as required is required - by @nekomeowww (a753e)
- Consolidated renderer loop helper - by @s3d-i in #936 (f2c30)
- Correct typo in needsControlsIslandIconSizeSetting prop - by @leaft in #958 (153eb)
- Type error - by @nekomeowww (d97f7)
- stage-tamagotchi,stream-kit,pipelines-audio:
- Couldn't handle spark:notify and has elegant way of handling tts & playback - by @nekomeowww (3c681)
- stage-ui:
- Should not reject due to server-sdk connection failed - by @nekomeowww (f3a24)
- New intializer will block until server connected successfully - by @nekomeowww (a9ece)
- SelectedMotionGroup can be empty string - by @shinohara-rin in #870 (8b03c)
- Model selector in mobile overlaps - by @nekomeowww (3a97d)
- Handle error for live2d - by @nekomeowww (49b68)
- Unused destructured - by @nekomeowww (ef439)
- Character orchestrator should have prompts - by @nekomeowww (0cde8)
- Add required fields and correct tool index in
character-orchestrator.test.ts- by @shinohara-rin (c69ef) - Incorrect import - by @nekomeowww (5c221)
- Import type issue - by @nekomeowww (58c38)
- Fix provider credentials change detection - by @shinohara-rin in #910 (b22ac)
- Fix placeholder check logic - by @shinohara-rin in #898 and #909 (462f5)
- Fix notify agent toolcall - by @shinohara-rin in #908 (bdea0)
- Tool definition missing strict & additionalProperties check - by @nekomeowww (67e3d)
- Preserve default capabilities in openai-compatible-builder - by @MirLunaDEV in #921 (125a9)
- Shallow copy on chat - by @gg582 in #926 (c4915)
- Preserve and propagate discord context in bridge - by @skyline624 in #934 (b500e)
- Should ingest and response only once - by @nekomeowww (5cfd4)
- Tts voice options reactivity issue - by @shinohara-rin in #963 (c912e)
- Update connection icon to use correct variant - by @leaft in #966 (07694)
- stage-ui, stage-web:
- Oauth loading state - by @luoling8192 (73455)
- stage-ui,server-*:
- Implement handling for
input:textfrom anywhere, support for Discord - by @skyline624 in #928 (5d904)
- Implement handling for
- stage-ui,stage-pages:
- Yes re-implemented useLocalStorageManualReset as refManualReset will not propagate - by @nekomeowww (c0d69)
- stage-ui,stage-ui-three:
- Resolve tamagotchi VRM loading screen hang on startup - by @shinohara-rin in #904 (4f047)
- stage-ui-three:
- Memory leak & should update hook issue - by @nekomeowww (222e7)
- Lipsync update() - by @Lilia-Chen in #971 (372f3)
- stage-web:
- Ignore *.task as they are too large for HF Space - by @nekomeowww (8d485)
- ui:
- Color jittering - by @gg582 in #899 (18391)
- Should not use text-nowrap - by @nekomeowww (35ca2)
- Missing rename of import - by @nekomeowww (f074d)
- Incorrect import - by @nekomeowww (58397)
- Input and FieldInput should support number modifer natively - by @nekomeowww (00666)
🏎 Performance
- stage-tamagotchi: No buffer copying in screen-capture devtool when possible - by @sumimakito (a2b34)