Inspiration

Most of us have typed something into an AI chat and then deleted it before sending. Not because the AI couldn't help, but because we didn't know who else would read it. For a wellness companion, that hesitation defeats the purpose: the things people most need to talk through, like a fight at home, a bad grade they're hiding, or a night when everything feels pointless, are exactly the things they won't write when their words go to someone else's server.

So we asked: what if the AI lived on a box you own? The ASUS GX10 is powerful enough to run a 27-billion-parameter model locally, which means a companion can be both genuinely helpful and genuinely private. InnerCove is built around one idea: people open up when they know what happens to their words.

What it does

InnerCove is a private AI wellness companion that runs entirely on the ASUS GX10. Nothing is sent to a cloud AI provider.

Over view (non tech)

  1. The problem: Why did we build Inner Cove? Mental well-being doesn't only matter during a therapy appointment. People experience stress, loneliness, anxiety, and difficult emotions at all hours of the day and night. Sometimes, they need a way to understand their emotions, reflect on their experiences, or practice the coping techniques they've learned in therapy. However, professional therapy can be expensive, difficult to access, or limited to scheduled sessions. Between appointments, people may struggle to maintain progress or remember what they wanted to discuss with their therapist. We built Inner Cove to bridge that gap. Inner Cove is designed to complement human connection and professional care, not replace them.
  2. Who is Inner Cove for? Individuals who need someone to listen a) Anyone who wants a private-feeling space to talk. Can range from an elderly who feeling lonely and need a companion to a young teen who’s struggling with complex emotions and stress b) People already working with a Professional therapist or psychologist Users can continue reflecting between sessions, practice recommended exercises, and, if they choose, share relevant conversations, diary entries, and summaries with their professional to support more informed sessions. c) People who prefer a more accessible way to communicate With a simple interface across laptops, mobile phones, and tablets — and planned voice interaction — Inner Cove aims to make emotional support more approachable for people with different needs and communication preferences. The central idea is simple: support should be available between appointments, not just during them.

  3. How Inner Cove works: 01 — A welcoming dashboard The dashboard greets the user, displays an uplifting quote, and includes a mood tracker. The quote creates a gentle, positive starting point for the day. The mood tracker encourages emotional awareness over time, helping users notice how they feel and potentially recognize patterns in their well-being. Rather than expecting users to explain everything at once, it gives them a simple first step.

02 — AI companion chat At the heart of Inner Cove is an AI companion designed to listen, respond with empathy, ask thoughtful follow-up questions, and help users reflect on what they are experiencing. Instead of offering generic motivational messages, it can help users organize their thoughts, explore possible perspectives, and consider appropriate coping strategies. Its responses are designed to be constructive, supportive, and nonjudgmental. There's also AI Refusal so that the response is appropriate to the website

03 — Personal diary Users can write freely about their day, emotions, experiences, and thoughts without needing to turn everything into a conversation. Entries remain available for later reflection, helping users revisit experiences and notice changes over time. Crucially, users can choose whether the AI is allowed to reference their diary or whether those entries should remain for their eyes only.

04 — User-controlled memories Inner Cove can maintain a collection of relevant information from conversations, such as user-approved preferences, recurring concerns, and patterns the user wants to keep track of. This helps the companion provide continuity instead of treating every conversation as if it were the first. Users can review, edit, or delete their memories and control whether the AI can use them. With the user's explicit permission, this information could also help a therapist understand recurring themes over time.

05 — Wellness toolkit The toolkit brings together practical wellness exercises, such as breathing techniques, grounding activities, and reflection exercises informed by therapeutic practices. Users can explore activities independently, or the AI can suggest a relevant exercise when the conversation indicates that one might be helpful. The goal is to turn supportive conversations into practical actions users can try in everyday life.

