SERGEY REVIN
← All work

Own product · AI in your chats

Bruno: AI finds the promises in your chats and reminds you of them

“I’ll send the documents tomorrow” — and then you forget. Bruno connects to your Telegram, AI finds promises in your messages and reminds you in a bot with “done” and “cancelled” buttons. Before every model or prompt change, quality is checked on a reference set of phrases.

What it looks like

Mock-ups with demo data, no real data

Bruno

Reminder

You promised Ethan: “I’ll send the documents tomorrow”

· Due: today

[ ✅ Done ] [ ✖ Cancelled ]

09:00

A reminder with buttons

At a glance

Product
My own, bruno.nooka.pro
Status
In production, subscription in Telegram Stars
Role
Product, architecture, development — solo

Results

  • 63

    phrases in the reference set: 27 promises and 36 non-promises, Russian and English

  • 1.0

    precision and recall on the reference set — the gate no change ships without

  • 2

    messengers: Telegram and Max

🧪Eval runs

ModelPhrasesPrecision / RecallLatencyCost
gpt-4o-mini601.0 / 1.0764 ms$0.06
gpt-5.2631.0 / 1.01,203 ms$0.063
Runs on the reference set

Before

  • Promises are made across dozens of chats and get lost in the flow of messages.
  • A task tracker cannot see your chats, and nobody copies every “I’ll do it” by hand.
  • AI recognition is easy to break with a model change — and not notice.

What was built

Account connection

Telegram connects as a full account via TDLib: phone, code, two-factor or QR. The second messenger is Max.

Finding promises

Your messages go into a queue for analysis; AI decides whether each is a promise and by when, and the result is stored in the database.

Reminders with buttons

The bot reminds you in Telegram, and a promise is closed with one button: done or cancelled. There is also a Todoist export.

Reference set

Every model or prompt change runs against 63 labelled phrases: precision, recall, latency and cost. A drop in metrics stops the release.

Covered separately →

Stack

  • TypeScript
  • Fastify
  • React + Vite
  • TDLib
  • BullMQ
  • PostgreSQL + Drizzle
  • OpenAI
  • Telegram Bot API
  • Telegram Stars

Questions

Does Bruno read all my chats?

It analyses your own messages — that is where your promises live. Other people’s messages are not analysed.

Why is precision 1.0 not “perfect accuracy”?

It is the result on a small labelled set. We use it as a gate: a change that makes the metrics worse does not ship. Accuracy in real chats is below 100%, and that is expected.

Have a similar problem? Get in touch — we start by mapping your processes.

Message me on Telegram