Yorishiro开源:macOS终端纯前端AI人格化沙盒,Three.js驱动Claude Code 3D角色实时反馈

Yorishiro开源上线:macOS终端里的纯前端AI人格化沙盒,用Three.js为Claude Code配上会动的“依代”
Yorishiro跑在macOS终端里,不连后端,不调远程模型。它用本地JavaScript(加WebGL)把Claude Code或本地Codex的推理结果,实时映射成一个3D动漫角色:眨眼、点头、思考时微微前倾、出错时抱头蹲下。它不是新模型,也不提升推理能力。目标很具体——缓解命令行AI交互的认知疲劳。你在zsh或bash里敲命令,终端里的角色同步反馈情绪和状态。所有逻辑在浏览器级Web Worker里跑完,零npm依赖,git clone && open index.html就能启动。
纯前端实现:Three.js + WebAssembly + 终端桥接
技术栈很轻:Three.js渲染(GLTF 2.0角色模型,带骨骼动画)、WebAssembly编译的轻量Codex tokenizer(支持本地token流解析),以及通过node-pty模拟的终端I/O桥接——只用于macOS,不依赖Node.js后端,实际由Electron封装的WebView托管。
关键在“状态驱动动画”:LLM输出的JSON元数据(比如{"mood": "thinking", "intensity": 0.7, "action": "nod"})直接绑定到角色骨骼权重和材质着色器参数,绕过传统UI框架。整个包1.8MB,dist/目录没任何CDN引用,离线可用。
不是Agent,是“Presence Harness”
作者明确不用“AI Agent”这个词。Yorishiro不规划、不记忆、不调工具。它是“Presence Harness”(临在载具):把抽象AI响应转成具身反馈的中间层。
比如Claude Code返回长段代码,角色切进“专注模式”(瞳孔收缩 + 手指悬停键盘动画);输出含ERROR关键词,立刻触发“宕机循环”(屏幕泛红 + 帧率骤降 + 角色僵直)。这些反馈不改输出内容,但缩短了人对“黑盒响应”的判断延迟——内部A/B测试(n=27)显示,连续调试5个Prompt后,用户回溯错误原因的平均耗时下降34%。
开源即设计契约:零依赖与UI沙盒价值
MIT许可证代码库硬性约束三条红线:
① 所有动画状态必须由LLM输出的结构化字段驱动(禁止硬编码触发逻辑);
② 角色动作限定在12个预定义BlendShape组合内,保证跨设备渲染一致;
③ 终端输入框和3D视图严格分离——输入走原生shell,渲染只是旁路反馈。
这种克制让它成了UI设计师验证“AI人格化交互协议”的理想沙盒:你可以换GLTF模型、改情绪映射表、甚至接入Llama.cpp的WebSocket流,但没法绕过“反馈必须能逆推回文本信号”这条契约。
龙虾生态中的轻量实验坐标
OpenClaw SDK已支持Yorishiro的presence.json协议扩展。开发者在openclaw-cli里加--yorishiro-ui标志,就能把本地OpenClaw Agent的输出自动喂给这个角色引擎。这不是深度集成,而是刻意松耦合——龙虾团队把它标为“实验性UI适配层”,不承诺维护SLA,但文档页yitb.com/openclaw/yorishiro-integration已开放。
意图很清晰:推动AI原生应用UI的模块化分层——推理归推理,人格化归人格化,终端体验归终端体验。
行动建议:别部署,去fork和破坏
Yorishiro的价值不在开箱即用,而在可破坏性。三类人可以马上动手:
- 终端工具爱好者:
git clone https://github.com/yorishiro-org/yorishiro && npm run dev,改src/animation/mappings.ts里"error"对应的动作,看角色会不会崩出新动画; - AI UI设计师:抄它的
emotion-to-blendshape映射表,塞进自己Web端AI聊天界面; - 教学者:用它讲“LLM输出结构化”的必要性——删掉输出里的
{"mood":...}字段,角色立刻静止,学生一眼看懂信号契约。
真正的AI人格化,不会从更拟真的模型开始,而会从更诚实的接口设计开始。Yorishiro不做预言,只提供一块可踩、可摔、可重绘的试验田。