Telegram CS Agent

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill matches its Telegram customer-service purpose, but it uses a real Telegram user session to read and auto-reply to all incoming chats and forwards conversation content to Claude without clear chat scoping.

Install only on a dedicated Telegram support account, not a personal account. Add chat allowlists and rate limits, disclose Claude/AI processing to users, protect .env and Telethon session files, and pin/review dependencies before production deployment.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If installed on a personal or broadly used Telegram account, the bot may read and act under that user's identity in conversations beyond customer support.

Why it was flagged

The skill intentionally uses a real Telegram user identity rather than a scoped Bot API token, giving the bot broad account-level authority if run on a normal Telegram account.

Skill content
Telegram: Telethon userbot (not Bot API) — appears as a real user
Recommendation

Use only a dedicated Telegram support account, declare the Telegram session/API credentials in metadata, protect the session files, and prefer a scoped Bot API setup if possible.

What this means

The bot could respond from the logged-in account in unrelated private chats or groups, and attackers could trigger unwanted replies or API usage by messaging the account.

Why it was flagged

Each processed incoming text message is turned into an AI response and sent back automatically; the provided code does not show a chat allowlist, approval check, or support-channel restriction.

Skill content
result = agent.chat(chat_id, text)
await tg.send(chat_id, result["reply"])
Recommendation

Add explicit allowed chat IDs, rate limits, and a review/approval path for new chats before enabling automatic replies.

What this means

Customer or private Telegram messages may be transmitted to an external AI provider, especially if the bot is connected to a non-dedicated account.

Why it was flagged

Telegram message content and conversation history are sent to Anthropic for processing, but the artifacts do not show redaction, consent handling, or boundaries limiting which Telegram chats are processed.

Skill content
history.append({"role": "user", "content": user_message})
...
response = self.client.messages.create(
    model=self.config.model,
    max_tokens=1024,
    system=system,
    messages=history,
)
Recommendation

Disclose AI processing to users, restrict processed chats, redact sensitive data where possible, and document retention and provider data-handling expectations.

What this means

Bad or malicious knowledge-base documents could cause the bot to give incorrect instructions to users.

Why it was flagged

Knowledge-base markdown content is inserted into the model context for answers, so inaccurate or instruction-like documentation could steer customer-facing responses.

Skill content
system += f"\n\n--- Knowledge Base Context ---\n{context_text}\n--- End Context ---"
Recommendation

Curate and review all indexed markdown files, avoid embedding operational instructions in customer docs, and separate retrieved facts from system-level instructions.

What this means

A later dependency release could change behavior or introduce vulnerabilities even if the current source looks clean.

Why it was flagged

Dependencies are specified with lower bounds rather than exact pinned versions, so future installs may pull different package versions.

Skill content
anthropic>=0.42.0
chromadb>=0.5.0
sentence-transformers>=3.0.0
python-dotenv>=1.0.0
telethon>=1.37.0
Recommendation

Pin exact versions, use a lockfile or hashes, and review the dependency/model-download provenance before production use.

What this means

Once started, the process may continue monitoring and replying through the Telegram session until it is stopped or disconnected.

Why it was flagged

The bot is designed as a long-running Telegram listener; this is expected for the stated purpose but means it keeps operating until explicitly stopped.

Skill content
await self.client.run_until_disconnected()
Recommendation

Run it under clear process supervision, document start/stop procedures, and ensure operators know how to revoke or delete the Telegram session.