Post to Telegram from Claude Cowork

Cowork can post an update to your Telegram channel through your own bot, once the task names the chat.

Hermoso is a marketing MCP server: 876+ tools over one OAuth’d endpoint that let an agent research the ads already running in a market, generate finished image and video ads, publish them, and build the paid campaigns behind them. Claude Cowork reaches all of it through one connection. This page covers one slice of that: what Claude Cowork can actually do on Telegram, and what Telegram will not let it do.

Connect Hermoso to Claude Cowork

  1. Copy the connector URL. https://app.hermoso.ai/mcp
  2. Claude → Customize → Connectors → + Add → Add custom connector. Name it Hermoso and paste the URL. Leave the sign-in option on Claude’s default: Hermoso accepts Claude’s published client identity and also registers clients automatically, so there is no client ID to create.
  3. Connect and approve. Sign in with your Hermoso account on the consent page. No key is pasted.
  4. Open Cowork and hand it the job. Cowork sees the same connector. Ask it to list your connected channels first, so you know which accounts it can reach.
  5. Ask Cowork for something. “Pull my three closest competitors’ longest-running ads and remix the best hook into a 9:16 video,” or “post this render to the channel.” The agent picks the tools; you approve the spend.

Anthropic’s help center lists custom connectors on Claude, Cowork and Claude Desktop, and Cowork itself on the paid plans: Pro, Max, Team and Enterprise. On Team and Enterprise an Owner adds Hermoso once under Organization settings, Connectors, and members press Connect. One detail decides the route: a local server in claude_desktop_config.json is not available in Cowork, so the hosted connector is the way in, not npx hermoso mcp. Read from Anthropic’s help center on 2026-10-03. Hermoso is not affiliated with or endorsed by Anthropic.

Then connect Telegram itself, once, under Settings → Connectors in Hermoso by pasting a bot token from @BotFather, and add that bot to your channel as an administrator. There is no consent screen: the token is the credential, and the bot is who posts.

The Telegram tools Claude Cowork gets

  • post_to_telegram: sends a message as your bot to the chat you name: text up to 4,096 characters, or one photo, one video, or an album of 2 to 10 with photos and video mixed.
  • schedule_post: queues it with its chatId on the same calendar as every other channel.
  • list_telegram_chats: the chats that messaged the bot in the last 24 hours. It helps find an id, and it is not a list of every chat the bot is in.
  • edit_telegram_message / pin_telegram_message: fix a message’s text or caption without losing its views, and pin or unpin the call to action.
  • create_telegram_invite_link: a named invite link per campaign, with an optional expiry, member cap or join approval, so you can see who joined from where.
  • telegram_account: the chat’s subscriber or member count, title, description and invite link.
  • list_telegram_dms: what people sent the bot in the last 24 hours, newest first, to answer with post_to_telegram.
  • delete_telegram_message: removes a message the bot sent, within Telegram’s 48-hour window, after a confirm step.

Telegram connects with a bot token, not a sign-in screen. Make a bot with @BotFather in Telegram, paste its token under Settings → Connectors, then add the bot to your channel as an administrator with Post Messages, or to a group as a member who can post. Hermoso posts as that bot, never as you. Two limits are Telegram’s and worth planning around: a bot gets no per-post views and no post history, so the subscriber count and named invite links are the numbers you have; and messages sent to the bot are kept for 24 hours, then gone. Publishing costs no credits.

Telegram limits worth knowing before you automate anything

TextA Telegram message runs to 4,096 characters, but only 1,024 once a photo or video is attached, because the text becomes a caption. It is enforced when the post is created or queued, so an overlong post is refused while you are still there to fix it instead of being silently cut on the way out.
VisibilitySent or not sent, with no draft, unlisted or private form. Who sees it is decided by the chat: “post to a private group or channel and only its members see it.” silent delivers without a notification sound and changes nothing about who can see the message.
Carousel2 to 10 items as an album, and photos and video may be mixed. Both bounds are Telegram’s own, from the Bot API’s sendMediaGroup (“must include 2-10 items”), and so is the mixing. The album shows one caption, on its first item. Hermoso uploads the files instead of passing links, which raises Telegram’s ceilings to 10MB per photo and 50MB per video.
Which accountchatId, required on every post: a public channel’s @username or the numeric id (a supergroup or channel starts with -100). The Bot API has no method that lists the chats a bot is in, so Hermoso cannot know them and never guesses.

Try it in Claude Cowork

Ask for it in ordinary language. These are plain sentences, not a DSL:

“Write this week’s update under 4,096 characters, post it to @ourbrand on Telegram, and pin it silently.”

