Saathi — मन का साथी
A Multilingual AI Companion for Mental Wellness in India
💡 Inspiration — The Problem That Shouldn't Exist
It's 2 AM in a hostel room in Patna. A 19-year-old engineering student types into Google: "mujhe lagta hai main kisi kaam ka nahi hoon." (I feel like I'm worthless.)
Google returns WebMD articles — in English. The student doesn't know the word "depression." They don't have ₹2,000 for a therapist. Their parents would say "sab dimaag mein hai" (it's all in your head). Their friends would say "chill kar, sab theek ho jayega." So they close the tab. And the feeling stays.
This isn't a hypothetical. This is 150 million Indians who need mental health support but will never receive it.
The numbers tell a devastating story:
- India has 0.75 psychiatrists per 100,000 people. WHO recommends 3. We're at one-quarter of the minimum.
- 80% of Indians with mental health conditions receive no treatment at all (Lancet Psychiatry, 2020).
- Student suicides in India crossed 13,000 in 2022 (NCRB data) — one every 42 minutes.
- The average Indian who does seek help waits 17 months from first symptom to first appointment.
- Language barrier: Most mental health resources are in English. India has 22 official languages, and only 10% of the population is comfortable in English.
But here's what breaks our heart the most: the infrastructure exists. Tele-MANAS runs a 24×7 free helpline in 20+ languages. NIMHANS has world-class psychiatry departments. iCall at TISS offers affordable counseling. The problem isn't that help doesn't exist — it's that the 19-year-old in Patna doesn't know it exists, can't access it in Hindi, and is too ashamed to ask.
Saathi was born from a simple belief: the first step to mental wellness isn't a clinic appointment — it's a conversation in your own language, without judgment, without cost, without a waitlist.
We didn't build Saathi to replace therapists. We built it because that student in Patna deserves a first conversation — in Hindi — before they ever need one.
🔧 What Saathi Does — Five Doors to the Same Room
Saathi is not a chatbot. It's not a therapy app. It's a privacy-first, multilingual AI companion — a mental health literacy and first-mile access layer for India.
It operates across 5 integrated modules, each ethically bounded, each with crisis safeguards, each working natively in 7 Indian languages: English · हिन्दी · বাংলা · தமிழ் · తెలుగు · मराठी · اردو.
💬 Module 1 — Saathi Chat (Your First Conversation)
The core: a warm, non-clinical conversational companion that covers the full spectrum of mental health — not just depression.
- Anxiety & panic attacks — "My heart races before every meeting"
- Academic burnout — "I can't study anymore, JEE is killing me"
- Grief & loss — "I lost my father last month"
- Loneliness — "I moved to a new city and have no friends"
- Relationship distress — "My partner keeps putting me down"
- Sleep issues, OCD awareness, caregiver burnout, substance use concerns...
Saathi doesn't just listen — it responds with evidence-based coping strategies (4-7-8 breathing, behavioral activation, journaling prompts, social connection nudges) in the user's language.
Student Mode: A toggle that transforms Chat into a CBT-informed stakes coach — trained specifically for Indian academic pressure. Exam anxiety before JEE. Placement interview nerves. Viva preparation. Post-result processing. Parental expectation management. Because "mental health for students" isn't a separate problem — it's the same problem with a hostel room backdrop.
City-based resource finder: User types a city → Saathi returns 3-5 verified mental health resources from a curated database of 25 Indian cities (NIMHANS branches, AIIMS psychiatry, government hospitals, telemedicine platforms, NGO counseling centers). Unlisted cities get national helpline numbers + nearest major city suggestions. No external API calls — zero latency, zero failure risk.
⚖️ Module 2 — Legal Aid (Because Mental Health Is Also Freedom from Harm)
Most mental health apps stop at "talk about your feelings." But for millions of Indians, the source of their distress isn't chemical — it's someone harassing them, abusing them, or stalking them. And they don't know what legal protections they have.
Saathi's Legal Aid module maps real scenarios to real laws:
- Stalking → IPC 354D / BNS 78 → step-by-step FIR filing guide
- Workplace harassment → PoSH Act 2013 → Internal Complaints Committee process
- Domestic violence → PWDV Act 2005 → protection orders + shelter homes
- Cyberstalking → IT Act § 66E → Cyber Crime portal (1930)
- Dowry harassment → IPC 498A / BNS 86
For each scenario, Saathi:
- Identifies the applicable IPC/BNS sections from a curated dataset of 19 verified sections
- Generates a structured, ready-to-file FIR complaint letter with all legally required elements
- Warns about IPC 182 / BNS 217 (penalty for false FIR) — so users take the process seriously
- Routes active physical danger to 112 / 100 / 1091 before showing any legal information
- Routes complex cases to NALSA (15100) for free legal aid
Ethics framing: Saathi explicitly states it is NOT a lawyer. Legal information is curated from public-domain Ministry of Home Affairs and NALSA sources. Complex cases are always escalated.
📓 Module 3 — Thought Diary (Teaching You the Vocabulary for Your Own Thoughts)
Based on Cognitive Behavioral Therapy (CBT) — the single most evidence-based psychotherapy approach. But CBT self-help books are ₹800 and in English. Saathi makes it free and multilingual.
How it works:
- User describes a situation that's bothering them — in their language
- Claude analyzes the entry using a structured JSON schema (validated by Pydantic v2 with one-shot retry)
- Returns: identified cognitive distortions (catastrophizing, mind-reading, all-or-nothing thinking, fortune-telling, emotional reasoning, should-statements...), the automatic thought behind each, and a gentle reframed perspective
- Each distortion is shown as an educational card — teaching users CBT vocabulary they can carry beyond the app
Clinical screeners (PHQ-9 for depression, GAD-7 for anxiety) — the same validated instruments used by real clinicians — are embedded directly in the module. No diagnosis given. Just a score with severity interpretation and a recommendation to discuss with a professional.
Daily check-ins track mood (1-10), sleep hours, and stress levels — building a longitudinal picture the user can review.
📊 Module 4 — My Patterns (The Mirror You Didn't Know You Needed)
Raw data is invisible. Patterns are powerful. My Patterns takes everything from the Thought Diary and surfaces what the user can't see themselves:
- Distortion frequency chart — "You've catastrophized 12 times this week, mostly around work deadlines"
- Mood distribution donut — visual breakdown of emotional states across entries
- Check-in trend lines — mood, sleep, and stress plotted over time
- PHQ-9 / GAD-7 score timeline — how screener scores evolve across attempts
And then it goes further:
- 🎵 Song recommendations — AI-powered, personalized, drawing from both Indian and International music. Not generic "happy songs" — songs matched to the user's actual emotional state from their journal. Feeling melancholic after a breakup? Here's "Tum Hi Ho" by Arijit Singh and "Someone Like You" by Adele — because both sit with the longing instead of trying to fix it. Anxious before exams? Here's "Breathe" by Shankar Mahadevan and "Weightless" by Marconi Union.
- 🧘 Activity recommendations — evidence-based coping activities matched to mood/stress level. Not generic "go for a walk" — specific, actionable, appropriate to their current state. Behavioral activation for low mood. Box breathing for acute anxiety. Creative expression for emotional processing.
🌙 Module 5 — Soothe Corner (A Moment of Grace)
Sometimes you don't need advice. You don't need a screener. You don't need a chart. You just need someone to acknowledge what you're carrying — in a way that feels beautiful instead of clinical.
Soothe Corner asks one question: "How are you feeling right now?"
Then Claude writes a 4-6 line poem in the user's language, using that language's native poetic tradition:
- Hindi → sher / ghazal couplet
- Tamil → kural-inspired verse
- Bengali → Tagore-influenced lyric
- Urdu → nazm
- English → free verse
No toxic positivity. No "cheer up." Just a moment of grace that says: I see what you're carrying, and it's real.
Mood-aware: Soothe Corner reads the user's Thought Diary context — so the poem isn't generic. It knows the breakup happened. It knows the exams are coming. It sits with the feeling.
Song recommendations: After the poem, users can get 5 personalized song recommendations — a mix of Indian and International, matched to their mood, cross-wired with their Thought Diary patterns.
Shareable: Every poem can be downloaded as a beautifully rendered PNG share card — because sometimes the best thing you can do for a friend is send them a poem.
🔗 Cross-Module Intelligence — Nothing Is Siloed, Everything Listens
This is what separates Saathi from "5 chatbots in tabs." Every module is aware of the others through a carefully designed read-only cross-module context system:
Thought Diary ──context──→ Saathi Chat
"I can see you've been processing the breakup from your journal.
Your entries show a pattern of catastrophizing around relationships.
Let's work with the reframe you wrote last Tuesday..."
Thought Diary ──context──→ Soothe Corner
Poems and songs adapt to the user's actual emotional state —
not what they typed in the text box, but what their journal reveals.
Thought Diary ──context──→ My Patterns
Distortion charts, mood trends, screener timelines,
and AI recommendations all powered by real journal data.
The technical mechanism is a single function — get_cognitive_journal_context() — that returns a privacy-safe digest (counts, patterns, trends — never raw entry text) to consuming modules. It's the only inter-module API, and it's read-only by design.
The result: A user who journals about exam anxiety, then opens Saathi Chat, gets a response that references their specific distortion patterns. When they visit Soothe Corner, the poem lands differently because it was written for their heaviness. When My Patterns recommends a song, it's because their check-ins tell a story the algorithm can read.
This is not a feature. This is what makes Saathi feel like a companion instead of a tool.
🏗️ How We Built It — Engineering for Trust
Tech Stack
- Anthropic Claude (Sonnet 3.5) — powers every module with carefully engineered system prompts
- Python 3.11 + Streamlit — rapid UI, accessible deployment
- Pydantic v2 — strict JSON schema validation for structured LLM output with one-shot retry
- Plotly — interactive dashboards and charts
- Pillow — CPU-only poem share-card rendering
- Hugging Face Spaces — free CPU tier deployment, zero infrastructure cost
Architecture Decisions That Define Saathi
1. Crisis-First Architecture Every user message — in every module, in every language — hits a multilingual regex before the LLM is invoked. The regex covers self-harm and suicide phrases in English, Hindi, Hinglish, Bengali, Tamil, Telugu, and Marathi. On a positive hit:
- Claude is bypassed entirely — no hallucination can get between a person in crisis and a helpline number
- Verified helplines render immediately: Tele-MANAS (14416), iCall, Vandrevala, AASRA, 112
- The legal module additionally checks for active physical danger and routes to emergency services (112/100/1091) before any legal information is shown
This runs in under 50ms. It is the most important code in the entire codebase.
2. Zero Data Persistence
Everything lives in st.session_state. Close the tab, it's gone forever. No database. No cookies. No analytics. No accounts.
This isn't a limitation we apologize for. This is the feature we lead with. In a domain where user trust is everything — where someone might type "I've been having suicidal thoughts" — the most ethical thing we can do is guarantee that sentence exists nowhere after the browser tab closes.
3. Multilingual Without Translation APIs Saathi supports 7 Indian languages not through post-hoc translation, but through prompt engineering. Claude responds natively in the user's chosen language — Hindi response in Hindi script, Tamil response in Tamil script. This produces more natural, culturally appropriate responses than any translation API could achieve.
4. Dual-Provider Failover Anthropic Claude is the primary provider. If rate-limited during a live demo, Saathi automatically falls back to Groq — seamlessly, with no user-visible interruption.
5. Static Curated Datasets Over APIs Mental health resources, helpline numbers, and IPC/BNS sections are stored as curated static JSON files — verified from Ministry of Health, Ministry of Home Affairs, and NALSA sources. No external API calls. Zero latency risk. Zero hallucination risk on critical safety information.
🚧 Challenges We Ran Into
The Structured Output Problem
Claude's JSON output occasionally broke when responding in Tamil or Bengali script — curly braces and JSON syntax would get tangled with complex Unicode characters. We solved this with Pydantic v2 schema validation + a one-shot retry loop that feeds the validation error back to Claude with a corrective prompt. The retry succeeds ~98% of the time on the first attempt.
Crisis Detection Across Scripts
English suicide phrase detection is straightforward. But how do you detect distress in Hinglish ("jeena nahi chahta"), colloquial Bengali ("আমি আর পারছি না"), or Tamil ("எனக்கு வேண்டாம் இந்த வாழ்க்கை")? We spent significant time researching how distress is actually expressed in Indian languages — not clinical translations, but the words real people use at 2 AM. The regex set catches these without false-positiving on normal conversation.
Cross-Module State Without a Database
Keeping modules aware of each other (Chat reading Thought Diary patterns, Soothe Corner adapting to mood) while maintaining zero persistence required a careful session_state architecture. We designed a single read-only context function as the inter-module API — it returns privacy-safe digests (counts, patterns, trends) but never raw entry text. This took multiple iterations to get right.
The Hardest Challenge: Not Being a Therapist
Claude is helpful by nature. It wants to diagnose. It wants to prescribe. It wants to say "you might have depression." We had to engineer guardrails that prevent this while still being genuinely useful. Every system prompt carries explicit not-therapy framing. Crisis detection bypasses the LLM entirely. Screener results are presented as "scores to discuss with a professional," never as diagnoses. This constraint engineering was harder than any feature we built.
🏆 Accomplishments We're Proud Of
🛡️ The crisis safeguard works. It catches distress in 7 languages, runs in under 50ms, and bypasses the LLM entirely. No hallucination stands between a person in crisis and a helpline number.
🌏 True multilingual experience. A student can journal in Hindi, see their distortion patterns in a Plotly chart, receive a ghazal that acknowledges their pain, get Indian song recommendations matched to their mood, and find a therapist in their city — all in one session, in one tab, without creating an account.
⚖️ Legal Aid that changes lives. A woman being stalked can learn about IPC 354D, get a drafted FIR complaint letter, and know that 112 is one call away — without hiring a lawyer, without knowing legal jargon, without speaking English.
🔐 Privacy as a feature. Zero storage isn't a compromise. In a country where mental health stigma can destroy careers and marriages, guaranteeing that "I've been having panic attacks" exists nowhere after the tab closes is the most important feature we ship.
🧠 Cross-module intelligence. Saathi Chat doesn't just answer questions — it says "I can see from your journal that you've been catastrophizing around exams — let's work with the reframe you wrote last Tuesday." Soothe Corner doesn't just write poems — it writes poems that know about the breakup. My Patterns doesn't just show charts — it recommends songs because your check-ins tell a story.
🎵 Music as medicine. Our song recommendation engine doesn't give generic "happy playlists." It reads your Thought Diary, understands your emotional state, and recommends Indian and International songs that sit with the feeling — because sometimes healing starts with knowing someone else felt this way too.
📚 What We Learned
Mental health is not just depression. It's harassment. It's exam pressure. It's not knowing your legal rights. It's not having the vocabulary for what you're feeling. It's needing a poem at 2 AM. Saathi's multi-module design reflects this reality.
Language is access. A CBT tool in English is invisible to someone who thinks in Tamil. Prompt-driven multilingual support — where Claude responds natively in the user's script — is more natural, more respectful, and more effective than any translation layer.
Ethics is engineering, not marketing. Crisis safeguards, not-therapy framing, zero persistence, legal disclaimers — these aren't checkboxes on a submission form. They're the hardest parts of the codebase and the parts we're most proud of.
The best AI features know when NOT to use AI. Crisis detection bypasses the LLM. The doctor finder uses a static curated dataset. The legal section lookup is deterministic. AI is powerful — but some things are too important to hallucinate.
Connection matters more than features. The moment Saathi went from "5 separate tools" to "one companion that remembers your patterns across modules" — that's when it stopped feeling like an app and started feeling like a साथी.
🔮 What's Next for Saathi
- More languages: Kannada, Gujarati, Malayalam, Punjabi, Assamese — India has 22 official languages and Saathi should speak all of them
- Therapist directory integration: Partner with verified platforms (Amaha, MindPeers, Practo) for real-time appointment booking
- Voice-first journaling: Record a voice note → auto-transcribe → Thought Diary entry — lower the barrier for users who struggle with typing
- Peer-reviewed content: Collaborate with NIMHANS, TISS, and AIIMS psychiatry departments to clinically validate Saathi's informational content
- Offline-first PWA: Package Saathi as a Progressive Web App that works on 2G connections — because mental health access shouldn't require 4G
- Community features: Anonymous peer support groups moderated by trained volunteers — because sometimes the best therapy is knowing you're not alone
- Integration with Tele-MANAS: Explore partnership with the Government of India's mental health helpline for warm handoffs from Saathi to human counselors
🛠️ Built With
anthropic · claude · streamlit · python · pydantic · plotly · pillow · huggingface-spaces
"Mental health is not just depression. It's freedom from harm, agency in crisis, vocabulary for your own thoughts, and a poem when you need one — in your language."
— Saathi, मन का साथी
Log in or sign up for Devpost to join the conversation.