This repository has no description
C# 47%
GDScript 19%
C++ 12%
TypeScript 8%
GDShader 6%
Shell 4%
3%
Nix <1%
C <1%
Python <1%

README.md

character #

CLI-first prototype for a headless chat-reactive VTuber that connects to stream.place.

Goal #

Take chat messages from stream.place, generate spoken replies, and drive a VTuber/avatar output stream with:

  • chat intake
  • LLM response generation
  • TTS audio output
  • avatar motion/expression events
  • video/audio composition suitable for live streaming

Architecture sketch #

stream.place chat (Jetstream / ATProto)
  -> bot runtime
  -> reply planner
  -> TTS provider
  -> avatar controller
  -> ffmpeg compositor / scene renderer
  -> WHIP/RTMP uplink

Current direction #

This repo starts with a headless-friendly prototype:

  • TypeScript runtime via bun
  • stream.place chat adapter stub
  • Gemini Live-compatible TTS/voice adapter interface
  • avatar event bus for motion/expression cues
  • local dev scripts for simulation and testing

Open questions #

  • best headless avatar renderer on Linux
  • whether to use browser-based canvas capture or native renderer
  • whether Gemini Live should handle both reply generation and speech output
  • whether stream.place posting should use ATProto OAuth directly or a simpler bot identity path

OpenVT path #

This repo now includes a simple OpenVT-oriented setup path:

  • scripts/openvt-setup.sh clones upstream OpenVT and initializes submodules
  • docs/openvt-setup.md explains the constraints and manual steps
  • scripts/openvt-run-notes.sh prints the expected local streaming workflow

Run:

chmod +x scripts/openvt-setup.sh scripts/openvt-run-notes.sh
./scripts/openvt-setup.sh
./scripts/openvt-run-notes.sh

Wayland / WayVNC launch #

If the machine already has a remote Wayland session, launch OpenVT into that session with:

devenv shell -- ./scripts/openvt-wayland-launch.sh

See docs/wayvnc-openvt.md.