Yasin Sezgin

Overheard

A Telegram group agent that never posts a message. It hears promises where they are made and keeps everyone's list for them.

Agent pro skupiny na Telegramu, který nikdy nenapíše ani zprávu. Slyší sliby tam, kde vznikají, a každému za něj vede seznam.

Hackathon project, team of five, September 2026.

Projekt z hackathonu, tým pěti lidí, září 2026.

Design spec on GitHubNávrh na GitHubu
The 65-second demo: a real group chat, the board filling itself, the private list.Demo na 65 sekund: skutečný skupinový chat, nástěnka, která se plní sama, soukromý seznam.

How it worksJak funguje

It reads the group and says nothingČte skupinu a nic neříká

Overheard is a member of the team's group with privacy mode switched off, so it sees every message. When someone promises something, it reacts to that message and stays silent. Telegram refuses a check mark as a reaction, so it marks promises with a writing hand.

Overheard je členem týmové skupiny s vypnutým režimem soukromí, takže vidí každou zprávu. Když někdo něco slíbí, zareaguje na tu zprávu a mlčí. Telegram nepřijme jako reakci fajfku, takže sliby označuje rukou, která píše.

A Telegram message from Yasin, 'I'll send the repo link to the judges after the demo', with one writing-hand reaction under it
The only trace Overheard leaves in the group.Jediná stopa, kterou Overheard ve skupině nechá.
Private chat with the Overheard bot: after /me it lists five things Yasin is on the hook for, each with a deadline and the original sentence The Overheard board: 35 outstanding promises grouped by person, one card highlighted

Your list comes to youSeznam přijde za vámi

Send /me to the bot in a private chat and it answers with what is hanging on you: the task, the deadline and the sentence it came from. Tap Done and it closes. On the projector, a board shows the whole team live, with an assistant you can ask what Mehmet is on the hook for.

Napište botovi do soukromého chatu /me a odpoví, co visí na vás: úkol, termín a větu, ze které vznikl. Klepnete na Done a je uzavřený. Na projektoru ukazuje nástěnka celý tým naživo, s asistentem, kterého se můžete zeptat, co visí na Mehmetovi.

The 60-second vertical cut, with sound.Svislá verze na 60 sekund, se zvukem.

How it's builtJak je postavený

  • A diff, never a fresh listRozdíl, nikdy nový seznam

    The extractor reads the last messages together with the promises already open and returns only what changed: create, update or close. That is how "actually Ata is taking that one" moves a task and "done, deployed" closes it.

    Extraktor čte poslední zprávy spolu s už otevřenými sliby a vrací jen to, co se změnilo: vytvořit, upravit, nebo uzavřít. Díky tomu „to si vlastně bere Ata“ úkol přesune a „hotovo, nasazeno“ ho uzavře.

  • Quiet beats chattyTicho je lepší než upovídanost

    "I should probably look at that sometime" is not a promise. The agent marks a message only above a confidence threshold, and a labelled chat log keeps the prompt honest.

    „Asi bych se na to měl někdy podívat“ není slib. Agent označí zprávu jen nad prahem jistoty a ručně označený záznam chatu hlídá, aby prompt nelhal.

  • Small on purposeSchválně malý

    TypeScript monorepo: a grammY bot, a Next.js board, a CopilotKit assistant, extraction through OpenRouter validated with Zod. No database, no auth, no deploy: one demo, one group, one laptop.

    Monorepo v TypeScriptu: bot v grammY, nástěnka v Next.js, asistent v CopilotKitu, extrakce přes OpenRouter ověřená Zodem. Žádná databáze, přihlašování ani nasazení: jedno demo, jedna skupina, jeden notebook.

Play the chat yourselfPřehrajte si chat sami