Back to blog
group-chatteamcollaborationnew-feature

Use Claude Code with Your Entire Dev Team in a Telegram Group Chat

SaifMarch 18, 20267 min read

Your team has a shared codebase. You have a shared Slack. A shared Jira board. A shared CI pipeline. But when someone needs to ask Claude Code a question about the code, they walk back to their own machine and open their own terminal.

That's the gap. Claude Code is a single-player tool running on a multiplayer codebase.

Not anymore.

Group chat support is here

Clautel worker bots now work in Telegram group chats. Add your project bot to a team group, and everyone in the group can interact with Claude Code — same session, same context, same codebase.

No per-user allowlisting. No invites to manage. Anyone in the group can send messages, approve tool use, and see Claude's responses.

Here's what it looks like when two teammates are debugging together. Everyone just types normally — the bot handles attribution behind the scenes:

🤖

backend-api-bot (Group)

bot

why is the auth middleware returning 403 for valid tokens?
🤖

Looking at src/middleware/auth.ts...

The issue is on line 47. The token validation checks exp against Date.now() but exp is in seconds while Date.now() returns milliseconds. Valid tokens appear expired.

Fix: change Date.now() to Math.floor(Date.now() / 1000).

what about the edge case where the token has no exp field at all?
🤖

Good catch @bob. If exp is undefined, the comparison undefined < number returns false in JS, so it would silently pass through without any expiry check.

I'd recommend adding an explicit check: if !payload.exp, reject the token.

Message...

Notice how Bob's follow-up builds on Alice's question — and Claude addresses Bob by name. That's because behind the scenes, the bot automatically prepends sender info. Claude has the full context because it's the same shared session.

Three things that make this work

1. Sender attribution

When someone sends a message in the group, Claude sees who sent it. The prompt arrives as:

[from @alice]: why is the auth middleware returning 403 for valid tokens?

Claude knows who's talking. It can address the right person, keep track of who asked what, and avoid confusion when multiple people are active. You don't have to prefix your messages — the attribution is automatic.

💡

If a user doesn't have a Telegram username, the bot falls back to their first name or user ID. Everyone gets attributed.

2. Shared session

Everyone in the group sees the same conversation. When Alice asks Claude to investigate a bug and Bob follows up, Claude has the full context. No one has to repeat themselves.

This is the biggest difference from everyone running their own separate Claude Code sessions. The context builds up across the team, not per person.

3. Message queue

When Claude is busy responding to one person, messages from others don't get rejected. They queue up:

🤖

backend-api-bot (Group)

bot

refactor the auth middleware to use the new JWT library
🤖
Thinking...
also check if we have any hardcoded secrets in the config
🤖
Queued (position #1). Will process when current task finishes.
and run the test suite when you're done
🤖
Queued (position #2). Will process when current task finishes.
Message...

Messages process in FIFO order. The queue holds up to 20 messages. When Claude finishes one task, it immediately picks up the next. No messages lost, no "Claude is busy" dead ends.

The message queue works on both plans — even Pro users benefit from queued messages instead of "busy" rejections in private DMs.

How to set it up

Disable privacy mode in BotFather

By default, bots in groups only see /commands and @mentions. You need to disable this so the bot sees all messages.

Open @BotFather → send /setprivacy → select your worker bot → choose Disable.

Create a group and add the bot

Create a new Telegram group (or use an existing one). Tap the group name → Add members → search for your worker bot's @username.

The bot is now active in the group. That's it.

Make sure you're on the Max plan

Group chat is a Max plan feature ($9/mo). If you're on Pro, the bot will silently ignore group messages — no error spam, it just won't respond.

Upgrade from the manager bot with /subscribe, or check your current plan with /subscription.

Group chat requires Clautel v2.4+. Update with npm update -g clautel if you're on an older version.

What this looks like in practice

Morning standup with Claude. Your team drops into the group: "What changed in the API layer since yesterday?" Claude runs git log, summarizes the diffs, and everyone sees it.

🤖

backend-api-bot (Group)

bot

what changed in the API layer since yesterday?
🤖

Here's a summary of changes since yesterday, @alice:

src/routes/users.ts — Added rate limiting middleware (commit a3f21b) • src/routes/auth.ts — Fixed token refresh race condition (commit 8d4e1c) • src/middleware/cors.ts — Added staging origin to allowlist (commit 2b7f9a)

3 files changed across 3 commits by @bob and @carol.

Message...

Collaborative debugging. A bug report comes in. One person asks Claude to find the relevant code. Another follows up with additional context. The conversation builds naturally, like pair programming but with your whole team.

Code review assist. Someone pushes a PR. Drop the description in the group: "Review the changes in PR #47, focus on error handling." The whole team sees Claude's analysis. Discuss it right there.

Onboarding. New team member joins the group. They ask basic questions about the codebase — "how does the auth flow work?", "where are the API routes defined?" — and the answers are visible to everyone. The group becomes a living knowledge base.

Commands work in groups too

All the commands you know from private DMs work in group chats:

CommandWhat it does in a group
/newClears the shared session + any queued messages
/cancelCancels the current task + clears the queue
/costShows token usage for the shared session
/modelSwitches the model for the group
💡

Anyone in the group can run commands and approve/deny tool use. This is by design — the group shares a single session, and trust is managed by who you add to the group.

What about private chats?

Nothing changes. Your private DMs with worker bots work exactly as before. Group chat is additive.

The key difference: private chats are owner-only (only the Telegram account that set up Clautel can use them). Group chats are open to all members.

Pro vs Max

FeaturePro ($4/mo)Max ($9/mo)
Project botsUp to 5Unlimited
Private chatYesYes
Group chatNoYes
Message queueYesYes
Scheduled tasksYesYes

The message queue works on both plans. Group chat is the reason to go Max if you're working with a team. One bot, one group, everyone has access to Claude Code on the shared codebase.


Group chat is available now in Clautel v2.4. Update with npm update -g clautel and add your bot to a group.