Reproduce a Telegram meeting brief

Reproduce a local search, inspect message sources and build a meeting brief from a controlled dataset.

This walkthrough uses WireCat’s synthetic search-playground dataset and its actual query engine. It reads no account, uses no login credentials, sends no messages and calls no AI provider. The result is retrieval evidence, not a measured customer outcome or a live Telegram response.

Run the controlled example

Use Node 22.16+ or 24+ and a checkout of the WireCat site repository. From its root, run:

node --experimental-strip-types scripts/reproduce-meeting-brief.mjs
{
  "dataset": "WireCat synthetic search-playground fixture",
  "query": "chat:\"Atlas project\" AND (\"deadline confirmed\" OR \"final invoice\")",
  "matches": [
    {
      "source": "msg:telegram/demo/301/13",
      "text": "Agreed. I will send the final invoice after the review."
    },
    {
      "source": "msg:telegram/demo/301/12",
      "text": "Atlas invoice deadline confirmed: Friday, October 9."
    }
  ],
  "context": [
    {
      "source": "msg:telegram/demo/301/11",
      "text": "Tuesday is too early. The client needs time to review."
    },
    {
      "source": "msg:telegram/demo/301/12",
      "text": "Atlas invoice deadline confirmed: Friday, October 9."
    },
    {
      "source": "msg:telegram/demo/301/13",
      "text": "Agreed. I will send the final invoice after the review."
    },
    {
      "source": "msg:telegram/demo/301/50",
      "text": "Atlas invoice spreadsheet is ready for review."
    },
    {
      "source": "msg:telegram/demo/301/52",
      "text": "Atlas budget notes and meeting agenda: https://docs.google.com/"
    },
    {
      "source": "msg:telegram/demo/301/10",
      "text": "Atlas invoice: can we aim for Tuesday?"
    }
  ]
}

The complete output above was generated by that command. The fixture text stays in English in all site languages so the same command reproduces the same evidence. Runner source, dataset and context window.

Read the decision in context

The two matches are message 13 (“I will send the final invoice after the review”) and message 12 (“deadline confirmed: Friday, October 9”). Their nearby context includes the earlier Tuesday proposal and the reply rejecting Tuesday. A meeting brief should therefore report Friday, October 9 as the confirmed invoice deadline, with sources 12 and 13; Tuesday was a proposal, not the final agreement.

A useful briefing separates confirmed decisions, unresolved questions and source messages. This result does not establish that the final invoice was sent: message 13 describes a future action, and the selected context is only a bounded window. The runner retrieves messages; the explanation above is an interpretation of the displayed evidence.

Use the workflow with your own archive

After installation, login and a bounded history fetch, search your saved Telegram conversations with the same query syntax. Replace the synthetic chat name and phrases with your task:

tg messages search 'chat:"Atlas project" AND ("deadline confirmed" OR "final invoice")' --json

messages search reads the local archive. Login alone does not download all historical messages. Use source locators returned by your own search with tg messages context; the demo locators above belong only to the fixture. The command reference and search guide document the reviewed Telegram release and supported options.

Then ask your agent:

Prompt
Prepare a meeting brief from these results. Separate confirmed decisions from proposals and unanswered questions. Cite message sources, list the chats and time window checked, and say what the retrieved evidence cannot establish. Read only; do not send or mark anything read.

For MAX, use its own search reference; do not assume Telegram options or locators are interchangeable. Your cache is local, while text passed to an AI agent follows that agent/model’s configuration. See security and connecting an agent.

Reproducibility and limits

The dataset and runner are versioned with the site; automated tests compare the output with this guide in all three languages. Record the repository commit when reproducing it. It demonstrates query matching and a bounded context window, not message-history completeness, a live CLI benchmark or an AI model’s accuracy. Nothing is sent by this walkthrough.