From acedatacloud-content
Researches public Telegram channels and groups via TGStat for source discovery, audience analysis, and ad-channel selection by topic or @username.
How this skill is triggered — by the user, by Claude, or both
Slash command
/acedatacloud-content:tgstatWhen to use
Use for Telegram source discovery, competitor research, ad-channel selection, and public audience analysis. It can find channels/chats by keyword, inspect known public usernames, compare visible metrics, and use the connected Telegram username as the default target. Use the separate telegram connector for reading or sending messages in the user's account.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use [scripts/tgstat.py](./scripts/tgstat.py) for public TGStat research. It uses
Use scripts/tgstat.py for public TGStat research. It uses only the Python standard library. Under the hood it fetches TGStat pages through the platform render service (headless Chromium), which bypasses the public site's bot protection, so each lookup can take several seconds. Resolve the script at the start of every Bash call because each call runs in a fresh shell:
TGSTAT="$SKILL_DIR/scripts/tgstat.py"; [ -f "$TGSTAT" ] || TGSTAT=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/tgstat.py' 2>/dev/null | head -1)
[ -f "$TGSTAT" ] || { echo "tgstat script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
python3 "$TGSTAT" profile
The connector injects $TGSTAT_USERNAME. It is not a login credential; it is
only the default public channel/group target. Never print the full environment
or treat the username as proof that the user owns the Telegram account.
Run search first:
TGSTAT="$SKILL_DIR/scripts/tgstat.py"; [ -f "$TGSTAT" ] || TGSTAT=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/tgstat.py' 2>/dev/null | head -1)
[ -f "$TGSTAT" ] || { echo "tgstat script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
python3 "$TGSTAT" search "Claude API" --type all --language English --country US
In public mode the command returns web_queries. Call web_search once per
query, then:
tgstat.com regional-host and t.me results.@username values and deduplicate case-insensitively.info or stat before reporting it.TGStat's own keyword-search result endpoint requires sign-in. Do not try to bypass it, replay private AJAX endpoints, or claim public mode searches the full TGStat index.
--language and --country are search terms for the web index, not guaranteed
TGStat database filters.
Use rankings when the user wants large or active public sources without a precise keyword:
TGSTAT="$SKILL_DIR/scripts/tgstat.py"; [ -f "$TGSTAT" ] || TGSTAT=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/tgstat.py' 2>/dev/null | head -1)
[ -f "$TGSTAT" ] || { echo "tgstat script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
python3 "$TGSTAT" rankings --type channel --limit 20
python3 "$TGSTAT" rankings --type chat --limit 20
python3 "$TGSTAT" rankings --type channel --query crypto --limit 10
Channel cards can expose subscribers, one-post reach, and citation index. Chat cards can expose participants, recent message count, and MAU. Metrics are a current public snapshot, not a historical series.
Public TGStat pages can intermittently return an authentication or rate-limit
interstitial. When rankings returns status: unavailable, try the emitted
web_fetch_url, then run its web_queries with web_search. Label those
results as web-index discoveries, not as an authoritative TGStat rank.
Accept a public @username, bare username, t.me/<username> link, or a TGStat
entity URL. Omit the target to inspect $TGSTAT_USERNAME from the connector:
TGSTAT="$SKILL_DIR/scripts/tgstat.py"; [ -f "$TGSTAT" ] || TGSTAT=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/tgstat.py' 2>/dev/null | head -1)
[ -f "$TGSTAT" ] || { echo "tgstat script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
python3 "$TGSTAT" info
python3 "$TGSTAT" info @durov
python3 "$TGSTAT" stat https://t.me/example_public_chat
In public mode, info/stat resolves whether the target is a channel or chat
and returns its public identity (title, description) plus the visible
subscriber / participant count. Deeper engagement metrics (average post reach,
citation index, ER) are charted client-side on TGStat, so they are only
available for entities that appear in the public top ratings — for those the
command enriches the result from the ranking snapshot. Empty or missing metrics
mean TGStat did not expose them on the public page; do not call that full
statistics. Use rankings when you need reach / citation index for large
public sources.
Individual channel/chat pages are more aggressively bot-protected than the
ranking pages, so an info/stat lookup may occasionally return a
render blocked / could not render error. It fails fast (well under the
Bash timeout) — retry once, or fall back to rankings and search for
discovery, which are far more reliable.
For ad selection, rank by relevant reach/activity rather than subscriber count alone. High subscribers with weak reach or chat MAU can indicate an inactive or inflated audience. Present metrics as evidence, not a guarantee of lead quality.
TGSTAT="$SKILL_DIR/scripts/tgstat.py"; [ -f "$TGSTAT" ] || TGSTAT=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/tgstat.py' 2>/dev/null | head -1)
[ -f "$TGSTAT" ] || { echo "tgstat script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
python3 "$TGSTAT" profile
profile reports the normalized public username used by target-less info and
stat. It does not verify ownership or authenticate to Telegram/TGStat.
For prospecting or partnership research:
AI terms.t.me/+..., joinchat/...) and message links.web_fetch for a
single public page and report only values visible in that page.$TGSTAT_USERNAME as public profile context, not authentication.npx claudepluginhub acedatacloud/skills --plugin acedatacloud-contentParses public Telegram channels via t.me/s/ web previews to fetch posts, metrics, analytics, digests, top posts, and schedules. Enables monitoring and competitive analysis using pure bash scripts.
Search Telegram channels by keywords, read messages, and extract ad contacts from channel descriptions and posts. Useful for channel discovery and ad analysis.
Builds and manages Telegram communities: group/channel strategy, bot automation, anti-spam, and large group management. Understands Telegram's crypto/web3 culture.