Your MacBook has feelings. And it's not afraid to express them.
Every hardware event triggers a personality response:
- π Slap it β it complains (and remembers)
- π Plug in USB β it gets curious
- β‘ Connect charger β it sighs with relief
- πͺ« Battery dying β it begs for its life
- πΆ WiFi drops β existential crisis
- π§ Plug in headphones β "just the two of us now"
Your MacBook's mood evolves based on how you treat it. Slap it too much? It gets grumpy. Charge it? It forgives you. Maybe.
Download from releases, or build from source:
go install github.com/dinakars777/moody@latest
sudo cp "$(go env GOPATH)/bin/moody" /usr/local/bin/moody# Start moody (SFW mode)
sudo moody
# NSFW mode π
sudo moody --spicy
# Show live mood dashboard
sudo moody --dashboard
# List available sensors
sudo moody --list-sensors
# Adjust slap sensitivity
sudo moody --min-amplitude 0.15
# Fast mode (quicker detection, shorter cooldown)
sudo moody --fast
# Silent mode (disables TTS voice, text only)
sudo moody --silent
# Verbose logging
sudo moody --verbose- macOS on Apple Silicon (M2+ or M1 Pro)
sudo(for accelerometer access)- Go 1.22+ (if building from source)
- Reads accelerometer data via IOKit HID to detect physical impacts
- Monitors USB, power, battery, and lid state via IOKit
- Monitors WiFi and Headphone connections using
networksetupandCoreAudio - Maintains a 3-axis mood engine (happiness, energy, trust)
- Mood persists to
~/.moody/state.jsonβ your MacBook remembers - Selects personality-appropriate responses based on current mood
- Speaks the response aloud using macOS Text-to-Speech (TTS) with mood-specific voices
Your MacBook's mood shifts with every event:
| Mood | Trigger | Personality |
|---|---|---|
| π Happy | Charged, USB in | Cheerful, friendly |
| π€ Grumpy | Slapped, charger removed | Sarcastic, snippy |
| π° Anxious | Battery low, WiFi lost | Panicky, desperate |
| π Dramatic | Multiple negative events | Over-the-top theatrical |
| π Dead Inside | Sustained abuse | Nihilistic, apathetic |
# List installed packs
moody --packs
# Use NSFW pack
sudo moody --spicyBuilt-in packs:
en_defaultβ Passive-aggressive office coworker (SFW)en_spicyβ Your MacBook is... very friendly (NSFW π)
| Flag | Description |
|---|---|
--spicy |
Enable NSFW voice pack |
--pack <NAME> |
Use specific voice pack |
--dashboard |
Show live TUI mood dashboard |
--mute |
Track mood without responses |
--silent |
Disable TTS audio (text output only) |
--fast |
Faster polling, shorter cooldown |
--min-amplitude <F> |
Accelerometer sensitivity (default: 0.05) |
--cooldown <MS> |
Min ms between responses (default: 750) |
--no-accel |
Disable accelerometer |
--no-usb |
Disable USB sensor |
--no-power |
Disable power sensor |
--no-lid |
Disable lid sensor |
--no-wifi |
Disable WiFi sensor |
--no-headphones |
Disable headphone sensor |
--verbose |
Log all events |
--list-sensors |
Show available sensors |
--packs |
List voice packs |
Contributions welcome! Especially:
- More voice packs (languages, personalities)
- Display sensors
- Gordon Ramsay voice pack
- HAL 9000 voice pack
MIT
