Inbound (you → the agent)

Send a photo, document, audio, or video in the private chat. The agent sees a local copy of the file. In a group, a photo or file is ignored unless the message also @mentions the bot or replies to it. The agent then sees the caption, not the file. See Group chats. On a fresh macOS install, local voice transcription is set up automatically. On Linux and Windows, set it up manually to have a Telegram voice note or audio file handled as message text. Telegram can only fetch 20 MB. Trim or compress a longer clip, or send it as a smaller file. A dropped connection is not that cap — send the same file again if the bot says Telegram dropped the connection. After a successful turn, those downloads are deleted.

Outbound (the agent → you)

The bridged agent writes files into a per-turn outbox directory (the reply names it). Anything left there when the turn ends is delivered:
  • Images (PNG/JPEG/GIF by content, not extension) → Telegram photo, unless you force a document.
  • Video (MP4, MOV, MPEG, WebM, AVI, MKV, …) → Telegram video. Non-MP4 is transcoded with local ffmpeg when possible; otherwise sent as a file.
  • Everything else → document.
Caps: 10 files / 50 MB aggregate per turn. Overflow is reported, never silently dropped.

Captions

If there is exactly one file and the text fits 1024 characters, text rides as the caption. Otherwise text goes first as its own message.

SVG

SVG is never sent as a photo (XML, and Telegram cannot render it as a photo). It goes as a document.