- Notifications
You must be signed in to change notification settings - Fork0
shinshin86/aituber-onair
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Welcome to theAITuber OnAir monorepo!
This repository open-sources the AITuber streaming processes used inAITuber OnAir, a web application for AITuber/AIVTuber streaming.
It contains various packages and tools for AI-powered chat, TTS, virtual streaming, and related features. You can also run asimple chat app using these systems on your local PC or self-host it.
(This is the AITuber OnAir interface)
Currently, the primary packages available are:
@aituber-onair/coreA TypeScript library for generating text and audio responses in AI Tuber streaming scenarios. It provides seamless integration with various AI and speech APIs, as well as memory and conversation context management.
npm install @aituber-onair/core@aituber-onair/voiceAn independent voice synthesis library supporting multiple TTS engines (VOICEVOX, VoicePeak, OpenAI TTS, NijiVoice, MiniMax, AIVIS Speech, etc.). Can be used standalone or integrated with the core package for full AITuber functionality.
npm install @aituber-onair/voice@aituber-onair/manneriA conversation pattern detection library that identifies repetitive dialogue patterns and provides topic diversification prompts. Features simple configuration with customizable intervention messages for maintaining engaging conversations.
npm install @aituber-onair/manneri@aituber-onair/bushitsu-clientWebSocket client library for chat functionality with React hooks support. Provides WebSocket client and React hooks for real-time chat communication with auto-reconnection, rate limiting, mention support, and voice synthesis integration. Works in both browser and Node.js environments.
npm install @aituber-onair/bushitsu-client@aituber-onair/kizunaSophisticated bond system (絆 - "Kizuna") for managing user-AI character relationships. Features points-based engagement system with customizable rules, achievements, emotion-based bonuses, level progression, and persistent storage. Supports YouTube, Twitch, and WebSocket platforms.
npm install @aituber-onair/kizuna@aituber-onair/chatChat and LLM API integration library for AITuber OnAir. Provides a unified interface for interacting with various AI chat providers including OpenAI, Claude (Anthropic), and Google Gemini. Features streaming responses, tool/function calling, vision support, and emotion detection.
npm install @aituber-onair/chat
Clone the repository
git clone https://github.com/shinshin86/aituber-onair.gitcd aituber-onairInstall dependencies
This monorepo usesnpm workspaces. Simply run:npm install
Build all packages
npm run build
- This runs the build script for each package in the
packages/directory.
- This runs the build script for each package in the
Test all packages
npm runtest- Runs the test suite for each package.
Format all packages
npm run fmt
- Runs the format for each package.
aituber-onair/├── packages/│ ├── core/│ │ ├── src/│ │ ├── test/│ │ └── package.json│ ├── voice/│ │ ├── src/│ │ ├── test/│ │ └── package.json│ ├── chat/│ │ ├── src/│ │ ├── test/│ │ └── package.json│ ├── manneri/│ │ ├── src/│ │ ├── test/│ │ └── package.json│ ├── bushitsu-client/│ │ ├── src/│ │ ├── test/│ │ └── package.json│ └── kizuna/│ ├── src/│ ├── tests/│ └── package.json├── package.json├── README.md└── ...- packages/core: The main library (
@aituber-onair/core) providing AITuber core functionality. - packages/voice: The voice synthesis library (
@aituber-onair/voice) supporting multiple TTS engines. - packages/chat: The chat and LLM API integration library (
@aituber-onair/chat) for AI provider interactions. - packages/manneri: The conversation pattern detection library (
@aituber-onair/manneri) for identifying repetitive dialogue patterns. - packages/bushitsu-client: The WebSocket client library (
@aituber-onair/bushitsu-client) for chat functionality with React hooks support. - packages/kizuna: The user-AI relationship management library (
@aituber-onair/kizuna) for engagement tracking.
This project usesChangesets for version management and automated releases.
Create a changeset for your changes
npm run changeset
- Select the packages that were modified
- Choose the appropriate version bump (patch/minor/major)
- Write a clear description of the changes
Commit the changeset file
git add .changeset/git commit -m"Add changeset for [your feature]"Push to GitHub and create a PR
- After merging to main, the GitHub Action will automatically create a "Version Packages" PR
- This PR will include all pending changesets
Merge the Version PR
- Review and merge the "Version Packages" PR
- This will automatically:
- Update package versions
- Update CHANGELOG.md files
- Create git tags
- Publish packages to npm
For a complete manual release workflow:
Option 1: Using Changesets
Create changeset for your changes
npm run changeset
Update package versions
npm run changeset:version
Release (build, test, and publish)
npm run release
Option 2: Manual Version ManagementIf changeset interactive mode fails:
Update CHANGELOG.md: Add entry to
packages/[package]/CHANGELOG.md##0.x.x###Patch Changes- Your change description here
Update package.json: Increment version in
packages/[package]/package.jsonCommit changes: Commit both CHANGELOG.md and package.json updates
Build and test:
npm run build && npm run testPublish:
npm run changeset:publishorcd packages/[package] && npm publish
Alternative individual operations:
# Check what would be publishednpm run changeset:publish -- --dry-run# Manually publish packages (after changeset:version)npm run changeset:publish
Note:npm run release executesbuild → test → publish in sequence. If any step fails, the process stops and packages won't be published.
This project is open-sourced under theMIT License.
This project is based onthe work referenced below. Without the contributions of these pioneers, I would not have been able to create it.
About
AITuber OnAir Toolkit
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.
