sensor-humor comedy sidekick for LLMs.
Mood-based personality, session-aware callbacks, running gags, roasts, heckles, and catchphrases — with Piper TTS voice integration.
Set mood
mood.set(style: "roast")
Roast
roast(target: "800-line god function")
Speak
voice_speak(mood: "roast") // Piper TTS
Features
Comedy engineering, not joke vending.
6 Moods
Dry, roast, chaotic, cheeky, cynic, zoomer — each with distinct voice, pacing, and personality anchor.
Session Memory
Running gags, recent bits ring buffer, catchphrase persistence. Callbacks to turn-47 bits still land on turn-120.
Voice Prosody
Piper TTS with 4 knobs per mood: length_scale, noise_scale, noise_w_scale, volume. Deadpan sounds flat. Chaotic sounds like a news anchor delivering nonsense.
Deterministic
JSON schema enforcement via Ollama, post-validation, retry on bad output, banned-pattern detection. Comedy with guardrails.
9 Tools
mood.set/get, comic_timing, roast, heckle, catchphrase.generate/callback, debug_status, session_reset — all inherit active mood.
Local-first
Ollama + qwen2.5:7b-instruct for comedy generation. Piper ONNX for voice. No cloud, no API keys, no latency.
Usage
Start Ollama
ollama run qwen2.5:7b-instruct Start MCP server
SENSOR_HUMOR_DEBUG=true npm start Set the mood
mood.set(style: "dry")
// -> { mood: "dry", description: "Deadpan, minimalist..." } Roast some code
roast(target: "global mutable state", context: "code")
// -> { roast: "Verdict: Shared hallucination.", severity: 4 } Rewrite with timing
comic_timing(text: "Build failed after 47 attempts", technique: "escalation")
// -> { rewrite: "Forty-seven builds. A new personal record." } Voice it
voice_speak({ text: result.roast, mood: "roast" })
// -> am_eric @ 1.05x, confident sarcastic energy