Inspiration
Everyone has a chat they keep rereading. Who is pulling away, who cares more, why it feels different lately. You can feel it and you cannot prove it. I wanted to make an app that is not lame like only stat analysis being done chat analysis apps. Third Eye was built to do the proving this can be done with proper AI leveraging.
What it does
Export a conversation from WhatsApp or LINE and open it in Third Eye. Say who the other person is to you. Pick how deep to go and how blunt you want it.
Every reading returns findings, and each finding quotes the exact message & context it stands on. If the Eye cannot point at a real line in your chat, it does not make the claim. That rule is the whole product. You also get a one-sentence verdict you could argue with, a score out of 100 computed on your phone from who starts, who replies and how steady it stays, and the raw stats behind it.
Where the fun part is not the freemium Quick Read actually, Deep Dive adds a profile of each of you and one call on where this is heading. GOD Mode adds the whole record: eras, turning points, scenarios ahead in addition to what Deep Dive does. On another tab, Ask the Eye answers questions from the same chat. Read the same chat again weeks later and it shows the two readings side by side.
Note: Don't forget to play the Space Shooting waiting game while you're analysis is being run!
How we built it
Flutter on iOS. Real names are stripped on the device before anything leaves it; the model only ever sees P1 and P2, and the name map lives in a per run sidecar on the phone. The anonymized text is sent through a Cloud Function to Gemini with zero retention, behind App Check and a signed per run ticket, so a run cannot be forged or replayed. Nothing stored in a server regarding users' chats or answers. All local, all in users' device for privacy concerns.
The analysis pipeline is a Scout to Analyst ladder with a Judge gate, the model proposes findings, every quote is verified against the actual chat on the client, and anything that does not match a real message is dropped before you see it.
Allowances are enforced by a server side ledger keyed to RevenueCat's customer id, with resets handled to your real renewal date. RevenueCat handles the subscriptions and consumable credits whereas OneSignal sends the "your reading is ready" push, a paused reading nudge and a gentle weekly reengagement journey.
Challenges we ran into
WhatsApp's export format is not one format. It changes with locale and app version. We discovered we had two parsers where we thought we had one, and three of four export shapes were leaking names until that was fixed.
Gemini's structured output was the hardest part. Getting the Scout → Analyst → Judge pipeline to produce findings worth reading takes 18–20 API calls per chat, and it took many rounds of trial and error to land on the version that ships. Every release now runs a schema smoke test against the live model so a silent change on Google's side cannot break a reading.
App Review rejected us twice: once because the ATT prompt fired before a key window existed, and once on consent wording plus a lapsed subscriber still seeing paid rows. This was my first app on the App Store, and both rejections were fixed and resubmitted the same day.
Accomplishments that we're proud of
The receipts rule holds in production, no finding without a quoted line result of tons of trial and errors to have this version.
Real purchases, cancellation and refund paths are proven & live thanks to the RevenueCat.
More than 2K+ tests, a golden suite that catches design regressions, and a privacy posture we can state in one paragraph without hedging, no account, no sign-up, nothing stored on our servers.
What we learned
Long chats are where the product earns its name. A GOD Mode read takes a conversation that runs for years, tens of thousands of messages, and keeps it whole. Nothing gets summarized away. The Eye reads the full context and comes back with the lore, the eras you went through, the exact week the tone changed, the turning points you felt but could not date, and the scenarios of where this goes next. Every one of those findings still quotes the message it stands on.
Getting there taught us that depth is a pipeline, not a prompt. One model pass on a long chat gives you vibes. The Scout → Analyst → Judge ladder, with every quote verified against the real chat before it is shown, gives you a record. That is the difference between an app that tells you what you already suspect and one that shows you the line where it started.
What's next for Third Eye: AI Chat Analyzer
Matchmaking, from your own history. Bring the chat with your ex, or the one with your current crush, and Third Eye reads how you actually text when you like someone for e.g how fast you reply, when you go quiet, what makes you open up. Then, in plain conversation, it tells you who your next one should be and what to watch for. Not a quiz, not a horoscope. A match built from the receipts of who you have been.
Improve Ask the Eye for chat related questions. Make the suggested questions more grounded in the actual chat, and raise the overall quality of the answers. Right now it feels a bit plain, and I am not happy with the current version.
Alongside that: Telegram and Messenger exports to reach out more people & chats.
Built With
- amplitude
- appsflyer
- cloudflare
- fastlane
- firebase
- flutter
- gemini
- ios
- leonardoai
- maestro
- onesignal
- revenuecat
- rive
- storekit
- typescript


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