All-in-One Toolkit for Building AI Characters
Notice: This project has adopted a custom license from version v2.0.0 onwards. If you are using it for commercial purposes, please check the Terms of Use section.
🌟 Demo Site 🌟
🚀 Promotion Site 🚀
AITuberKit is an open-source toolkit that allows anyone to easily build a web application for chatting with AI characters. It supports a wide range of AI services, character models, and voice synthesis engines, with high customization options centered around dialogue and AITuber streaming functionality, along with various extension modes.
For detailed usage and configuration instructions, please visit the Documentation Site.
- Easy conversation with AI characters using API keys for various LLMs
- Multimodal support for recognizing camera footage and uploaded images to generate responses
- Retention of recent conversations as memory
- RAG-based long-term memory that utilizes past conversations as context
- Retrieves YouTube stream comments for automatic responses from AI characters
- Choose between YouTube API / OneComme (WanKome) as comment source
- Conversation continuation mode allows spontaneous speech even without comments
- Customizable comment retrieval interval and user display name
- Demo Terminal Mode: Fullscreen display for digital signage. Supports passcode authentication, NG word filter, and input length restrictions
- Presence Detection: Automatic visitor detection via camera face detection. Supports automatic greeting and farewell phrase playback
- Idle Mode: Characters speak automatically when conversation pauses. Supports three sources: fixed phrases, time-based greetings, and AI-generated content
- Realtime API: Low-latency dialogue and function execution using OpenAI's Realtime API
- Audio Mode: Natural voice dialogue utilizing OpenAI's Audio API features
- Reasoning Mode: Display AI's thinking process and configure reasoning parameters
- External Integration Mode: Connect with server applications via WebSocket for advanced functionality including text and image exchange
- Slide Mode: Mode where AI characters automatically present slides
- Message Reception Function: Accept text and images from external sources through a dedicated API to make AI characters speak
- 3D Models: VRM files (supports pose and gesture control via motion tags)
- 2D Models: Live2D files (Cubism 3 and later)
- Motion PNGTuber: Video-based character display (MotionPNGTuber)
- OpenAI
- Anthropic
- Google Gemini
- Azure OpenAI
- Groq
- Cohere
- Mistral AI
- Perplexity
- Fireworks
- LM Studio
- Ollama
- Dify
- xAI
- DeepSeek
- OpenRouter
- VOICEVOX
- Koeiromap
- Google Text-to-Speech
- Style-Bert-VITS2
- AivisSpeech
- Aivis Cloud API
- Cartesia
- GSVI TTS
- ElevenLabs
- OpenAI
- Azure OpenAI
- Node.js: 24.x
- npm: ^11.6.2
- Clone the repository locally.
git clone https://github.com/tegnike/aituber-kit.git- Open the folder.
cd aituber-kit- Install packages.
npm install- Create a .env file as needed.
cp .env.example .env- Start the application in development mode.
npm run dev- Open the URL: http://localhost:3000
After the initial setup is complete, you can launch by simply double-clicking the launch script.
- Windows: Double-click
LAUNCH.bat - macOS: Double-click
LAUNCH.command(if you don't have execution permission, runchmod +x LAUNCH.command)
For detailed configuration and usage instructions, please visit the Documentation Site.
- Create a
.envfile.
cp .env.example .env- Start with Docker Compose.
docker compose up -d- Open the URL: http://localhost:3000
To stop:
docker compose down-
Create a Vercel account and import your GitHub repository.
-
Set environment variables in the Vercel dashboard. Add the necessary API keys (e.g.,
OPENAI_API_KEY). Refer to.env.examplefor available environment variables. -
Deployment is automatically executed when pushing to the Production Branch in your project settings (default is the
mainbranch).
Deployment to Cloudflare Workers is supported. Use OpenNext to run the Next.js application on Cloudflare Workers.
-
Install the Wrangler CLI and log in to your Cloudflare account.
-
Change the project name in
wrangler.jsoncas needed. -
Set environment variables.
- Frontend settings (
NEXT_PUBLIC_*): Write them in the.envfile. They are embedded in the client code at build time. - Server-side API keys (
OPENAI_API_KEY, etc.): Set them as Wrangler secrets.
- Frontend settings (
cp .env.example .env
# Edit .env to set NEXT_PUBLIC_* values
# Set server-side API keys as Wrangler secrets
npx wrangler secret put OPENAI_API_KEYRepeat wrangler secret put for each required API key.
- Verify operation with local preview.
npm run preview:cloudflare- Deploy to production.
npm run deploy:cloudflareNotes:
NEXT_PUBLIC_RESTRICTED_MODE=trueis automatically set at build time, disabling file system APIs. Asset lists are provided from manifests generated at build time.- Files exceeding 25MB or with non-ASCII filenames under
public/are automatically excluded from deployment.
This repository is intended for personal use and development in local environments, as well as commercial use with appropriate security measures. However, please note the following when deploying to a web environment:
- API Key Handling: The system is designed to call AI services (OpenAI, Anthropic, etc.) and TTS services via a backend server, so proper management of API keys is necessary.
When using in a production environment, we recommend one of the following approaches:
- Backend Server Implementation: Manage API keys on the server side to avoid direct API access from clients
- Appropriate Explanation to Users: If users are using their own API keys, explain security considerations to them
- Access Restriction Implementation: Implement appropriate authentication and authorization mechanisms as needed
We are seeking sponsors to continue development.
Your support greatly contributes to the development and improvement of AITuberKit.
Plus multiple private sponsors
This project was developed as a fork of ChatVRM published by pixiv Inc. We deeply appreciate pixiv Inc. for publishing such a wonderful open-source project.
Thank you for your interest in contributing to the development of AITuberKit. We welcome contributions from the community.
If you find a bug or have an idea for a new feature, please let us know through the Issues page on GitHub.
When creating an issue, including the following information will help us respond smoothly:
- Detailed description of the problem or new feature
- Steps to reproduce (for bugs)
- Expected behavior vs. actual behavior
- Environment details (browser, OS, Node.js version, etc.)
- Screenshots or videos (if possible)
If you want to improve code or add new features, please make changes in your forked repository and create a pull request.
- Focus on one feature or fix per pull request.
- Please describe the changes and the reason for them in the pull request description.
- Always set the target branch to
develop. - Don't worry about conflicts - the development team will handle them.
This project has adopted a custom license from version v2.0.0 onwards.
-
Free Use
- Free for personal use, educational purposes, and non-profit purposes that are not for commercial purposes.
-
Commercial License
- A separate commercial license is required for commercial use.
- For details, please check About the License.
This project accepts paid priority implementation of features.
- Features requested by companies or individuals can be implemented with priority.
- Implemented features will be published as part of this OSS project.
- Fees are individually quoted based on the complexity of the feature and the time required for implementation.
- This priority implementation is separate from the commercial license. If you want to use the implemented features for commercial purposes, you need to obtain a commercial license separately.
For details, please contact support@aituberkit.com.

