Install
$ agentstack add skill-kfastov-tgcli-tgcli ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
tgcli
Telegram CLI with background sync.
When to Use
Use this skill when the user:
- Wants to read or search Telegram messages
- Needs recent updates or an inbox-style view of chats
- Asks to send a Telegram message or file
- Wants to download media or files from Telegram
- Wants to look up channels, groups, or contacts
- Needs archive/backfill sync for a chat
Install
npm install -g @kfastov/tgcli
Or:
brew install kfastov/tap/tgcli
Authentication
First-time setup needs Telegram API credentials from https://my.telegram.org/apps
tgcli auth
Common Commands
Reading
tgcli channels list --limit 20
tgcli messages list --chat @username --limit 50
tgcli messages search "query" --chat @channel --source archive
tgcli topics list --chat @channel --limit 20
Files & Media
tgcli media download --chat @channel --id 12345
tgcli send file --to @channel --file ./report.pdf --caption "FYI"
Writing
tgcli send text --to @username --message "Hello"
Backfill & Service
tgcli backfill --chat @channel # backfill one chat (auto-starts the server, follows progress)
tgcli backfill --chat @channel --background # enqueue and return the job id
tgcli backfill --chat @channel --depth 5000 --min-date 2024-01-01T00:00:00Z
tgcli backfill status # active backfills + server status
tgcli backfill count # number of in-progress backfills
tgcli backfill wait # block until the queue drains
tgcli backfill cancel --chat @channel # stop a chat's backfills
tgcli channels watch --chat @channel # subscribe a chat for archiving (queues a backfill)
tgcli channels unwatch --chat @channel # stop archiving a chat
tgcli backfill --follow # track the server's queue to completion (`sync` is a silent alias)
tgcli service install
tgcli service start
Telegram and archive commands (channels, messages, send, media, topics, tags, metadata, contacts, groups, folders) run through the always-on control server, not the CLI. The CLI is a thin client: it auto-starts tgcli server in the background when one isn't running, has it execute the operation against its warm connection and database, then renders the result; the server shuts itself down once idle. config, service, doctor, and auth stay local. Foreground backfill --chat follows progress on stderr; Ctrl-C detaches (the job keeps running — check tgcli backfill status).
Contacts & Groups
tgcli contacts search "alex"
tgcli groups list --query "Nha Trang"
Output Formats
All commands support --json for structured output:
tgcli messages list --chat @username --limit 5 --json
tgcli channels list --limit 10 --json
Notes
- Use
--source live|archive|bothwhen listing or searching messages. --jsonis best for AI/tooling pipelines.sendcommands time out after30sby default so they never hang on a stuck connection. Override with--timeout 5mor disable with--timeout 0. Long-running commands (backfill,--follow,server) are unbounded by default.backfillis the canonical archive command;sync(andchannels sync --enable/--disable) keep working as aliases. Preferchannels watch/channels unwatchto subscribe/unsubscribe a chat.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kfastov
- Source: kfastov/tgcli
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.