经 AI Skill Hub 精选评估,Live2D AI角色 获评「强烈推荐」。这款Agent工作流在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.0 分,适合有一定技术背景的用户使用。
Live2D AI角色 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
Live2D AI角色 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:npm 全局安装 npm install -g charivo # 方式二:npx 直接运行(无需安装) npx charivo --help # 方式三:项目依赖安装 npm install charivo # 方式四:从源码运行 git clone https://github.com/zeikar/charivo cd charivo npm install npm start
# 命令行使用
charivo --help
# 基本用法
charivo [options] <input>
# Node.js 代码中使用
const charivo = require('charivo');
const result = await charivo.run(options);
console.log(result);
# charivo 配置说明 # 查看配置选项 charivo --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export CHARIVO_CONFIG="/path/to/config.yml"
Build Live2D AI characters that talk, react, and look at you.
Charivo is a modular TypeScript framework for voice, expression, motion, gaze, and real-time conversation. It separates orchestration, stateful managers, browser-side clients, and server-side providers so you can swap pieces without rewriting the whole stack.
Live demos:

Documentation:
This snippet runs entirely in the browser with no server — paste it in, drop in an OpenAI API key, and it works. It uses the direct browser clients (@charivo/llm/openai, @charivo/tts/openai), which are for local development and demos only. They expose your API key in the browser, so for production use the server-mediated path instead (see Choosing Packages).
pnpm add \
@charivo/core \
@charivo/llm \
@charivo/tts \
@charivo/render @charivo/render-live2d
import { Charivo, CharivoError } from "@charivo/core";
import { createLLMManager } from "@charivo/llm";
import { createOpenAILLMClient } from "@charivo/llm/openai";
import { createTTSManager } from "@charivo/tts";
import { createOpenAITTSPlayer } from "@charivo/tts/openai";
import { createRenderManager } from "@charivo/render";
import { createLive2DRenderer } from "@charivo/render-live2d";
// Dev/demo only: this key is shipped to the browser. Never do this in production.
const OPENAI_API_KEY = "sk-...";
const canvas = document.querySelector("canvas")!;
const charivo = new Charivo();
const renderer = createLive2DRenderer({ canvas });
const renderManager = createRenderManager(renderer, {
canvas,
mouseTracking: "document",
});
await renderManager.initialize();
await renderManager.loadModel("/live2d/Hiyori/Hiyori.model3.json");
charivo.attachRenderer(renderManager);
charivo.attachLLM(
createLLMManager(createOpenAILLMClient({ apiKey: OPENAI_API_KEY })),
);
charivo.attachTTS(
createTTSManager(createOpenAITTSPlayer({ apiKey: OPENAI_API_KEY })),
);
charivo.setCharacter({
id: "hiyori",
name: "Hiyori",
personality: "Cheerful and helpful assistant",
voice: { voiceId: "marin" },
});
try {
await charivo.userSay("Hello");
} catch (error) {
if (error instanceof CharivoError) {
console.error(error.code, error.message);
}
throw error;
}
await charivo.dispose();
For a complete app with the production server-mediated path, see examples/web.
For local development you can skip the server route entirely. Swap the remote client for the direct Agents transport client and pass an OpenAI API key — it mints a short-lived realtime client secret in the browser (the same dev pattern as the Quick Start LLM/TTS clients). The rest of the wiring (renderer, character, startSession) is identical to the example above.
import { createRealtimeManager } from "@charivo/realtime";
import { createOpenAIRealtimeAgentsClient } from "@charivo/realtime/openai-agents";
// Dev/demo only: this key is exposed in the browser. Never ship it to production.
charivo.attachRealtime(
createRealtimeManager(
createOpenAIRealtimeAgentsClient({ apiKey: "sk-..." }),
),
);
This path is dev/testing only — the key is exposed in the browser. It also requires microphone permission, a secure context (localhost or https), and a user gesture (e.g. a button click) to start the session; the minted client secret is short-lived, so a fresh one is requested per session. For production, use the server-mediated @charivo/realtime/remote path shown above.
Use the remote/server-mediated path by default:
@charivo/llm/remote + a server route using a provider package such as @charivo/server/openai or @charivo/server/openclaw@charivo/tts/remote + @charivo/server/openai@charivo/stt/remote + @charivo/server/openai@charivo/realtime/remote + a server route using a provider package such as @charivo/server/openaiDirect browser packages are for local development, demos, and testing only:
@charivo/llm/openai@charivo/llm/openclaw@charivo/realtime/openai@charivo/realtime/openai-agents (dev apiKey mints the client secret in-browser)@charivo/tts/openai@charivo/stt/openaiBrowser-native packages are useful when you explicitly want no server dependency:
@charivo/tts/web@charivo/stt/webCore:
@charivo/core: orchestrator, event bus, domain typesLLM:
@charivo/llm: stateful conversation manager@charivo/llm/remote: browser client for server API routes@charivo/llm/openai: direct OpenAI browser client, dev/testing only@charivo/llm/openclaw: direct OpenClaw browser client, dev/testing only@charivo/llm/stub: canned responses for tests and demos@charivo/server/openai: server-side OpenAI provider exports@charivo/server/openclaw: server-side OpenClaw provider exportsTTS:
@charivo/tts: TTS session manager and lip-sync coordination@charivo/tts/remote: browser player for server TTS routes@charivo/tts/openai: direct OpenAI browser player, dev/testing only@charivo/tts/web: Web Speech API player@charivo/server/openai: exports createOpenAITTSProvider(...)STT:
@charivo/stt: STT session manager and recording helper@charivo/stt/remote: browser transcriber for server STT routes@charivo/stt/openai: direct OpenAI browser transcriber, dev/testing only@charivo/stt/web: Web Speech API transcriber@charivo/server/openai: exports createOpenAISTTProvider(...)Realtime:
- @charivo/realtime: provider-agnostic realtime manager, tool registry, typed state, and session config helpers Supports explicit updateSession(...) session patching without a reconnect. - @charivo/realtime-avatar: optional avatar tool definitions and result projector bridge - @charivo/realtime/remote: adapter-dispatched browser client for server realtime routes - @charivo/realtime/openai-agents: OpenAI Agents SDK realtime transport client and adapter - @charivo/realtime/openai: legacy low-level OpenAI realtime transport client and adapter - @charivo/server/openai: exports createOpenAIRealtimeProvider(...)
Rendering:
@charivo/render: render manager, mouse tracking, lip-sync bridge@charivo/render-live2d: Live2D Cubism renderer@charivo/render/stub: console renderer for tests and demos高质量的开源AI工作流,支持多种功能
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
AI Skill Hub 点评:Live2D AI角色 的核心功能完整,质量优秀。对于自动化工程师和运维人员来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | charivo |
| 原始描述 | 开源AI工作流:Interactive Live2D AI characters — modular TypeScript framework for LLM, TTS, ST。⭐11 · TypeScript |
| Topics | Live2DAITypeScriptLLMTTSST |
| GitHub | https://github.com/zeikar/charivo |
| License | MIT |
| 语言 | TypeScript |
收录时间:2026-06-24 · 更新时间:2026-06-24 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端