Skip to main content
slop-writer

A Claude Code skill that analyzes a Telegram channel:

  • Scrape posts (text, media, reactions, views, forwards, tags) and the comment threads under each.
  • Track outward forwarders — outside channels that re-share your posts — and inward citations — channels you forwarded from.
  • Build an append-only time-series of per-post metrics on every re-run, so you can watch engagement evolve.
  • Pull subscriber growth/churn by acquisition source, and views by hour of day for the "best time to post" question.
  • Schedule, retime, and rewrite future posts — the one write path.

Backed by Telethon. Everything reaches the agent as MCP tools — eleven of them, over a local SQLite DB (one file per channel) that a read-only SQL tool answers questions from.

This is my personal skill — I built it to manage my own channel, @fastnewsdev. It's shared here in case the patterns are useful to someone else running a Telegram channel.

Install

Two commands, run from the project where you want the analytics.

uv tool install slop-writer
slop-writer install     # wires Claude Code: MCP server, permissions, the skill
slop-writer init        # Telegram credentials and the one-time login

install writes the slop-writer entry in .mcp.json, a permission block in .claude/settings.json (reads allowed, publishing behind a prompt), and the skill into .claude/skills/slop-writer/; everything it writes is printed. The .mcp.json entry holds no machine-specific path, so it is safe to commit — a teammate clones, runs slop-writer init, and is done. Restart your MCP client afterwards: .mcp.json is read at session start only.

Verified on Claude Code. For Cursor, Codex or the Copilot coding agent, install prints the entry for you to paste into their config yourself.

init asks for your Telegram API credentials (create them here), writes .tg-analytic/.env, and runs the login. Run it in your own terminal — Telethon prompts for the SMS code and 2FA password on stdin, so it cannot go through a tool call. It is additive and safe to re-run: it prompts only for what is missing and logs in only when there is no working session. The two commands are independent and work in either order.

slop-writer uninstall removes exactly what install wrote, and never touches .tg-analytic/.

The skill alone, without the server, still installs through the skills CLI:

npx skills@latest add Lancetnik/slop-writer

Both channels serve the same directory, so whichever runs last wins on disk.

All runtime state — .env, the Telethon session, per-channel *.db files, downloaded media — lives in a gitignored .tg-analytic/ at your project root, never inside the skill. init gitignores it for you: the session file is a live login to your Telegram account.

Usage

Inside Claude Code, ask in plain language:

Analyze @some_channel — show me the most popular posts. Who's forwarding @some_channel? Which channels do they cite most often? Refresh metrics on the last 20 posts of @some_channel. How did the discussion group grow after Tuesday's post? Schedule this draft for Friday at 18:00.

The skill picks the tool, and the tool returns a Markdown summary the agent pastes back (top posts by views and reactions, top tags, outward forwarders and inward citations with their post ids) — usually the answer is right there without dropping into SQL.

Keeping the metric history usable

post_metrics is a time series, but only of the moments you actually scraped — it cannot be backfilled. A routine scrape of the latest N posts re-measures recent posts only, so an older post can sit forever on the single snapshot it got on its first day, and "how did this post do over time" then has nothing to answer from. Every so often, ask for a refresh over a spread of older ids too:

Refresh metrics on posts 340, 345, 350 and 355 of @yourchannel.

Views in particular keep climbing for months, so a post's snapshots are worth collecting long after it stops feeling current.

What the agent reads

Contributing

skills/slop-writer/ is the shipped skill (packaged into the wheel and served to npx skills add from here — one directory, one version). src/slop_writer/ is the library and the MCP server it drives; tools/ holds dev-only scripts that are never shipped. CLAUDE.md has the working rules, CONTEXT.md the vocabulary, and docs/adr/ the decisions behind both.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slop_writer-0.4.2.tar.gz (96.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slop_writer-0.4.2-py3-none-any.whl (109.8 kB view details)

Uploaded Python 3

File details

Details for the file slop_writer-0.4.2.tar.gz.

File metadata

  • Download URL: slop_writer-0.4.2.tar.gz
  • Upload date:
  • Size: 96.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for slop_writer-0.4.2.tar.gz
Algorithm Hash digest
SHA256 c69bdfee2014d8f358be0fd00221f71bc58453c026c34542722e27a1afab220a
MD5 8947f92adb6ab6038c8dec073877b5f8
BLAKE2b-256 0a8f4b3c6c9384eda7bf26615af233c264ecad4bdde7a9d1670131e8fcc49fad

See more details on using hashes here.

Provenance

The following attestation bundles were made for slop_writer-0.4.2.tar.gz:

Publisher: publish.yaml on Lancetnik/slop-writer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slop_writer-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: slop_writer-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 109.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for slop_writer-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 45c20da1607ee3e30f440ee866e1e3c33fd5347895a22e7ada8b8fcc2dccab73
MD5 da06af8627f8f9c72c30d4b3c5dac225
BLAKE2b-256 9734bfd9fd61889d6116824c4040a42ad6f3d4b2ba900b4ce89cd57c088ce4d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for slop_writer-0.4.2-py3-none-any.whl:

Publisher: publish.yaml on Lancetnik/slop-writer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.3

2 files

This release

0.4.2 This release

2 files

0.4.1

2 files

0.4.0

2 files

0.2.0

2 files

0.1.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page