Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/terrylica/cc-skillsnpx agentmods add skills/terrylica/cc-skills/dump-channelWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/terrylica/cc-skills/dump-channel)<a href="https://agentmods.dev/skills/terrylica/cc-skills/dump-channel"><img src="https://agentmods.dev/badge/skills/terrylica/cc-skills/dump-channel/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/terrylica/cc-skills/dump-channel"><img src="https://agentmods.dev/badge/skills/terrylica/cc-skills/dump-channel.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Rogue Agent · line 127 Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.Fix: Prevent the skill from modifying its own code, SKILL.md, or configuration files. Treat skill files as read-only at runtime.
- medium Output Handling · line 68 Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.Fix: Set explicit limits on output length, generation count, and rate. Use max_tokens and truncation to prevent unbounded output.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00032 | $0.01198 |
| Opus 5.5 | $0.00013 | $0.00479 |
| Sonnet 5.5 | $0.00006 | $0.00240 |
| Haiku 4.5 | $0.00003 | $0.00120 |
Grade A, and why
dump-channel scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 18d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Dump Telegram Channel History
Archive a complete Telegram channel/group/chat to NDJSON + downloaded media files.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
Preflight
- Session must exist:
~/.local/share/gramjs/<profile>.session- If missing, run
/tlg:setupfirst
- If missing, run
- User must be subscribed to (or a member of) the target channel/chat
Usage
/usr/bin/env bash << 'EOF'
ROOT="$(cc-plugin-root tlg)"
SCRIPT="$ROOT/scripts/tg-cli.ts"
# Full dump: NDJSON + all media (photos, videos, documents)
bun "$SCRIPT" dump @ChannelName ./output/ChannelName
# NDJSON only (skip media downloads — much faster)
bun "$SCRIPT" dump @ChannelName ./output/ChannelName --no-media
# Dump by numeric chat ID
bun "$SCRIPT" dump -1001234567890 ./output/MyChannel
# Use a different profile
bun "$SCRIPT" -p personal dump @ChannelName ./output/ChannelName
EOF
Parameters
| Parameter | Type | Description |
|---|---|---|
| chat | string/int | Channel username (@name) or numeric chat ID |
| output | path | Output directory (messages.ndjson + media/ created inside) |
--no-media |
flag | Skip media downloads, produce NDJSON only |
Output Structure
output/ChannelName/
├── messages.ndjson ← one JSON object per line, chronological (oldest first)
└── media/
├── 6.jpg ← named by message ID for cross-referencing
├── 12.png
├── 45.mp4
└── ...
NDJSON Record Schema
Each line is a JSON object with these fields:
| Field | Type | Description |
|---|---|---|
id |
int | Telegram message ID |
date |
string | ISO 8601 timestamp with timezone |
text |
string/null | Full message text (no truncation) |
has_media |
bool | Whether message contains media |
media_type |
string/null | GramJS class name (MessageMediaPhoto, etc.) |
media_file |
string/null | Filename in media/ dir (e.g., "6.jpg") |
views |
int/null | View count (channels only) |
forwards |
int/null | Forward count |
reply_to_msg_id |
int/null | Parent message ID if reply |
grouped_id |
int/null | Album group ID (shared across album messages) |
edit_date |
string/null | ISO 8601 timestamp of last edit |
sender.id |
int | Sender's Telegram user/channel ID |
sender.name |
string | Display name (channel title or user first name) |
sender.username |
string/null | @username if set |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 18d ago Changed fde2fca4a0ff
- 1mo ago First seen · 130 lines · 32 tokens per session scan A 6a64d6ac5d48
dump-channel is a skill published in the GitHub repository terrylica/cc-skills (0 stars, last pushed yesterday), licensed MIT. It adds 32 tokens to every session and 1,198 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.
Other skills, from other repositories
investment-memo-generator
Investment memo creation combining financial analysis, document generation, and structured templates. Use when creating investment memos, pitch decks, deal summaries, or investment committee materials.
impact-report-writer
Nonprofit/NGO impact report generation with data visualization suggestions, outcome metrics, narrative structure, and program data presentation. Use when writing impact reports, annual reports, or program evaluation summaries.
codebase-documenter
Write codebase documentation: READMEs, architecture docs, getting-started guides, API docs, and code comments. Use when documenting code or making a project easier for new developers.
agent-documentation-writer
Specialist subagent: Generates comprehensive documentation including READMEs, API docs, architecture docs, and inline comments. Use when documenting code, creating guides, or explaining systems.
video-timeline
Turn a final TTS audio track (with its timed transcript) into an editable story timeline (xlsx) for a human to fill with images, slides, and video clips. Audits the audio against timing best practices first, then maps each finding to a visual offset, and QA-scores the timeline objectively. Use when a finished…
transcript-to-pdf
Convert a GuideAnts / Code-Executor markdown conversation transcript into a styled, print-ready PDF with a cover page, role-badged turns, full tool-call inputs (heredoc-aware) and highlighted code. Use when the user wants to export, archive, or share a conversation log as a polished PDF document.