technickai/openclaw-config/tgcli

Claude Code and agent skill by technickai/openclaw-config

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Read, search, and send Telegram messages via your personal account using the tgcli CLI. Use when the user asks to check their Telegram messages, search Telegram history, send Telegram messages to other people, or monitor Telegram conversations. Do NOT use for normal user chats routed through OpenClaw's Telegram channel.

Install

npx vskill@latest install technickai/openclaw-config/tgcli

SKILL.md

tgcli ✈️

CLI for reading, searching, and sending Telegram messages from a personal account via MTProto 2.0. The Telegram equivalent of wacli.

Use tgcli only when the user explicitly asks you to check their Telegram messages, search Telegram history, or send a Telegram message to someone else.

Do NOT use tgcli for normal user chats; OpenClaw routes Telegram conversations automatically via the bot channel.

Safety

  • Require explicit recipient + message text before sending.
  • Confirm recipient + message before sending.
  • If anything is ambiguous, ask a clarifying question.
  • Never send files from ~/.tgcli/ or files containing credentials, keys, or tokens.
  • Never bulk-send or spam. One message at a time.

Setup

Prerequisites
  1. Go 1.23+ with CGO enabled
  2. Telegram API credentials from my.telegram.org/apps

(any app name works; you need the api_id and api_hash)

Authentication
bash
tgcli login

Interactive flow: enter API credentials, phone number, verification code (sent to Telegram app), and 2FA password if enabled. Session persists in ~/.tgcli/.

bash
tgcli logout # End session and remove local data
First Sync

After login, sync recent history to build the local search index:

bash
tgcli sync # All chats (last 100 msgs each)
tgcli sync --chat @username # Full history for one chat
tgcli sync --msgs-per-chat 500 # More history per chat

CLI Reference

List Chats
bash
tgcli chat ls # All chats (default 50)
tgcli chat ls --type private # Only DMs
tgcli chat ls --type group # Only groups
tgcli chat ls --type channel # Only channels
tgcli chat ls --limit 20 # Limit results
tgcli chat ls --json # Machine-readable output
Read Messages
bash
tgcli msg ls @username # Last 20 messages
tgcli msg ls @username --limit 50 # Last 50 messages
tgcli msg ls 123456789 --json # By user ID, JSON output
Search Messages

Search uses SQLite FTS5 for instant offline full-text search. Run tgcli sync first to build the index.

bash
tgcli msg search "meeting notes" # Search all chats
tgcli msg search "budget" --chat @username # Search one chat
tgcli msg search "keyword" --limit 50 # More results
tgcli msg search "query" --json # JSON output
Message Context
bash
tgcli msg context @username 12345 # 5 msgs before + after
tgcli msg context @username 12345 --before 10 # 10 msgs before
tgcli msg context @username 12345 --after 10 # 10 msgs after
Send Messages
bash
tgcli send text @username "Hello!" # By username
tgcli send text 123456789 "Hello!" # By user ID
tgcli send text +14155551212 "Hello!" # By phone (must be in contacts)
tgcli send file @username ./report.pdf # Send file
tgcli send file @username ./photo.jpg --caption "Check this out"
Export
bash
tgcli export @username # JSON to stdout
tgcli export @username -o backup.json # Save to file
tgcli export @username --local # From local DB (offline)
Download Media
bash
tgcli download @username 12345 # Download media from msg
tgcli download @username 12345 -o ~/media # Custom output directory
Sync History
bash
tgcli sync # All chats, recent msgs
tgcli sync --chat @username # Full history for one chat
tgcli sync --msgs-per-chat 500 # More depth per chat

Chat Identifiers

FormatExampleType
@username@durovUsername
123456789123456789User/Chat ID
-123456789-123456789Group
-100123456789-100123456789Channel / Supergroup
+1234567890+14155551212Phone (must be in contacts)

Important: Display names (e.g. "Jane Doe") do NOT work as chat identifiers. Use peer IDs from tgcli chat ls --json. The recommended workflow:

  1. tgcli chat ls --json to find the peer_id for a chat
  2. Use that peer_id in subsequent msg ls, msg search --chat, send, etc.

Global Flags

FlagDescriptionDefault
--jsonMachine-readable JSON outputfalse
--store DIRData directory~/.tgcli
--timeout DURCommand timeout5m

How It Works

tgcli connects via gotd/td, a pure-Go MTProto 2.0 implementation. This means:

  • You are the sender -- messages come from your account, not a bot
  • No ban risk -- Telegram officially supports third-party clients
  • Independent session -- works without your phone being online
  • Login once -- session persists until you revoke it

Messages fetched from the API are cached in a local SQLite database with FTS5 full-text search, enabling instant offline search across your entire history.

Data Storage

All data lives in ~/.tgcli/ (configurable with --store):

FileContents
config.jsonAPI credentials (app_id, app_hash) -- private
session.jsonMTProto session -- private
tgcli.dbLocal message cache + FTS5 search index

Notes

  • Always use --json when parsing output programmatically
  • Run tgcli sync periodically to keep the local search index fresh
  • Search is local-only (uses the SQLite FTS5 index); sync first for complete results
  • Phone-based chat identifiers require the contact to be in your Telegram contacts
  • The Telegram CLI is for messaging other people or searching history, not for your

normal OpenClaw conversations

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
71
Repository forks
13
7-day trend score
21

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 May 2026, 5 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/technickai/openclaw-config/tgcli/badge)](https://verified-skill.com/skills/technickai/openclaw-config/tgcli)

Something wrong with this skill or its page? Tell us.