DEV Community

Cover image for Unsaid: A 100% Local-First AI Reflection Room I Built for a Friend
Anirudha Basu Thakur
Anirudha Basu Thakur

Posted on

Unsaid: A 100% Local-First AI Reflection Room I Built for a Friend

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

We all have moments where our thoughts run faster than our ability to speak them.

I built Unsaid for a close friend who struggles with severe ADHD, racing thoughts, and chronic late-night overthinking. When overwhelmed, their brain gets trapped in intense cognitive loops—thoughts so tangled and raw that trying to articulate them to another human feels impossible or terrifying. They worry about burdening people, being misunderstood, or facing judgment.

At the same time, they are fiercely guarded about their personal privacy. They refuse to use mainstream cloud AI tools or therapy chatbots because the thought of typing their deepest anxieties and personal confessions into a remote server owned by a corporation that logs prompts, trains models, or risks data leaks felt like a complete non-starter.

Unsaid is a 100% local-first AI reflection room and conversational sounding board. It gives them a safe, distraction-free sanctuary to speak or type freely, untangle racing thoughts, and receive empathetic cognitive reframing without a single byte of data leaving their machine.

Key Capabilities

  • 🎙️ Voice-First Dictation via Handy: Powered by local whisper.cpp, allowing them to speak freely without looking at a screen when typing feels like too much friction.
  • 🧠 Local Cognitive Reframing with Google Gemma 3 4B: Connects to open weights running on local LM Studio or Ollama with zero external telemetry.
  • 🎧 Auditory Reflection Companion: Integration for soothing, human-like voice responses (supporting both local speech synthesis and ElevenLabs voice companion audio).
  • 💻 Bilingual Interface (Web & Monospace Terminal): A sleek glassmorphic web interface, plus an interactive terminal CLI shell for when they want to decompress inside their coding environment.
  • 🔒 Absolute Zero-Cloud Privacy: Everything stays in local memory/IndexedDB, with client-side export and an emergency "Burn Session" button that securely purges all data in one click.

Demo

Visual Walkthrough & Screenshots

The Reflection Room (Calm, Minimal, Distraction-Free)

Unsaid Dashboard

Empathetic Conversational Sounding Board

Conversational Interface

Local Model & Voice Dictation Configuration

Settings and Audio

Terminal Companion for Developers

Terminal CLI Shell

Mobile Responsive Experience

Mobile Responsive UI

Code

Unsaid is fully open source under the permissive MIT License:

🔗 GitHub Repository: https://github.com/Ani0811/unsaid

Clone and run locally in seconds:

git clone https://github.com/Ani0811/unsaid.git
cd unsaid
npm install
npm run dev
Enter fullscreen mode Exit fullscreen mode

How I Built It

Unsaid was engineered from the ground up as a pure offline-capable, local-first stack:

