Telesec · Open-source Telegram Business secretary

Telegram Business
for Hermes Agent.

Connect your Telegram Business account to Hermes Agent. Read voice notes as text, keep an opt-in history that survives edits and deletions, and build contact dossiers from it.

Free · Open source · What’s new in 0.16.1

Illustrated Telegram chat showing an incoming voice note with a readable transcript reply and an outgoing voice note with its transcript added to its caption.
Incoming notes get a transcript reply. Short outgoing notes keep it in their caption. Fictional conversation.

Read it in the chat

For when you
can’t press play.

A voice note becomes an expandable transcript in the same conversation, without a full agent turn.

Telegram screenshot: the owner's 10-second voice message with its transcript added to the caption as an expandable quote, marked edited.
Real Telegram screenshot. The voice note was synthetic, recorded for it.
Voice, video notes, and audio
Uses the speech provider you already configured in Hermes. Audio attachments pass a short speech probe first.
Readable, still in your words
Optional Gemini 3.8 Flash proofreading adds punctuation and paragraphs. Enriched mode can remove filler and structure longer notes.
One transcript, in the right place
Short outgoing transcripts are added to the original caption when editable. Incoming and longer transcripts arrive as replies.
Your rules, chat by chat
Every chat transcribes both sides by default. Pick own, peer, or off for one chat in its owner panel or with hermes telesec mode. Settings turns transcription off in every chat.

Opt-in correspondence history

Deleted in Telegram.
Still in your history.

Every new text in your private Business chats is saved with each edit and each deletion. When a contact deletes a message, you keep what it said. No model needed to capture or search.

In Telegram

Maya Chen

Could you send the revised estimate on Thursday?09:14

Yes, Thursday. The budget we agreed is $12,000.09:14

Deleted by Maya at 11:14

Can we move the call to 4pm?edited 09:18

In your Hermes history

$ hermes telesec history deletions
2026-10-16T11:16:00Z deletion.classified source=deleted_business_messages connection=demo-business chat=2000 message=3 direction=inbound sender=2000 status=unexplained replacement=None reason=no_strong_match score=None

$ hermes telesec history search --contact @mayachen --text deposit --since 7d
2026-10-16T09:15:35Z message.created source=business_message connection=demo-business chat=2000 message=3 direction=inbound sender=2000 text=Perfect. We'll pay the deposit by Friday.

$ hermes telesec history search --contact @mayachen --text call --since 7d
2026-10-16T09:17:00Z message.created source=business_message connection=demo-business chat=2000 message=4 direction=inbound sender=2000 text=Can we move the call to 3pm?
2026-10-16T09:18:00Z message.edited source=edited_business_message connection=demo-business chat=2000 message=4 direction=inbound sender=2000 text=Can we move the call to 4pm?
Fictional conversation. The history pane is real CLI output from synthetic events, also available to Hermes through the bundled history skill.

Every version, kept

New messages and each edit are saved in full, so the earlier wording stays readable. Replies and contact names come with them.

Deletions, labelled

A deletion adds a record and keeps the text. Two minutes later it is labelled a likely correction, a likely duplicate, unexplained, or unclassifiable when the original is missing.

Find it by who, what, when

Search by name or @username, words, and dates. Export a conversation, or see its stats.

Plain files, on your host

Monthly JSONL in your Hermes profile, text only, kept as long as you choose in Settings. Add a chat’s earlier messages from a Telegram Desktop export.

Explore the history commands

Correspondence stats

Who writes more.
Who answers faster.

Counted from your history, with no model: a balance bar of who writes more, a table with both sides’ reply times and messages, emoji heat maps of when you talk, streaks, and the change from the previous period.

Your private chat with the bot

Telegram screenshot of the 📊 Stats report for a fictional contact, Alex Rivera, over 30 days: 252 messages on 27 of 30 days, a balance bar of blue squares for Alex and green for you, a table of messages, reply time, p90, messages per turn, length, and edits for each side, a note that Alex is waiting for your reply, emoji heat maps of the days and hours, the peak, tiles for the streak, record, pause, sessions, who writes first, and deletions, and the change from the previous 30 days, with 7d, 30d, 90d, All, and Back buttons.
📊 Stats in the chat’s panel. Only you see it, with deletions, edits, and who is waiting.

In the Business chat