06 — Therapist-supported care A user's therapist or psychologist could add personalized exercises, videos, educational resources, and reminders based on their treatment goals. Between sessions, the user could work through those resources, reflect on their experiences, and choose to share relevant information with their professional. This creates a potential bridge between what happens in therapy and what happens in everyday life.

  1. What makes Inner Cove different? Personalized AI personalities Everyone experiences support differently. Some people appreciate humor and lightheartedness; others prefer a calm, mature, and thoughtful listener. Inner Cove allows users to choose from different AI personalities, such as a jolly and humorous companion or a calm and mature listener. Users can switch personalities depending on their mood and what they need in the moment. The aim is to make the experience feel more personal and comfortable, rather than forcing everyone into the same style of conversation. Looking ahead, we plan to introduce voice responses and voice conversations. Each personality could have its own voice and conversational style, allowing users to speak naturally instead of always reading and typing. This could be especially helpful for older adults or people who find speaking easier than using a keyboard.

Privacy and control belong to the user Personal thoughts and emotional experiences are deeply sensitive. Users should have control over what they record, what the AI remembers, and what they choose to share. Inner Cove's planned privacy-first architecture emphasizes local AI processing, encrypted data storage, and permission-controlled access to diary entries and memories. Users can decide what the AI may reference, review and delete stored memories, and choose whether to share selected information with a therapist. Professional access should be consent-based rather than automatic. The intention is to make personal reflection useful without taking away the user's ownership of their experiences.

  1. The bigger vision Inner Cove brings together emotional expression, self-reflection, personalized AI interaction, and practical wellness activities in one accessible platform. Instead of keeping conversations, diary entries, coping exercises, and professional guidance disconnected, we want to create a space where these elements can work together — while leaving the user in control. Our long-term vision is for Inner Cove to become a bridge between how people feel, how they understand themselves, and how they receive support.

Features (tech wise)

  • Chat that stays on the device. Saved chats, the diary and memories live in a SQLCipher-encrypted database, unlocked with a passphrase that is never stored. Restart the box and it locks again.
  • You see exactly what the AI saw. Under every reply, "Had access to" lists the diary entries and memories it used, and one tap shows the exact text that was sent. Each diary entry has its own "AI may use this" switch. Turn one off and InnerCove drops it, and the earlier exchanges that used it, from the next reply, and tells you so.
  • Memories you control. InnerCove notes lasting things ("Has a biology exam on Friday", "A friend recently stopped talking to them") so later chats feel personal. It shows each note the moment it writes it, and you can turn it off, edit it or delete it. It never records diagnoses or medication.
  • Say it without keeping it. Temporary chats live only in the browser tab. Reload, and they're gone. Nothing is written to the hub.
  • A diary with feelings. Pick how you felt when you wrote an entry. When you share an entry with the AI, it knows that feeling too.
  • Safety that doesn't depend on the AI. A rule-based layer screens every message before the model sees it. The highest-risk messages get a reviewed, pre-written reply with the 988 Suicide & Crisis Lifeline and 911, and never reach the model. Every model reply is screened before it is shown. This works even when the model is offline. Because InnerCove is private, it doesn't report anyone to anyone: it gives people the number and the choice.
  • Your words are yours to take, or delete. Export a chosen date range of diary entries or memories, unticking anything you'd rather keep private, for example to share with a counselor. Or delete everything in one step.
  • Voice, transcribed on the box. Speak instead of typing. Audio is transcribed locally with whisper.cpp and lands in your draft for you to review. Nothing is sent automatically.
  • Pick how it talks. Warm, Calm, or Upbeat. Safety replies stay the same in every tone.
  • Works on your phone. It's served over HTTPS on the local network with a local certificate authority, so phones get the full experience, including the microphone.

InnerCove is a non-clinical companion. It is not therapy, a diagnosis tool or an emergency monitoring service, and it says so.