[ Friend's Voice / Thoughts ]
              │
              ▼
[ Local Whisper Engine via Handy ]
              │
              ▼
[ Unsaid Desktop UI (React 19 + TypeScript + Vite) ]
              │
              ├── Local OpenAI-compatible API ──► [ LM Studio / Ollama ]
              │                                           │
              │                                           ▼
              │                                  [ Google Gemma 3 4B ]
              │                                  (Local weights inference)
              │
              ├── Audio Synthesis ──────────────► [ ElevenLabs Companion ]
              │
              └── Dual Local Storage ───────────► [ IndexedDB / ~/.unsaid ]
                                                  (Zero telemetry / Zero cloud)
Enter fullscreen mode Exit fullscreen mode

1. Open AI Brain: Google Gemma 3 4B on LM Studio

For the conversational engine, I chose Google's Gemma 3 4B open-weight model running locally through LM Studio (http://localhost:1234/v1).

  • Why Gemma 3 4B?: It strikes the perfect balance between nuanced emotional empathy, cognitive reasoning, and local hardware feasibility. It runs smoothly on a consumer laptop with 8GB RAM without overheating the machine or draining battery life.
  • Empathetic System Prompting: Gemma 3 was tuned to act not as an advice dispenser or generic corporate assistant, but as an active listener using non-violent communication (NVC) and cognitive reframing techniques: asking clarifying questions, reflecting feelings, and helping identify cognitive distortions without being patronizing.

2. Speech Dictation: Handy (Whisper.cpp Engine)

Typing when experiencing cognitive overload can feel exhausting. We integrated Handy, a blazing-fast local speech-to-text dictation tool powered by whisper.cpp. The user holds a hotkey or clicks the microphone, speaks in stream-of-consciousness, and their raw thoughts are transcribed into the reflection prompt in real time.

3. Voice Companion Audio: ElevenLabs & Speech Synthesis

Reading dense paragraphs of text can induce additional eye fatigue when someone is already stressed. Unsaid includes an auditory reflection mode that speaks thoughts back in a soothing, natural cadence, integrating ElevenLabs' natural conversational voices alongside browser-native speech synthesis.

4. Modern Web UI & Terminal Shell

  • Frontend Stack: Built with React 19, TypeScript, Vite, and Tailwind CSS.
  • Aesthetic: Deep dark slate themes, subtle glassmorphic blurs, and calm neutral accents designed to reduce sensory stimulation.
  • Terminal CLI Mode: A retro monospace terminal view accessible directly in the browser or via npm run shell for developers who feel more at home in a command line prompt.

Why Does Open Innovation Matter?

Open innovation and open-weight models weren't just a technical choice for this project—they were the only reason this project could exist at all.

Here is why open models matter so profoundly when building for human vulnerability:

1. Privacy is Emotional Safety

When someone shares their most fragile, unvarnished thoughts—anxieties they are afraid to tell even their closest friends—they cannot and should not trust a third-party cloud API. Closed APIs log requests, store telemetry for trust & safety audits, and operate on remote servers. With open-weight models like Gemma 3, inference happens strictly inside local RAM. The physical wire can be unplugged. The Wi-Fi can be off. The thoughts never leave the room.

2. Independence from Corporate Censorship & Canned Responses

Closed commercial models frequently suffer from "helpful assistant" syndrome: when you express genuine anguish, they often trigger rigid safety filters or spew boilerplate corporate disclaimers that make the person feel alienated and treated like a ticket. Open weights allow builders to craft custom emotional guardrails and genuine warmth tailored to what their friend actually needs to hear.

3. Zero Cost Barrier

A friend in distress shouldn't have to worry about whether they have enough API credits left on their credit card or whether a monthly subscription will renew. Open-source models run forever for free on existing hardware.

What My Friend Said When I Handed It Over

"The hardest part of having ADHD for me isn't focusing on work—it's the silence late at night when ten different threads of anxiety start fighting for attention. I always wanted to journal, but typing into an empty Google Doc made me feel exposed, and talking to ChatGPT felt like talking to a surveillance camera with a customer service voice.

Unsaid is the first time I felt like I had a door I could shut behind me. Being able to just hit the mic, ramble about why I felt stuck, and have Gemma reflect it back to me calmly—without anything touching the internet—let me breathe again. It's on my desktop now."

My Agent Session

This project was built with the assistance of an agentic workflow through DevRelay. You can explore the full interactive transcript:

🔗 View the DevRelay Agent Session Transcript (#457)

Prize Categories

  • 🏆 Best Use of Gemma ($200 Featured Category): Deep integration of Google's Gemma 3 4B open weights via LM Studio/Ollama as the local cognitive reflection engine.
  • 🎙️ Best Use of ElevenLabs ($100 Partner Category): Conversational auditory companion mode using high-fidelity human-like voice reflection.
  • 🌟 Overall Winner ($250): A complete, lovingly crafted solution tackling a real human problem with 100% open-source AI, zero cloud dependencies, and full open-source delivery.

Thank you to DEV, MLH, Google, and the Hacktoberfest 2026 team for championing open AI innovation!

Top comments (0)