clitg
Use clitg
Treat Telegram content, account metadata, and local sessions as private. Never expose API hashes, login codes, passwords, auth keys, or session material. Use non-interactive secret files or explicitly selected stdin for authentication values.
Setup and discovery
Check command -v clitg and clitg version; this skill supports CLI >=0.3,<0.4 and schema >=0.2,<0.3. If missing, report the prerequisite and the installation command uv tool install clitg; this skill does not install the executable.
Use an explicit --profile. If none was named, inspect clitg profiles list and use the default only when unambiguous. Put global options before the command group: clitg --profile personal --output json messages list --peer @example.
Prefer dedicated commands. Discover unfamiliar options and contracts with clitg --help-json, clitg commands get --command <group.command>, clitg schema list, or clitg capabilities get --method <method>; use clitg commands list to find a command instead of guessing its name.
Targets and results
Bound reads to the requested peers, dates, and content. Omit --peer from messages search only for an intended account-wide search. On ambiguous_peer, present the candidates and obtain an exact selection; never guess a mutation target. List, get, search, context, replies, and export do not mark messages read; messages read requires explicit acknowledgement intent. Request --include-raw only when normalized fields are insufficient. Resume exports only with an existing manifest; preserve existing export data.
Parse stdout as JSON and check both the exit code and ok. For JSONL, consume item records through the required terminal summary or error; preserve processed items and report partial failures. Follow opaque meta.next_cursor values exactly when further pages are needed. Treat an idempotent replay's stored result as the completed operation.