That walks render_ad → post_to_telegram → pin_telegram_message → create_telegram_invite_link. How often Cowork stops to check with you is Cowork’s behaviour, not ours. Hermoso’s gates hold either way: campaigns are born paused, and spend switches and deletes need an explicit confirmation.

Claude Cowork on Telegram: the part that bites

Every Telegram send needs the chat named, so put it in the task. Text alone runs to 4,096 characters, and adding a photo turns the text into a caption capped at 1,024. Connecting Telegram is a bot token from @BotFather pasted into Hermoso, and the bot has to be an admin of the channel before it can post there.

Cowork can run shell commands, but Anthropic’s default network setting for that sandbox allows package registries rather than every domain, so the hermoso command line is not something to rely on there. The connector is unaffected: Anthropic says connector traffic keeps working whatever the sandbox’s network setting is.

Research Telegram before you post

There is no Telegram ad library and no channel search in Hermoso, so it claims no competitor research on Telegram. Research the creative where it is public (the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Reddit and Threads) and post the finished ad here.

The paid half

There are no Telegram ads in Hermoso, and we do not imply any. Telegram here is a channel you own and run through your bot: post, pin, edit, count subscribers and track invites. The paid tools cover Meta, Google Ads, Microsoft Advertising, Reddit Ads, LinkedIn, Pinterest, X Ads, TikTok Ads, Snapchat Ads, ChatGPT Ads and Apple Search Ads.

What Claude Cowork cannot do on its own

An agent with a budget is only useful if the blast radius is bounded, so the fence is in the server rather than in a prompt. Every ad campaign, ad set, ad group and ad is created paused, and the status switches that arm real money refuse to run without an explicit confirmation flag. Every render is quoted first (hermoso_capabilities publishes each model’s exact credit cost before anything spends). Credits are reserved before the first provider call and settled at the exact cost afterwards, so a failed dispatch refunds rather than leaving you billed for nothing. Deletes are confirm-gated too, and every campaign tree is read back from the ad platform before your agent tells you what it built.

One step is deliberately yours: creating the bot with @BotFather and adding it to your channel. Everything after that is a tool call.

The rest of the matrix

From Claude Cowork, post to: Facebook · Instagram · Threads · TikTok · YouTube · X · LinkedIn · Pinterest · Bluesky. Or see everything Claude Cowork can publish to.

Post to Telegram from: Claude · ChatGPT · Claude Code · Cursor · Codex · Cline · OpenClaw · Grok Bot · Hermes · Gemini CLI · Perplexity · Le Chat · Perplexity Computer · Paperclip · AI marketing in Claude

Frequently asked questions

Can Claude Cowork post to Telegram?

Yes, through the Hermoso connector you add in Claude. In Claude, open Customize, Connectors, add a custom connector with https://app.hermoso.ai/mcp and approve it with your Hermoso account. Cowork uses the same connector, and there is no key to paste. Claude Cowork then has 876+ tools, including the ones that publish to Telegram, plus the ones that research the ads already running in your market and render the creative in the first place.

How do I connect Telegram to Claude Cowork?

Two steps, once each. In Claude, open Customize, Connectors, add a custom connector with https://app.hermoso.ai/mcp and approve it with your Hermoso account. Cowork uses the same connector, and there is no key to paste. Then make a bot with @BotFather in Telegram, paste its token under Settings → Connectors in Hermoso, and add the bot to your channel as an administrator with Post Messages. After that Claude Cowork publishes to Telegram as an ordinary tool call, naming the chat each time.

Can Claude Cowork post a carousel to Telegram?

Yes, as an album of 2 to 10 items with photos and video mixed, which is Telegram’s own rule for sendMediaGroup. The album carries one caption, on its first item. Claude Cowork calls the same publish tool either way, and a channel that cannot carry a carousel is refused with the real reason attached.

What does it cost to post to Telegram from Claude Cowork?

Posting to Telegram costs no credits; Telegram charges nothing per call. Credits are spent on generating the creative. Plans are $19, $49 and $149 a month for 1,000, 3,000 and 10,000 credits, and every feature is on every plan including Free. The only exception is enterprise SSO.

Does Claude Cowork need my Telegram password?

No. Telegram connects through a bot you create with @BotFather, and Hermoso holds only that bot's token, so Claude Cowork posts as the bot and never as your personal Telegram account. The token can be revoked in @BotFather whenever you like, and it is never handed to the model.

Can Claude Cowork schedule a Telegram post for later?

Yes. schedule_post queues it on one calendar shared with every other channel, with a per-channel caption if the copy should differ, and list_scheduled and cancel_scheduled read and pull it back. Telegram is one of the ten channels that queue.

Start free with 30 credits at signup and 250+ more to earn. Every feature is on every plan. Credits are spent only on AI models and Ad Spy research; posting, scheduling, ads management and analytics are free.

Start free →   See pricing