
Okay so this weekend I built a vibe machine and honestly? It slaps. ⨠Meet
mood-dj ā a tiny agent that reads how you're feeling (in literally any
language) and spins you back a mood emoji plus a little playlist-style hype line.
Felt cute, might translate your feelings today. š
mood-dj ā a tiny agent that reads how you're feeling (in literally any
language) and spins you back a mood emoji plus a little playlist-style hype line.
Felt cute, might translate your feelings today. š
1
"estoy agotada hoy" š®āšØ āāā¶ š« "Cozy lo-fi and a warm blanket. You've got this. š"
What is it / who's it for? š¤
It's a pocket DJ for your mood! You type a feeling ā Spanish, Hindi, French,
emoji-speak, whatever's in your head ā and mood-dj figures out what you said,
reads the mood underneath it, and hands you a matching emoji + a one-line vibe.
It's for anyone who wants a tiny boost between tasks. Not a therapist, not a
productivity app. A toy. A smile. A little "hey, you've got this" from your
terminal. š¶
emoji-speak, whatever's in your head ā and mood-dj figures out what you said,
reads the mood underneath it, and hands you a matching emoji + a one-line vibe.
It's for anyone who wants a tiny boost between tasks. Not a therapist, not a
productivity app. A toy. A smile. A little "hey, you've got this" from your
terminal. š¶
The best part is you don't have to think in English for it to get you. Say it
your way, the DJ still reads the room. š
your way, the DJ still reads the room. š
How'd I build it? š ļø
Two pieces, zero servers to babysit. That's the whole brief and I stuck to it.
Piece one: Flask š ā a cute little web app that runs right on your laptop.
You open
shimmers when it answers. No deploy, no bucket, no API Gateway, no
CloudFormation anywhere near this thing. Just
open.
You open
127.0.0.1:5099, you get a card with a background thatshimmers when it answers. No deploy, no bucket, no API Gateway, no
CloudFormation anywhere near this thing. Just
python app.py and the booth isopen.
Piece two: Amazon Translate š ā and THIS is the clever bit. When you type
your feeling, Translate auto-detects the language and flips it to English so the
DJ can read the mood. That's why you can type in your own language and still get
a vibe back ā the agent meets you where you are. The card even tells you which
language it heard, which is weirdly satisfying every single time.
your feeling, Translate auto-detects the language and flips it to English so the
DJ can read the mood. That's why you can type in your own language and still get
a vibe back ā the agent meets you where you are. The card even tells you which
language it heard, which is weirdly satisfying every single time.
For AWS, that's the entire footprint: Amazon Translate (
with auto-detect) via boto3, plus your own creds. You pay Translate's teeny
per-character cost ONLY when you actually spin a vibe. šøāš¤ Nothing idles.
Nothing bills while you sleep. First run asks two quick things (region + optional
profile), stashes them in
TranslateText,with auto-detect) via boto3, plus your own creds. You pay Translate's teeny
per-character cost ONLY when you actually spin a vibe. šøāš¤ Nothing idles.
Nothing bills while you sleep. First run asks two quick things (region + optional
profile), stashes them in
~/.mood-dj.ini, and never bugs you again.The delightful detail š
The one thing I obsessed over: mood-dj never yells at you. Not once. Even
when stuff breaks, you get a friendly card, never a scary stack trace. No creds?
ā it points you to
permission to go ask for. Everything arrives as a soft little card, in-character,
calm. š«¶
when stuff breaks, you get a friendly card, never a scary stack trace. No creds?
ā it points you to
aws configure. No Translate access? ā it names the exactpermission to go ask for. Everything arrives as a soft little card, in-character,
calm. š«¶
And the shimmer! When the vibe lands, the background does this gentle color
shift that matches the mood ā warm tones for cozy, cooler ones for calm. It's a
tiny thing but it makes the answer feel delivered, not just printed.
shift that matches the mood ā warm tones for cozy, cooler ones for calm. It's a
tiny thing but it makes the answer feel delivered, not just printed.
How do I know it worked? I threw curveballs at it. I typed
(Spanish for "I'm exhausted today") and it caught the language, read the tired
mood, and handed back a š« with "Cozy lo-fi and a warm blanket. You've got this."
Then I typed a flat English
Different languages, different moods, right read every time ā and the card told
me "heard: Spanish" so I could see it working. That little transparency plus
the shimmer is what turns a translate-call into something you actually want to
poke again. š
"estoy agotada hoy"(Spanish for "I'm exhausted today") and it caught the language, read the tired
mood, and handed back a š« with "Cozy lo-fi and a warm blanket. You've got this."
Then I typed a flat English
"meh" and got a totally different, lighter vibe.Different languages, different moods, right read every time ā and the card told
me "heard: Spanish" so I could see it working. That little transparency plus
the shimmer is what turns a translate-call into something you actually want to
poke again. š
Proof it works šø
- Repo: https://github.com/prabiswas1999/mood-dj
- Spin it:
pip install -r requirements.txt,python app.py, open127.0.0.1:5099
Screenshot:

Cleanup's a breeze 'cause it's just a script ā close it and it's gone. Want it
really gone?
really gone?
rm ~/.mood-dj.ini and delete the folder. Bye-bye booth! šNow go spin something. It slaps. š§š„
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article