Telegram screenshot of a stats card in a fictional Business chat between Sam and Alex: the owner's /stats became a card for all time with 2,046 messages on 250 days in touch, a balance bar of blue squares for Alex and green for Sam, a table of messages, reply time, messages per turn, and length for each side, emoji heat maps of the months, weekdays, and hours, when they write most often, the record streak, and sessions with who writes first, signed counted by Telesec.
Send /stats, /stats 30d, or another period in a chat. The bot turns your command into this card, and the contact sees it.

Real Telegram screenshots of fictional history. The card never shows deletions, edits, p90, or who is waiting. From the terminal: hermes telesec stats --since 30d.

Explore stats

New in 0.15 · Contact dossiers

Context you
can correct.

With history on, switch dossiers on in Settings. Telesec keeps one short document for every private contact: who they are, what you agreed, dates and amounts, and open questions. It also learns how you write.

One document that keeps up
A few minutes after a chat goes quiet, the model rewrites the dossier with what changed, edits and deletions too. The previous version is kept.
Your note comes first
Correct a dossier with one note: hermes telesec dossier note --contact @mira --append "…". The model follows it, including what to leave out. The note itself is never posted.
In your owner panel
Dossier, next to Stats, shows the document and your note. Refresh rewrites it now, and My persona shows how you write. Only you see this screen. No dossier leaves one chat out.
/dossier posts the dossier
Send /dossier in a Business chat. The bot deletes your command and posts the contact’s dossier, without your note. If the chat changed since the last update, it refreshes the dossier once first. The contact sees it.
Gemini 3.8 Flash, zero data retention
By default dossiers use Gemini 3.8 Flash through Vercel AI Gateway with zero data retention, as their own Hermes model task. Pick another one in hermes model.
Planned: replies in your voice
Drafts you send, edit, or discard, and automatic replies only in chats you choose.
Explore dossiers

Your private chat with the bot

Telegram screenshot of the Dossier screen for a fictional contact, Mira Tanaka: when it was updated and from how many messages, a one-line summary, the Project, Agreements, How to work with her, and Contact details sections, your note marked as not posted, and Refresh, My persona, and Back buttons.

In the Business chat

Telegram screenshot of a /dossier post for the same fictional contact: Dossier, with the one-line summary, the Project, Agreements, How to work with her, and Contact details sections, and a footer that says it was prepared automatically from this chat and may contain mistakes.
Real Telegram screenshots of a fictional contact: the Dossier screen, then the same dossier as /dossier posts it.

Settings · all chats

Three switches
for all your chats.

Send /telesec in your private chat with the bot, or tap ⚙️ Settings on any chat’s panel. A change applies to the next message, with no restart. Settings also names the models that build dossiers and clean up transcripts.

Transcription
On by default. Don’t transcribe stops it in every chat.
History
Off until you tap Save history. Until then, nothing is saved. Keep it forever, 1 year, 90 days, or 30 days.
Dossiers
Off until you tap Keep dossiers. Telesec asks first and names the model that will read your chats. While history is off, dossiers pause, and Settings says so.
Or from the terminal
Run hermes telesec settings set history on. Swap in transcription or dossiers, and on or off, or set retention 90.

Your private chat with the bot

Telegram screenshot of Settings in the private chat with the bot: Telesec settings for all chats, Keep history: forever, the dossier and voice cleanup models, then Transcribe or Don't transcribe, Save history or Don't save, Forever, 1 year, 90 days, or 30 days, and Keep dossiers or No dossiers, with all three on and history kept forever.
Real Telegram screenshot.

Owner panel

Every chat’s settings,
one tap away.

In a Business chat, tap Telegram’s Manage Bot button. Your private chat with the bot opens a panel for that chat. The contact sees nothing.

Transcription
Both sides, only yours, only theirs, or off. The change applies to this chat at once.
History and dossier, chat by chat
Save history or Don’t save decides whether this chat is recorded. No dossier leaves it out of dossiers. Off is not delete: what is already saved stays. hermes telesec chat set does the same.
🗑 Erase saved history
Shows once a chat saves nothing. It asks first, then deletes this chat’s saved history and its dossier. From the terminal: hermes telesec history forget --chat 2000.
📊 Stats
This contact’s stats report for 7, 30, or 90 days, or all time.
Dossier
This contact’s dossier and your note, with Refresh and your persona.

Your private chat with the bot

