Inspiration
We've all had that moment where the brain knows what needs to get done but can't pick a lane. Ten different thoughts competing at once. Urgency, guilt, avoidance, self-criticism, all firing together.
We came across Internal Family Systems therapy, which treats those competing thoughts as "parts" of your mind, each one trying to protect you. The urgency isn't irrational. The avoidance isn't laziness. But when they all fire at the same time, you freeze. So we thought: what if you could actually see those parts as characters on a stage, talking about your situation, and then someone steps in and tells you the one thing to do next?
What It Does
You open the app and do a brain dump. Type or speak everything that's overwhelming you. No structure needed.
An AI Casting Director picks 3 to 5 inner voices that are most active. Maybe The Firefighter because of deadlines. Maybe The Spy because of a vague email from your boss. Each one is a pixel-art character that walks onto a stage and delivers one specific line about your situation out loud through text-to-speech. You can tap any character to keep talking.
Then the Moderator shows up. Not a therapist, a triage nurse. It gives you one best move under 5 minutes, what can wait, what not to do, and a draft message you can copy-paste. Before and after, you rate your overwhelm so the app tracks your clarity shift over time.
How We Built It
The backend is a multi-agent pipeline on Claude. Casting Director, characters, and Moderator are separate agents, all using LangChain with Zod schemas for structured output. The Casting Director writes a "casting note" for each character explaining why it was activated. That note turned out to be the key to getting specific, grounded responses instead of generic advice.
Character agents run in parallel, each with its own personality prompt and voice quirks. Voice input goes through OpenAI Whisper, character speech through ElevenLabs with per-character tuning. Frontend is Next.js 16 with Framer Motion for stage animations. Supabase handles auth and persistence with row-level security. Each character has its own folder with sprite sheets and a personality JSON that defines everything about it.
Challenges
Getting characters to say something useful about your actual situation instead of sounding like a motivational poster. The casting note system fixed that. Voice consistency across 15 characters was another one. We had to define concrete speech patterns, not just personality descriptions, or they all blurred together. The follow-up chat also had a drift problem where characters would break character after a few messages, which we solved by feeding the full personality prompt into every call and capping conversations.
What We Learned
Structured output changes everything in multi-agent systems. The difference between a gimmick and something useful is specificity. Characters that reference your actual tasks feel like mirrors. Characters that speak in generalities feel like fortune cookies. A small architectural choice like the casting note made the entire product work.
Built With
- Anthropic Claude (Sonnet 4 + Haiku 4.5)
- LangChain
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS
- Framer Motion
- Supabase (Auth + PostgreSQL)
- OpenAI Whisper
- ElevenLabs TTS
- Zod
- Vercel
Note From The Team
Audio from the video is not working, but the Characters have unique Voices. Try it out in our Website!
Built With
- claude
- elevenlabs
- langchain
- next.js
- supabase
- tailwind
- typescript
- vercel


Log in or sign up for Devpost to join the conversation.