skills-templates/lobe-vidol/SKILL.md
LobeVidol - Virtual idol creation platform with MMD dance support, VRM character customization, multi-provider LLM integration, and interactive 3D conversations
npx skillsauth add enuno/claude-command-and-control lobe-vidolInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
LobeVidol (Vidol Studio) is an open-source virtual idol creation platform that enables anyone to create, customize, and interact with 3D virtual characters. It combines conversational AI with MMD (MikuMikuDance) animation support, VRM model customization, and multi-provider LLM integration for immersive virtual idol experiences.
Key Value Proposition: Create virtual idols with exquisite UI design, MMD dance choreography, VRM character customization, and seamless AI-powered conversations - all through an accessible web interface or self-hosted deployment.
┌─────────────────────────────────────────────────────────────────┐
│ LobeVidol / Vidol Studio │
│ (Next.js + TypeScript) │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ AI Providers │ │ Characters │ │ Dances │
├───────────────┤ ├───────────────┤ ├───────────────┤
│ • OpenAI │ │ • VRM models │ │ • MMD/VMD │
│ • Claude │ │ • Personality │ │ • PMX stages │
│ • Gemini │ │ • Touch resp. │ │ • Choreograph │
│ • Ollama │ │ • Voice (TTS) │ │ • Mixamo lib │
│ • 20+ more │ │ • Marketplace │ │ • Marketplace │
└───────────────┘ └───────────────┘ └───────────────┘
│ │ │
└─────────────────────┼─────────────────────┘
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ 3D Engine │ │ Features │ │ Deployment │
├───────────────┤ ├───────────────┤ ├───────────────┤
│ • Three.js │ │ • Text chat │ │ • Vercel │
│ • three-vrm │ │ • Video chat │ │ • Self-host │
│ • mmd-parser │ │ • TTS/STT │ │ • PWA │
│ • Animations │ │ • Streaming │ │ • Docker │
└───────────────┘ └───────────────┘ └───────────────┘
| Metric | Value | |--------|-------| | GitHub Stars | 887+ | | Forks | 122+ | | Contributors | Multiple | | Total Commits | 865+ | | Primary Language | TypeScript (99.5%) | | License | Apache 2.0 |
| Provider | Type | Notes | |----------|------|-------| | OpenAI | Cloud | GPT-4, GPT-3.5 series | | Anthropic | Cloud | Claude 3.5, Claude 3 | | Google Gemini | Cloud | Gemini Pro, Flash | | Azure OpenAI | Cloud | Enterprise option | | Ollama | Local | Run models locally | | Groq | Cloud | Fast inference | | DeepSeek | Cloud | Coding focused | | Moonshot AI | Cloud | Chinese provider | | OpenRouter | Cloud | Multi-model gateway | | Together AI | Cloud | Open source models | | Perplexity | Cloud | Search-enhanced | | Amazon Bedrock | Cloud | AWS managed | | Baichuan | Cloud | Chinese provider | | MiniMax | Cloud | Chinese provider | | Zhipu AI | Cloud | Chinese provider | | Tongyi Qianwen | Cloud | Alibaba Cloud | | Tencent Hunyuan | Cloud | Chinese provider | | iFlytek Xinghuo | Cloud | Chinese provider | | Wenxin Qianfan | Cloud | Baidu | | SiliconCloud | Cloud | Cloud service | | Fireworks AI | Cloud | Fast inference | | GitHub Models | Cloud | GitHub integration |
# Clone repository
git clone https://github.com/lobehub/lobe-vidol.git
cd lobe-vidol
# Install dependencies (Bun recommended)
bun install
# Or with npm
npm install
# Start development server
bun dev
# Or with npm
npm run dev
Open http://localhost:3000 in your browser.
Try without installation: https://vidol.lobehub.com
Create .env.local file:
# OpenAI Configuration
OPENAI_API_KEY=sk-xxx
OPENAI_PROXY_URL= # Optional proxy
# Azure OpenAI (alternative)
AZURE_API_KEY=xxx
AZURE_ENDPOINT=https://xxx.openai.azure.com
# Anthropic Claude
ANTHROPIC_API_KEY=sk-ant-xxx
# Google Gemini
GOOGLE_API_KEY=xxx
# Ollama (local models)
OLLAMA_PROXY_URL=http://localhost:11434
# OpenRouter (multi-provider)
OPENROUTER_API_KEY=sk-or-xxx
# Voice Services
OPENAI_TTS_API_KEY=sk-xxx # For TTS
EDGE_TTS_ENABLED=true # Microsoft Edge TTS
LobeVidol uses VRM (Virtual Reality Model) format for 3D characters:
Getting VRM Models:
// Character configuration structure
interface Character {
// Basic Info
name: string;
avatar: string; // Image URL
description: string;
greeting: string; // Initial message
gender: 'male' | 'female' | 'other';
category: string;
// AI Personality
systemRole: string; // LLM system prompt
// Voice Settings
tts: {
enabled: boolean;
voice: string; // Voice ID
speed: number;
pitch: number;
};
// 3D Model
model: {
url: string; // VRM file URL
scale: number;
position: [number, number, number];
};
// Touch Responses
touch: {
head: string[]; // Responses when head touched
face: string[];
arm: string[];
chest: string[];
leg: string[];
};
}
The systemRole field defines the character's personality:
You are Luna, a cheerful virtual idol who loves singing and dancing.
## Personality Traits
- Energetic and optimistic
- Loves discussing music and dance
- Speaks with enthusiasm and occasional cute expressions
- Always supportive and encouraging
## Speech Patterns
- Uses casual, friendly language
- Occasionally adds "~" at end of sentences
- Expresses emotions openly
## Background
- A rising virtual idol from Vidol Studio
- Dreams of performing at major virtual concerts
- Enjoys interacting with fans and learning new dances
Configure how characters respond to interaction:
{
"touch": {
"head": [
"Ehehe~ That tickles!",
"Are you petting me? How sweet~",
"My hair took forever to style!"
],
"face": [
"W-what are you doing?",
"My cheeks are getting warm...",
"Do I have something on my face?"
],
"arm": [
"Want to hold hands?",
"My arm? Is something there?",
"Let's dance together!"
]
}
}
LobeVidol supports MikuMikuDance (MMD) content:
Supported Formats:
Prepare Files:
Upload via UI:
Test Dance:
Mixamo Integration:
Dance Presets:
interface Stage {
name: string;
model: string; // PMX file URL
scale: number;
lighting: {
ambient: string; // Hex color
directional: string;
intensity: number;
};
background: {
type: 'color' | 'image' | 'video';
value: string;
};
}
Supported TTS Providers:
| Provider | Quality | Languages | Cost | |----------|---------|-----------|------| | OpenAI Audio | High | Multi | Paid | | Microsoft Edge | High | Multi | Free | | Browser TTS | Medium | Varies | Free |
Configuration:
# OpenAI TTS
OPENAI_TTS_API_KEY=sk-xxx
OPENAI_TTS_MODEL=tts-1-hd
# Edge TTS (free)
EDGE_TTS_ENABLED=true
EDGE_TTS_VOICE=en-US-AriaNeural
Enable voice input for conversations:
# OpenAI Whisper
OPENAI_STT_API_KEY=sk-xxx
OPENAI_STT_MODEL=whisper-1
# Browser STT (free)
BROWSER_STT_ENABLED=true
// Available voices (Edge TTS examples)
const voices = {
english: [
'en-US-AriaNeural', // Female, friendly
'en-US-GuyNeural', // Male, casual
'en-GB-SoniaNeural', // Female, British
],
japanese: [
'ja-JP-NanamiNeural', // Female, natural
'ja-JP-KeitaNeural', // Male, natural
],
chinese: [
'zh-CN-XiaoxiaoNeural', // Female, friendly
'zh-CN-YunxiNeural', // Male, narrator
]
};
Browse and download community characters:
Access MMD dance resources:
# Dockerfile
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:18-alpine AS runner
WORKDIR /app
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
EXPOSE 3000
CMD ["node", "server.js"]
# Build and run
docker build -t lobe-vidol .
docker run -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxx \
lobe-vidol
version: '3.8'
services:
lobe-vidol:
build: .
ports:
- "3000:3000"
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
restart: unless-stopped
| Resource | Minimum | Recommended | |----------|---------|-------------| | CPU | 2 cores | 4 cores | | RAM | 2 GB | 4 GB | | Storage | 5 GB | 20 GB | | Network | Broadband | Low latency |
LobeVidol supports Progressive Web App installation:
// POST /api/chat
interface ChatRequest {
messages: Array<{
role: 'user' | 'assistant' | 'system';
content: string;
}>;
model: string;
character?: string; // Character ID
stream?: boolean;
}
interface ChatResponse {
content: string;
model: string;
usage: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
}
// GET /api/characters
interface CharacterListResponse {
characters: Character[];
total: number;
}
// GET /api/characters/:id
interface CharacterResponse {
character: Character;
}
// POST /api/characters
interface CreateCharacterRequest {
name: string;
systemRole: string;
model: string; // VRM URL
// ... other fields
}
VRM Model Not Loading:
Error: Failed to load VRM model
Dance Animation Issues:
Error: VMD file parsing failed
API Connection Errors:
Error: Failed to connect to OpenAI
TTS Not Working:
Error: TTS initialization failed
3D Rendering:
Network:
Last Updated: 2026-01-13 Skill Version: 1.0.0 Source: https://github.com/lobehub/lobe-vidol
tools
MemPalace local-first AI memory system. Use when setting up persistent memory for Claude Code sessions, mining project files or conversation transcripts, querying past context, configuring MCP tools, managing the knowledge graph, or troubleshooting palace operations.
tools
LangSmith Python SDK — trace, evaluate, and monitor LLM applications. Covers @traceable decorator, trace context manager, Client API, evaluate() / aevaluate(), comparative evaluation, custom evaluators, dataset management, prompt caching, ASGI middleware, and pytest plugin.
development
LangGraph (Python) — build stateful, controllable agent graphs with checkpointing, streaming, persistence, interrupts, fault tolerance, and durable execution. Covers both Graph API (StateGraph) and Functional API (@entrypoint/@task).
development
LangGraph Graph API (Python) — build explicit DAG agent workflows with StateGraph, typed state, nodes, edges, Command routing, Send fan-out, checkpointers, interrupts, and streaming. Use when you need explicit control flow and graph topology.