How we built it

  • Model: Qwen3.8-27B (Q6_K quantization, 262K context) served by LM Studio on the GX10's GPU, listening only on the machine itself. We ran a 40-case evaluation on the GX10 to choose the model and quantization, then iterated the system prompt (v2 → v4.2) against companion-quality and safety test sets.
  • Server: TypeScript on Node.js 22 with Fastify. A chat turn runs: safety pre-screen → permission-filtered retrieval of the memories and diary entries the user allowed → prompt assembly → streaming generation over SSE, released sentence by sentence only after the output screen passes it.
  • Data: SQLite with SQLCipher encryption (better-sqlite3-multiple-ciphers), Drizzle ORM with hand-written migrations that fail closed, and full-text search with secure delete. Every query is scoped to the user, and the AI reads only through a permission-filtered port.
  • Shared contracts: Zod schemas in a shared core package used by both server and web.
  • Web app: React, Vite and Tailwind CSS v4, built mobile-first with a desktop layout, light and dark themes.
  • Voice: whisper.cpp (base.en) and ffmpeg on the GX10, with audio kept in memory (tmpfs) while it's transcribed.
  • Security: mandatory sign-in with optional two-factor (TOTP), HttpOnly SameSite=Strict session cookies, Origin checks, a strict Content-Security-Policy, and logs that contain event types and IDs only, never what anyone wrote.
  • Infrastructure: Docker Compose on the GX10, HTTPS from a name-constrained local CA, Tailscale for team access, and GitHub Actions CI running typechecks, 246 tests, contract validation, safety checks and a gitleaks secret scan on every push.

Challenges we ran into

  • Warm and safe at the same time. Early prompts were either cold or, worse, kept re-asking a struggling user about suicide without ever offering help. We rewrote the prompt several times against a scored safety set. Prompt v4.1 passed 274 of 284 safety checks and 102 of 108 companion checks, with zero critical failures, and now offers 988 and helps make a small plan instead of interrogating.
  • Risk doesn't disappear after one message. A short follow-up like "hurt my self" could slip past a per-message check. We made risk carry across the next few turns so the crisis support stays visible.
  • Memories that help without overstepping. Our note writer first missed real news (an exam result, a friendship ending), then over-shared other people's private details. We tuned it against the real model until it remembered what matters and left out what isn't the user's to record.
  • The browser wouldn't give us the microphone. Browsers only allow the mic on HTTPS, and our app runs on a local network. We built a local certificate authority restricted to private addresses, so phones trust the hub without anything touching the internet.
  • Native code on ARM64. SQLCipher and whisper.cpp both needed native builds on the GX10, and a whisper binary built on the host wouldn't run inside our container because the two have different system library versions. We compile it inside the image instead.
  • Honesty under failure. A test stub's canned reply once looked like a real (and bad) answer. Now the app never fakes a reply: if the model is down, it says so.

Accomplishments that we're proud of

  • A full companion experience (chat, diary, memories, voice, export, safety) that runs with no cloud AI at all.
  • The "Had access to" panel. Privacy you can verify, not just a promise in a policy.
  • Crisis support that works even when the AI doesn't.
  • 246 automated tests, a scripted end-to-end demo check, and green CI on a codebase four people built in parallel over one event.

What we learned

  • Local models are now good enough for warm, nuanced conversation, and the GX10 runs a 27B model comfortably.
  • Privacy is a feature users can see: showing exactly what the AI read builds more trust than any promise.
  • Safety belongs in deterministic code and reviewed text, not in the model's goodwill.
  • Small prompt wording changes matter. "Upbeat tone" once made the model tell a lonely user they seemed in a good mood.

What's next for InnerCove

  • Host it on your own PC. A consumer app with a Windows installer and a Mac app that runs smaller 4–9B models based on user pc specification and sets everything up in a guided wizard, no technical background needed. Manual deployment (Docker, LM Studio or your own model server) stays available for experienced users.
  • Passkeys as another way to sign in, alongside the passphrase and two-factor.
  • A consent-based "Summary to share" for a counselor, built from items the user picks.
  • More than one user per hub, each with their own encrypted space.
  • Crisis resources for more countries, and more languages.

Built With

  • asus-gx10
  • docker
  • drizzle-orm
  • fastify
  • ffmpeg
  • github-actions
  • gitleaks
  • llama.cpp
  • lm-studio
  • node.js
  • openssl
  • qwen
  • qwen3.8
  • react
  • server-sent-events
  • sqlcipher
  • sqlite
  • tailscale
  • tailwindcss
  • totp
  • typescript
  • vite
  • vitest
  • whisper.cpp
  • zod
Share this project:

Updates

Submission history