Telegram screenshot of the owner panel: Transcription: off, with both, own, peer, and off buttons, Reset to default, Save history or Don't save and Keep dossier or No dossier, both on, then Stats, Dossier, Settings, and Refresh. The contact's name is blurred.Telegram screenshot of the same panel with Don't save on: Dossier: needs history, and a new 🗑 Erase saved history button under Save history and Don't save. The contact's name is blurred.
Real Telegram screenshots: the panel, then the same chat set to Don’t save, with Erase saved history. The contact’s name is blurred.

Get started

Add it to Hermes Agent.

Install in the same profile that runs your Telegram gateway.

Install the plugin

hermes plugins install neoromantic/telesec --enable
hermes gateway restart

Choose what to switch on

Transcription is on from the start. Send /telesec to your bot and tap Save history to keep your Business text. Then tap Keep dossiers to build dossiers from it; this sends private chat text to the model that Settings names. Or run:

hermes telesec settings set history on
hermes telesec settings set dossiers on

No restart needed.

Find your first conversation

Tap Manage Bot in a Business chat to open its panel, or search from the command line:

hermes telesec history contacts --search maya
hermes telesec history show --contact @mayachen --since 7d

Privacy & data

Your host.
Your choices.

No telemetry at all. Telesec has no analytics, usage reporting, or tracking. Settings, modes, history, and dossiers stay in your Hermes profile.

Business chats stay out of the agent. By default, Business messages, yours or a contact’s, are never passed to the Hermes agent.

Audio goes to the speech provider configured in Hermes, which may run locally or externally. Optional cleanup sends the transcript to your configured model. Audio downloads are deleted after processing.

History is off until you switch it on in Settings and starts with new messages, or with a chat export you import. It deliberately keeps earlier edits and deleted text: deleting in Telegram does not erase it, and neither does Don’t save in a chat’s panel. Erase saved history in that panel, or hermes telesec history forget, deletes one chat’s history and dossier. Choose how long to keep it in Settings, and handle backups as part of your own removal process.

Dossiers are off until you switch them on in Settings, which names the model first. Only then does private chat text go to that model; history capture alone never does. By default it is Gemini 3.8 Flash through Vercel AI Gateway with zero data retention. A contact gets their dossier or a stats card only when you send /dossier or /stats in their chat. Your note’s text, your persona, and message refs are never posted, though a fact from your note can be in the dossier text. The dossier goes out only after it has seen every deletion and edit Telesec recorded. It is written for you, and the contact reads it as it is.

Read retention and removal

This website uses cookieless PostHog analytics for page visits and link clicks. Session recording is disabled. Website analytics are separate from the plugin and never receive your Telegram conversations.

A few practical details

Before you connect.

Do I need Hermes Agent and Telegram Business?

Yes. This is a plugin for a running Hermes Agent gateway, with a Telegram bot connected to your Telegram Business account. It is a separate community integration, not an official Telegram or Nous Research product.

Which messages become text?

Voice messages, round video notes, and recognized audio attachments, yours and every contact’s. Attached files are checked for size, duration, and speech before full transcription. The defaults are 5 minutes and 20 MB. Generic documents and ordinary videos pass through.

Can I import conversations from before installation?

Yes, one private chat at a time, from a Telegram Desktop export in JSON: hermes telesec history import result.json --chat 2000. Stats, search, and new dossiers then see the earlier text. Without an import, history starts with new Business text after you switch it on. It records text, edits, deletions, reply relationships, and available contact details. Media, captions, and voice transcripts are excluded in this version. Read how to import past messages.

Will this start replying as me?

No. Telesec transcribes supported media, optionally records text history, and can build opt-in contact dossiers. In a Business chat it posts only transcripts and, when you send /dossier or /stats, the contact’s dossier or a stats card. By default no Business message starts a Hermes agent turn. Suggested replies and automatic replies are planned.

What does it cost?

The plugin is free and MIT licensed. Your Hermes host, Telegram Business account, speech provider, and optional cleanup and dossier models have their own requirements and any applicable costs. The plugin has no separate subscription.

If a message is deleted in Telegram, is it gone from history?

No. Preserving earlier text is what makes deletion inspection possible. History is kept forever unless you pick 1 year, 90 days, or 30 days in Settings. Then whole months older than that are removed; the current month and pending deletion evidence stay. To erase one chat, set it to Don’t save and tap 🗑 Erase saved history in its panel, or run hermes telesec history forget. Single messages cannot be erased. Read the retention and removal instructions.

Your conversations,
within reach.

Read voice notes as text. Keep messages, even deleted ones.