Repository navigation
Releases
Better-TG-CLI v0.39.6
What's Changed
- Update next with v0.39.5 by @TheVilfer in #102
- Update the plugins with a portable Agent Plugins package for the Hermes Agent catalog by @TheVilfer in #103
- Release v0.39.6 by @TheVilfer in #104
Full Changelog: v0.39.5...v0.39.6
Better-TG-CLI v0.39.5
What's Changed
- Update next with v0.39.4 by @TheVilfer in #97
- Update the site for search engines and AI crawlers: sitemap, JSON-LD, llms.txt, IndexNow, one language per URL by @TheVilfer in #98
- Update the README to open with what Better-TG-CLI is, and compare it with other Telegram MCP servers by @TheVilfer in #99
- Update the site with answer-first pages: MCP setup, FAQ and a comparison of Telegram MCP servers by @TheVilfer in #100
- Release v0.39.5 by @TheVilfer in #101
Full Changelog: v0.39.4...v0.39.5
Better-TG-CLI v0.39.4
What's Changed
- Update next with v0.39.3 by @TheVilfer in #94
- Update the Claude plugin to the skill alone: the directory refuses local MCP servers from unverified organizations by @TheVilfer in #95
- Release v0.39.4 by @TheVilfer in #96
Full Changelog: v0.39.3...v0.39.4
Better-TG-CLI v0.39.3
What's Changed
- Update next with v0.39.2 by @TheVilfer in #91
- Fix the plugin directory scan flags: no WebAssembly, packed data or installer in the plugin server by @TheVilfer in #92
- Release v0.39.3 by @TheVilfer in #93
Full Changelog: v0.39.2...v0.39.3
Better-TG-CLI v0.39.2
What's Changed
- Update next with v0.39.1 by @TheVilfer in #83
- Update plugin descriptions for mode ask and the skill's install line by @TheVilfer in #87
- Update the plugin README: which credentials the server reads, and where each goes by @TheVilfer in #88
- Fix the Claude plugin directory hold: run the MCP server from a readable copy in the plugin by @TheVilfer in #89
- Release v0.39.2 by @TheVilfer in #90
Full Changelog: v0.39.1...v0.39.2
Better-TG-CLI v0.39.1
What's Changed
- Update next with v0.39.0 by @TheVilfer in #77
- Update CI/CD for speed: parallel xz, concurrent CLI tests, binaries alongside verify by @TheVilfer in #78
- Update CI/CD: pinned Bun, no needless npm upgrade, one help-all per MCP test file by @TheVilfer in #79
- Fix refused API methods running inside wrapper requests by @TheVilfer in #81
- Fix secrets in 1Password command arguments and a token race between HTTP servers by @TheVilfer in #80
- Update README: run the MCP server as a launchd / systemd service by @ciperx in #58
- Release v0.39.1 by @TheVilfer in #82
New Contributors
Full Changelog: v0.39.0...v0.39.1
Better-TG-CLI v0.39.0
What's Changed
- Update next with v0.38.1 by @TheVilfer in #69
- Add write modes: ask before each write (chat code or MCP elicitation), chosen during onboarding by @TheVilfer in #73
- Fix write access on cloud agent computers: fall back where no Secret Service can work by @TheVilfer in #75
- Release v0.39.0 by @TheVilfer in #76
Full Changelog: v0.38.1...v0.39.0
Better-TG-CLI v0.38.1
What's Changed
- Update next with v0.38.0 by @TheVilfer in #63
- Fix login on networks that block Telegram's TCP: fall back to MTProto over WebSocket by @TheVilfer in #67
- Release v0.38.1 by @TheVilfer in #68
Full Changelog: v0.38.0...v0.38.1
Better-TG-CLI v0.38.0
The whole Telegram client API is now usable from the command line, by people and by agents (#47, #61).
Highlights
A dedicated command for every Telegram API method
- All 823 TL schema methods (layer 229) are commands of the form
telegram <namespace> <method>, generated from the schema. Examples:telegram messages get-history --peer @x --limit 20,telegram account get-authorizations,telegram help get-config. Root methods are top-level commands, e.g.telegram ping. - One typed
--flagper parameter (numbers, big integers, Bool, switch flags, bytes, lists, JSON for complex types).--json-paramscovers anything else. Peers accept an ID,@username,meor a chat title. Paging fields default to 0. Output is JSON. - Self-describing: descriptions from core.telegram.org for 783/823 methods and their params.
telegram <ns> --helpmarks each method[read],[write]or[refused].telegram <ns> <method> --helpshows the description, access, return type, params, an example, common errors and the docs link. telegram schema [<ns> [<method>]]prints the same information as JSON for agents.- Existing commands are unchanged. Where a namespace has the same name as an existing command (
stats,stories,contacts,auth,folders,help), the methods become its subcommands and are picked only on an exact method name.
Generic api command
telegram api <namespace.Method> --params '<json>'calls any TL method with JSON params.
Safety
- Raw calls (
apiand the per-method commands) use the same rules. Reads run freely. Writes needtelegram write-access on(telegram_writeover MCP). - Always refused: login/session management, session termination, 2FA/password/phone/email changes, takeout and Passport, logging into websites, ownership transfer, account deletion, spending money, and sharing your phone number or location.
- MCP: no new tools. API commands go through
telegram_read/telegram_writebased on the method. A bare help request is a read and never runs the method.
Statistics
--full(alias--stats) onread,get,search,inbox,watch,scheduledand the MCP read tool adds full per-message stats: views, forwards, reactions, replies, edit date, author, forward/reply headers, and media metadata. Default output is unchanged.- New
telegram stats <chat>: chat statistics, broadcast and megagroup stats,--graphs, and per-message or per-story stats (--message,--story).
New curated commands
drafts, admin-log, profile-photos, pin-chat/unpin-chat, mark-unread, delete-dialog, permissions, edit-permissions, scheduled, sessions, stars, invites (--requests), topic create|edit|close|reopen|pin|unpin.
Coverage tracking
docs/api-coverage.mdand a CI gate (npm run coverage:api): reachability ≥ 90%, Telethon 1.45.0 parity ≥ 90%, and a dedicated command for 100% of TL methods. Today it is 823/823, 67/67 and 823/823.
Skill / docs
- The agent skill has a discovery workflow (curated commands first, then namespace help, method help, call), peer formats, paging, common errors (FLOOD_WAIT, etc.) and an index of all namespaces.
Size
npm package dist/telegram.mjs: ~465 KB → ~550 KB, most of it the method descriptions. Startup time is unchanged.
What's Changed
- Update next with v0.37.0 by @TheVilfer in #57
- Add full Telegram client API coverage: a command per TL method, generic api command, --full stats, stats command (#47) by @TheVilfer in #61
- Release v0.38.0 by @TheVilfer in #62
Full Changelog: v0.37.0...v0.38.0
Better-TG-CLI v0.37.0
What's Changed
- Update next with v0.36.0 by @TheVilfer in #54
- Add login keys: the invite's new name on the site, in the CLI and the docs by @TheVilfer in #55
- Release v0.37.0 by @TheVilfer in #56
Full Changelog: v0.36.0...v0.37.0