-
-
Notifications
You must be signed in to change notification settings - Fork 0
Chibi
A voice-interactive AI companion, with a sentinel aspect over synguard's
security feed.
Chibi is a desktop companion: an animated avatar you can talk to. She listens
(speech-to-text), thinks (through an LLM backend), and speaks back (text-to-speech
in a "cute" voice). On SynapseOS her default brain is synapd — the same
local model the rest of the OS uses — so she works with no API keys and no cloud.
Her second job is security: she subscribes to synguard's verdict feed and
can surface threats out loud.
Upstream: velle999/chibi-llm. Packaged
for SynapseOS as chibi and shipped on the ISO.
chibiThe launcher exports CHIBI_LLM_BACKEND=synapd and points at synapd's socket,
so she talks through the OS's own model. Override to use Ollama instead:
CHIBI_LLM_BACKEND=ollama chibi| Piece | Role |
|---|---|
| STT |
faster-whisper (tiny model shipped on the ISO — she hears you with no network) |
| TTS |
piper with the en_GB-cori-medium voice, pitch-shifted via sox for the "cute" timbre; espeak-ng is the last-resort fallback |
| LLM |
synapd by default (llm_client.py), or Ollama |
| Sentinel | read-only subscriber to synguard's secfeed; the security aspect never writes |
| Avatar | pygame/SDL2 sprite renderer |
Python deps are vendored under /usr/lib/chibi/pydeps with pip --target
(not a venv — a venv bakes a build-time absolute path that breaks when installed
elsewhere); the launcher puts that dir on PYTHONPATH.
-
Silent and deaf with no error. ALSA's
defaultPCM must route to PipeWire, which is what thepipewire-alsapackage's/etc/alsa/conf.dsymlink does. Without itdefaultfalls back todmixon card 0 — and on a box whose card 0 is an HDMI-only GPU there is no device 0, so everyaplay/arecorddies and Chibi comes up mute.pipewire-alsais a hard dependency for this reason; do not drop it. - Text-only when you expected voice. The venv gives voice; system Python is silently text-only. The packaged build vendors the deps so this is handled, but a from-source run must use the right interpreter.
-
~/.local/binisn't on the synui session PATH — install launchers to/usr/bin(the package does). -
Three copies of every module. The upstream repo ships per-resolution app
trees; a fix applied to one copy but not the others drifts. The package builds
from the
1080x1920-linuxtree.
See also: synapd (her brain), synguard + kmod (her security feed), and Vibe (the coding-assistant sibling on the same model).
Using it
- Installation
- Updating
- Software
- Files
- Keybindings
- Commands
- Nix
- Gaming
- DaVinci Resolve
- Secure Boot
- Troubleshooting
Customising it
Components
Apps
Hacking on it