better-tg-cli 0.28.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.es.md +372 -0
- package/README.md +37 -2
- package/README.ru.md +37 -2
- package/dist/telegram.mjs +1 -1
- package/package.json +1 -1
package/README.es.md
ADDED
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source srcset="https://raw.githubusercontent.com/TheVilfer/better-tg-cli/main/assets/banner-dark.png" media="(prefers-color-scheme: dark)"/>
|
|
4
|
+
<source srcset="https://raw.githubusercontent.com/TheVilfer/better-tg-cli/main/assets/banner-light.png" media="(prefers-color-scheme: light)"/>
|
|
5
|
+
<img src="https://raw.githubusercontent.com/TheVilfer/better-tg-cli/main/assets/banner-light.png" alt="better-tg-cli"/>
|
|
6
|
+
</picture>
|
|
7
|
+
|
|
8
|
+
[](https://www.npmjs.com/package/better-tg-cli)
|
|
9
|
+
[](https://github.com/TheVilfer/better-tg-cli/actions/workflows/ci.yml)
|
|
10
|
+
[](https://www.npmjs.com/package/better-tg-cli#provenance)
|
|
11
|
+
[](https://www.npmjs.com/package/better-tg-cli)
|
|
12
|
+
[](package.json)
|
|
13
|
+
[](#servidor-mcp)
|
|
14
|
+
[](#instalación)
|
|
15
|
+
[](LICENSE)
|
|
16
|
+
|
|
17
|
+
<p>
|
|
18
|
+
<a href="#instalación">Instalación</a> · <a href="skills/better-tg-cli/reference.md">Referencia</a> · <a href="SECURITY.md">Seguridad</a> · <a href="https://github.com/TheVilfer/better-tg-cli/issues">Issues</a> · <a href="README.md">English</a> · <a href="README.ru.md">Русский</a>
|
|
19
|
+
</p>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
Un cliente de línea de comandos no oficial para Telegram, pensado para agentes, que funciona **con tu
|
|
23
|
+
propia cuenta** (MTProto mediante [`teleproto`](https://www.npmjs.com/package/teleproto), TL layer 229).
|
|
24
|
+
El comando es `telegram`: unos 60 comandos para leer, buscar, escribir, bots, grupos y exportaciones,
|
|
25
|
+
diseñados para que los agentes de IA (Claude Code, Codex, …) puedan manejarlo de forma barata y segura.
|
|
26
|
+
|
|
27
|
+
```console
|
|
28
|
+
$ telegram inbox -n 3
|
|
29
|
+
48 unread in 7 chats (showing 3)
|
|
30
|
+
1234567890 user unread=2 Alice @alice | see you at 7?
|
|
31
|
+
-1001234567 supergroup muted unread=41 Rust Seattle @rust_sea | anyone tried 1.90?
|
|
32
|
+
-1009876543 channel unread=5 Changelog | v2.4 is out
|
|
33
|
+
$ telegram read @alice -n 1 --json
|
|
34
|
+
{"chatTitle":"Alice","messages":[{"id":812,"date":"2026-09-27T10:02:11.000Z","sender":"Alice","senderId":"1234567890","text":"see you at 7?"}]}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
> [!WARNING]
|
|
38
|
+
> **Tu cuenta, tu riesgo.** Este es un cliente no oficial que inicia sesión como tú. Telegram puede
|
|
39
|
+
> limitar o congelar las cuentas que se comportan como bots. El riesgo es mayor para las cuentas
|
|
40
|
+
> nuevas, los envíos masivos, las uniones o invitaciones en masa y todo lo que parezca spam. Úsalo
|
|
41
|
+
> como usarías Telegram tú mismo, mantén la escritura desactivada salvo que la necesites y lee
|
|
42
|
+
> [SECURITY.md](SECURITY.md) antes de dejar que un agente escriba. Los autores no se hacen
|
|
43
|
+
> responsables de las cuentas restringidas.
|
|
44
|
+
|
|
45
|
+
**Contenido:** [Por qué este fork](#por-qué-este-fork) · [Instalación](#instalación) · [Inicio de sesión](#inicio-de-sesión) · [Uso](#uso) · [Servidor MCP](#servidor-mcp) · [FAQ](#faq) · [Desarrollo](#desarrollo) · [Privacidad](#privacidad) · [Licencia](#licencia)
|
|
46
|
+
|
|
47
|
+
## Por qué este fork
|
|
48
|
+
|
|
49
|
+
Un fork de [skillhq/telegram](https://github.com/skillhq/telegram), rehecho para agentes:
|
|
50
|
+
|
|
51
|
+
- **Capa de Telegram actual.** Las respuestas de bots con contenido enriquecido (layer 228+) muestran
|
|
52
|
+
el texto real en lugar de `(no text)`. Puedes pulsar botones de bots (`click`) y recorrer sus menús.
|
|
53
|
+
- **Salida que ahorra tokens.** Fuera de una TTY obtienes una línea compacta por elemento con el ID
|
|
54
|
+
primero, y JSON en una sola línea sin los campos vacíos. `--max-text` recorta las publicaciones
|
|
55
|
+
largas. `telegram help-all -g <palabra>` muestra todos los flags, generados a partir del código.
|
|
56
|
+
- **Lecturas exactas.** Paginación real para `--since/--until`, `--unread`, hilos y comentarios de
|
|
57
|
+
canales, temas de foros, `get` por ID, filtros de búsqueda por tipo, remitente o fecha, y `me` /
|
|
58
|
+
`Избранное` para los Mensajes guardados.
|
|
59
|
+
- **Seguro por defecto.** La cuenta es de solo lectura hasta que una persona ejecuta
|
|
60
|
+
`write-access on [--for 1h]` y lo confirma en un prompt del terminal o en un diálogo de macOS, así
|
|
61
|
+
que un agente no puede activarlo por su cuenta. Cada escritura se registra en
|
|
62
|
+
`~/.config/tg/audit.jsonl`. Los secretos se guardan en el Keychain de macOS, en el Secret Service
|
|
63
|
+
de Linux o en 1Password.
|
|
64
|
+
- **Pequeño y autónomo.** El paquete de npm es un único archivo de 0,3 MB sin dependencias en tiempo
|
|
65
|
+
de ejecución. Homebrew instala un binario independiente que no necesita Node.
|
|
66
|
+
|
|
67
|
+
## Instalación
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
brew install thevilfer/tap/better-tg-cli # binario independiente, macOS y Linux
|
|
71
|
+
npm install -g better-tg-cli # Node >= 20, cualquier sistema operativo
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
En Windows (experimental), con [Scoop](https://scoop.sh) o npm:
|
|
75
|
+
|
|
76
|
+
```powershell
|
|
77
|
+
scoop bucket add thevilfer https://github.com/TheVilfer/scoop-bucket
|
|
78
|
+
scoop install better-tg-cli
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
El `telegram.exe` de Windows no tiene firma de código, así que SmartScreen puede mostrar una
|
|
82
|
+
advertencia al descargarlo desde la release.
|
|
83
|
+
|
|
84
|
+
`telegram update` actualiza una instalación existente, sea cual sea el método que usaste. En un
|
|
85
|
+
terminal, el CLI busca nuevas versiones una vez al día. Los agentes y los pipes nunca ven ese aviso,
|
|
86
|
+
y `TG_NO_UPDATE_CHECK=1` lo desactiva.
|
|
87
|
+
|
|
88
|
+
¿Descargas a mano un binario desde Releases en macOS? No está notarizado, así que quítale la marca de
|
|
89
|
+
cuarentena una vez: `xattr -d com.apple.quarantine ./telegram`. Homebrew lo hace por ti.
|
|
90
|
+
|
|
91
|
+
**No** instales `@skillhq/telegram`. Es la build antigua del upstream sobre GramJS (layer 198).
|
|
92
|
+
|
|
93
|
+
Todos los canales distribuyen la misma versión desde una única release:
|
|
94
|
+
|
|
95
|
+
| Dónde | Qué obtienes | Instalación |
|
|
96
|
+
|---|---|---|
|
|
97
|
+
| [Homebrew](https://github.com/TheVilfer/homebrew-tap) | binario independiente | `brew install thevilfer/tap/better-tg-cli` |
|
|
98
|
+
| [npm](https://www.npmjs.com/package/better-tg-cli) | CLI y servidor MCP (Node 20+) | `npm install -g better-tg-cli` |
|
|
99
|
+
| [Scoop](https://github.com/TheVilfer/scoop-bucket) (Windows, experimental) | `telegram.exe` independiente | `scoop bucket add thevilfer https://github.com/TheVilfer/scoop-bucket` y luego `scoop install better-tg-cli` |
|
|
100
|
+
| [GitHub Releases](https://github.com/TheVilfer/better-tg-cli/releases) | binarios y SHA256SUMS | descarga manual |
|
|
101
|
+
| Plugin de Claude Code | skill y servidor MCP | [ver abajo](#plugin-para-claude-code) |
|
|
102
|
+
| Extensión de Claude Desktop | servidor MCP, se ejecuta con el Node integrado de Claude | [descarga el `.mcpb`](https://github.com/TheVilfer/better-tg-cli/releases/latest/download/better-tg-cli.mcpb) y ábrelo |
|
|
103
|
+
| Plugin de Grok Build | skill y servidor MCP | [ver abajo](#plugin-para-grok-build) |
|
|
104
|
+
| Extensión de Gemini CLI | skill y servidor MCP | `gemini extensions install https://github.com/TheVilfer/better-tg-cli` |
|
|
105
|
+
| Cursor, VS Code | servidor MCP | [botones de un clic](#servidor-mcp) |
|
|
106
|
+
| Grok Bot | servidor MCP por HTTP desde tu Mac | [ver abajo](#grok-bot-mcp-remoto-por-http) |
|
|
107
|
+
| El propio CLI | skill de agente para Claude Code, Codex, Cursor, Gemini CLI y 7 más | `telegram skill install` |
|
|
108
|
+
| [skills.sh](https://skills.sh) | skill de agente para cualquier agente con shell | `npx skills add TheVilfer/better-tg-cli` |
|
|
109
|
+
| [MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=better-tg-cli) | entrada del servidor MCP `io.github.TheVilfer/better-tg-cli` | desde tu cliente MCP |
|
|
110
|
+
|
|
111
|
+
### Plugin para Claude Code
|
|
112
|
+
|
|
113
|
+
La skill y el servidor MCP juntos, en una sola instalación:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
/plugin marketplace add TheVilfer/better-tg-cli
|
|
117
|
+
/plugin install better-tg-cli@better-tg-cli
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Ejecuta el servidor MCP mediante `npx`, así que basta con Node 20+. Inicia sesión una vez con
|
|
121
|
+
`telegram auth --qr` (o `npx better-tg-cli auth --qr`) en un terminal.
|
|
122
|
+
|
|
123
|
+
### Plugin para Codex
|
|
124
|
+
|
|
125
|
+
La misma skill y el mismo servidor MCP como plugin de Codex (también aparece en la app de escritorio
|
|
126
|
+
de ChatGPT):
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
codex plugin marketplace add TheVilfer/better-tg-cli
|
|
130
|
+
codex plugin add better-tg-cli@better-tg-cli
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Plugin para Grok Build
|
|
134
|
+
|
|
135
|
+
[Grok Build](https://x.ai/cli) instala el mismo plugin, con la skill y el servidor MCP juntos:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
grok plugin install TheVilfer/better-tg-cli --trust
|
|
139
|
+
# o añade primero el marketplace y luego instala desde el menú /plugins:
|
|
140
|
+
grok plugin marketplace add TheVilfer/better-tg-cli && grok plugin install better-tg-cli --trust
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Como skill de agente
|
|
144
|
+
|
|
145
|
+
La skill ([`skills/better-tg-cli`](skills/better-tg-cli/SKILL.md)) enseña a cualquier agente con
|
|
146
|
+
shell (Claude Code, Codex, Cursor, Gemini CLI, OpenCode y otros) a usar el CLI de forma segura.
|
|
147
|
+
Comprueba la configuración, nunca inicia sesión por su cuenta, deja las escrituras sujetas a tu
|
|
148
|
+
aprobación y evita los patrones que llevan a un baneo. El CLI incluye la skill y la instala él mismo,
|
|
149
|
+
así que siempre coincide con tu versión:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
telegram skill install # en todos los agentes compatibles de esta máquina
|
|
153
|
+
telegram skill install -a claude-code codex
|
|
154
|
+
telegram skill status # instalada, desactualizada, enlazada o ausente, por agente
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Conoce Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, Grok Build, OpenCode, Goose, Droid,
|
|
158
|
+
Windsurf y Pi (`telegram skill status` lista las carpetas). Vuelve a ejecutarlo después de
|
|
159
|
+
`telegram update` para actualizar la skill. Una carpeta de skill que sea un enlace simbólico no se
|
|
160
|
+
toca a menos que pases `--force`. Para otros agentes, usa el CLI [skills](https://skills.sh):
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
npx skills add TheVilfer/better-tg-cli # elige los agentes de forma interactiva
|
|
164
|
+
npx skills add TheVilfer/better-tg-cli -g -a claude-code -a codex -y
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Inicio de sesión
|
|
168
|
+
|
|
169
|
+
**A través de tu agente** (lo más fácil): pídele que configure Telegram o ejecuta tú mismo
|
|
170
|
+
`telegram onboard`. Abre una página en 127.0.0.1 donde obtienes una invitación de
|
|
171
|
+
[better-tg-cli.com](https://better-tg-cli.com) (vuelve sola a la página) o introduces tus propias
|
|
172
|
+
claves, escaneas un código QR y escribes tu contraseña de 2FA. El agente solo lanza el comando y
|
|
173
|
+
espera: nunca ve la invitación, el código QR ni la contraseña. La página solo responde en una ruta
|
|
174
|
+
secreta aleatoria y se cierra cuando terminas.
|
|
175
|
+
|
|
176
|
+
**Con tus propias claves de API** (la opción por defecto):
|
|
177
|
+
1. Abre https://my.telegram.org/apps, crea una aplicación y copia su `api_id` y su `api_hash`.
|
|
178
|
+
2. Ejecuta `telegram auth --qr` e introdúcelos. Después, en tu teléfono, ve a Ajustes → Dispositivos →
|
|
179
|
+
Vincular dispositivo de escritorio y escanea el código QR. Introduce tu contraseña de 2FA si
|
|
180
|
+
tienes una. El `telegram auth` sin más te pide en su lugar tu número de teléfono y un código de
|
|
181
|
+
inicio de sesión. Si el QR no se escanea con un tema claro del terminal, ejecútalo con
|
|
182
|
+
`TG_QR_INVERT=1`.
|
|
183
|
+
|
|
184
|
+
**Con una invitación.** Con un token de invitación no necesitas tus propias claves. Consigue uno en
|
|
185
|
+
[better-tg-cli.com](https://better-tg-cli.com) (confirma tu correo con un código; la página está en
|
|
186
|
+
ruso y también tiene una guía de instalación) o pídeselo al mantenedor.
|
|
187
|
+
Ejecuta `telegram auth --invite --qr` y pega el token, o pásalo como `TG_INVITE=…` o `--invite -`. El
|
|
188
|
+
servicio de invitaciones (`broker/`) entrega las claves de la aplicación una sola vez, solo para este
|
|
189
|
+
inicio de sesión. El `api_hash` no se guarda en tu máquina. Las invitaciones son personales, permiten
|
|
190
|
+
un número limitado de inicios de sesión y pueden revocarse.
|
|
191
|
+
|
|
192
|
+
La sesión se guarda en el Keychain de macOS (servicio `tg-cli`) o en 1Password con
|
|
193
|
+
`--op-vault <vault>`. `telegram logout` la elimina. En Linux va al Secret Service (GNOME Keyring,
|
|
194
|
+
KWallet, KeePassXC) a través de `secret-tool`, que necesita el paquete `libsecret-tools`. Una sesión
|
|
195
|
+
ya guardada en el archivo de configuración se traslada allí automáticamente. Sin ningún almacén de
|
|
196
|
+
secretos, la sesión se guarda en `~/.config/tg/config.json5` (modo 0600) y los comandos de escritura
|
|
197
|
+
siguen desactivados. En Linux, `write-access on` se confirma en un prompt del terminal. En Windows los
|
|
198
|
+
secretos se guardan en `%APPDATA%\tg\secrets.dpapi`, cifrados con DPAPI para tu usuario de Windows
|
|
199
|
+
(solo tú puedes descifrarlos en esta máquina), y `write-access on` pregunta en una ventana Sí/No
|
|
200
|
+
cuando no hay terminal.
|
|
201
|
+
|
|
202
|
+
## Uso
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
telegram chats --type channel # una línea por chat, con el ID primero
|
|
206
|
+
telegram read "Chat" --since 1h # rango exacto, lo más reciente primero (--asc para invertir)
|
|
207
|
+
telegram read @channel --thread 123 # comentarios de una publicación
|
|
208
|
+
telegram search "invoice" --chat "Work" --type document
|
|
209
|
+
telegram get "Chat" 812 813 # mensajes exactos por ID
|
|
210
|
+
telegram download "Chat" 812 # guarda el archivo adjunto
|
|
211
|
+
telegram sync --chat "Chat" --output ./export --resume # exportación incremental a markdown
|
|
212
|
+
|
|
213
|
+
telegram write-access on --for 1h # esto lo confirma una persona
|
|
214
|
+
telegram send @alice "on my way"
|
|
215
|
+
printf '%s' "$text" | telegram send @alice - # texto largo o de varias líneas: desde stdin, sin problemas de comillas
|
|
216
|
+
telegram reply "Chat" 812 "on it" --silent
|
|
217
|
+
telegram click @SomeBot 4410 "Settings" # pulsa un botón inline
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Los comandos de lectura aceptan `--json`, y algunos también `--markdown`. Consulta todos los comandos
|
|
221
|
+
con `telegram help-all`. [reference.md](skills/better-tg-cli/reference.md) cubre el comportamiento que
|
|
222
|
+
la lista de flags no puede explicar: formatos de salida, hilos, botones de bots, comandos de
|
|
223
|
+
administración y resolución de problemas.
|
|
224
|
+
|
|
225
|
+
## Servidor MCP
|
|
226
|
+
|
|
227
|
+
Para clientes sin shell (Claude Desktop, Cursor y otros hosts MCP), `telegram mcp` ofrece tres
|
|
228
|
+
herramientas por stdio:
|
|
229
|
+
- `telegram_help`: una referencia de flags con búsqueda;
|
|
230
|
+
- `telegram_read`: de solo lectura, así que los clientes pueden aprobarla automáticamente;
|
|
231
|
+
- `telegram_write`: marcada como destructiva, y aun así necesita que tú actives `write-access on`.
|
|
232
|
+
|
|
233
|
+
Primero inicia sesión con `telegram auth` en un terminal. Después, instálalo con un clic:
|
|
234
|
+
|
|
235
|
+
[](https://cursor.com/en/install-mcp?name=telegram&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImJldHRlci10Zy1jbGlAbGF0ZXN0IiwibWNwIl19)
|
|
236
|
+
[](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522telegram%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522better-tg-cli%2540latest%2522%252C%2522mcp%2522%255D%257D)
|
|
237
|
+
[](https://github.com/TheVilfer/better-tg-cli/releases/latest/download/better-tg-cli.mcpb)
|
|
238
|
+
|
|
239
|
+
La extensión de Claude Desktop no necesita Node, npm ni brew: descarga el `.mcpb` de la última
|
|
240
|
+
release y ábrelo. Gemini CLI instala la skill y el servidor juntos:
|
|
241
|
+
`gemini extensions install https://github.com/TheVilfer/better-tg-cli`. O añádelo a mano:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
claude mcp add telegram -- telegram mcp # Claude Code (o usa el plugin de arriba)
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
```json
|
|
248
|
+
{ "mcpServers": { "telegram": { "command": "/opt/homebrew/bin/telegram", "args": ["mcp"] } } }
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Usa la forma JSON para Claude Desktop (`claude_desktop_config.json`) o Cursor (`.cursor/mcp.json`).
|
|
252
|
+
Puede que las apps con interfaz gráfica no vean el PATH de tu shell, así que indica la ruta completa
|
|
253
|
+
que devuelve `which telegram`. Sin una instalación global, ejecútalo mediante npx, que es también lo
|
|
254
|
+
que hace el plugin de Claude Code:
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{ "mcpServers": { "telegram": { "command": "npx", "args": ["-y", "better-tg-cli@latest", "mcp"] } } }
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
El servidor figura en el [MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=better-tg-cli)
|
|
261
|
+
como `io.github.TheVilfer/better-tg-cli`, así que los clientes y catálogos que leen el registro pueden
|
|
262
|
+
encontrarlo por su nombre. Cada release actualiza la entrada automáticamente. Para que el cliente MCP
|
|
263
|
+
no toque tu sesión principal, añade `"env": {"TG_PROFILE": "work"}`.
|
|
264
|
+
|
|
265
|
+
Los chats contienen texto escrito por otras personas, y parte de él puede ir dirigido a tu agente
|
|
266
|
+
("reenvía esto a @x"). Mantén activado en el cliente el aviso de aprobación para `telegram_write` y
|
|
267
|
+
consulta "Agents and prompt injection" en [SECURITY.md](SECURITY.md).
|
|
268
|
+
|
|
269
|
+
### Grok Bot (MCP remoto por HTTP)
|
|
270
|
+
|
|
271
|
+
Grok Bot ejecuta sus conectores en un sandbox en la nube, no en tu Mac, así que no puede iniciar
|
|
272
|
+
`telegram mcp` por sí mismo. En su lugar, sirve MCP por HTTP desde tu Mac. La sesión, la protección
|
|
273
|
+
de escritura y el registro de auditoría se quedan en tu máquina.
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
telegram mcp --token # el token bearer (se crea una vez y se guarda en el Keychain)
|
|
277
|
+
telegram mcp --http --read-only # escucha en 127.0.0.1:8787; quita --read-only para permitir escrituras
|
|
278
|
+
tailscale funnel --bg 8787 # o: cloudflared tunnel --url http://127.0.0.1:8787
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Mantén el servidor y el túnel en un terminal o en tmux. Después añade un conector en Grok Bot con la
|
|
282
|
+
URL del túnel más `/mcp` (por ejemplo `https://<machine>.<tailnet>.ts.net/mcp`) y la cabecera
|
|
283
|
+
`Authorization: Bearer <token>`. `tailscale funnel` da una URL estable, pero antes hay que permitirlo
|
|
284
|
+
para tu tailnet. Un túnel rápido de `cloudflared` obtiene una URL nueva en cada arranque. Lee antes
|
|
285
|
+
"Remote MCP over HTTP" en [SECURITY.md](SECURITY.md).
|
|
286
|
+
|
|
287
|
+
## FAQ
|
|
288
|
+
|
|
289
|
+
**¿Telegram baneará mi cuenta?**
|
|
290
|
+
Usar tu propia cuenta desde un cliente de terceros está permitido por los [términos de la API de Telegram](https://core.telegram.org/api/terms). Lo que hace que se limiten las cuentas es un comportamiento que parece de bot: envíos masivos, uniones o invitaciones en masa, spam y cuentas recién creadas que hacen mucho de golpe. Úsalo como usarías Telegram tú mismo. La skill indica a los agentes que eviten estos patrones.
|
|
291
|
+
|
|
292
|
+
**¿Es un bot?**
|
|
293
|
+
No. Inicia sesión como tú por MTProto, igual que Telegram Desktop, y ve exactamente lo que ves tú. Los bots no pueden leer tus chats; esto sí.
|
|
294
|
+
|
|
295
|
+
**¿Puede un agente enviar mensajes por su cuenta?**
|
|
296
|
+
Solo después de que actives la escritura. `telegram write-access on` te pide que lo confirmes en el terminal o en un diálogo de macOS, algo que un agente no puede responder. A partir de ahí, las escrituras necesitan un chat exacto y cada una queda registrada. Por MCP, escribir es una herramienta aparte que los clientes pueden pedirte que apruebes cada vez. Los detalles están en [SECURITY.md](SECURITY.md).
|
|
297
|
+
|
|
298
|
+
**¿Leer marca los mensajes como leídos?**
|
|
299
|
+
No. `read`, `inbox` y `search` dejan los chats sin leer. Solo `telegram mark-read` los marca.
|
|
300
|
+
|
|
301
|
+
**¿Necesito mis propias claves de API?**
|
|
302
|
+
Sí, de [my.telegram.org/apps](https://my.telegram.org/apps). Son gratuitas y se crean en un minuto. Con una invitación de [better-tg-cli.com](https://better-tg-cli.com), `telegram auth --invite --qr` te permite iniciar sesión sin ellas.
|
|
303
|
+
|
|
304
|
+
**¿Dónde se guarda mi sesión y quién puede ver mis mensajes?**
|
|
305
|
+
La sesión está en el Keychain de macOS, en el Secret Service de Linux o en 1Password. El CLI habla directamente con Telegram y no tiene analíticas. Los únicos otros hosts son npm, para una comprobación diaria de versión, y el servicio de invitaciones al iniciar sesión. Consulta [PRIVACY.md](PRIVACY.md).
|
|
306
|
+
|
|
307
|
+
**¿Puedo usar varias cuentas?**
|
|
308
|
+
Sí, con `TG_PROFILE`: cada perfil tiene su propio inicio de sesión, configuración y elementos del Keychain, por ejemplo `TG_PROFILE=work telegram auth --qr`. El cambio de cuenta propiamente dicho se sigue en [#5](https://github.com/TheVilfer/better-tg-cli/issues/5).
|
|
309
|
+
|
|
310
|
+
**¿Funciona en Windows?**
|
|
311
|
+
Sí, de forma experimental: `scoop install better-tg-cli` o npm. Los secretos se guardan con DPAPI de
|
|
312
|
+
Windows y la CI ejecuta los tests en Windows, pero el uso real allí está menos probado que en macOS y
|
|
313
|
+
Linux. Por favor, informa de los problemas en los issues.
|
|
314
|
+
|
|
315
|
+
**¿Puedo usarlo desde Grok Bot, ChatGPT u otro agente en la nube?**
|
|
316
|
+
Los agentes en la nube no pueden iniciar un programa en tu ordenador, así que ejecuta el servidor MCP por HTTP y accede a él a través de un túnel. Consulta [Grok Bot](#grok-bot-mcp-remoto-por-http).
|
|
317
|
+
|
|
318
|
+
**¿Cómo actualizo?**
|
|
319
|
+
Ejecuta `telegram update`. Usa el mismo canal desde el que instalaste: Homebrew, npm o un binario de release.
|
|
320
|
+
Si instalaste la skill de agente con `telegram skill install`, vuelve a ejecutarlo para actualizarla.
|
|
321
|
+
|
|
322
|
+
## Desarrollo
|
|
323
|
+
|
|
324
|
+
[DEVELOPMENT.md](DEVELOPMENT.md) cubre:
|
|
325
|
+
- la ejecución desde el código fuente (`scripts/tg-dev`);
|
|
326
|
+
- perfiles de desarrollo aislados (`TG_PROFILE`) que nunca tocan tu sesión real;
|
|
327
|
+
- los servidores de prueba de Telegram;
|
|
328
|
+
- la depuración en el editor y los tests.
|
|
329
|
+
|
|
330
|
+
Las releases se preparan con `scripts/release.sh patch|minor|major` (un PR de release) y, después del merge, con `scripts/release.sh tag`. Un tag compila los binarios y
|
|
331
|
+
los publica en GitHub Releases, npm (trusted publishing con provenance), el tap de Homebrew y el
|
|
332
|
+
MCP Registry. Consulta
|
|
333
|
+
[CONTRIBUTING.md](CONTRIBUTING.md).
|
|
334
|
+
|
|
335
|
+
## Desinstalación
|
|
336
|
+
|
|
337
|
+
1. `telegram logout` borra la sesión guardada. Para cerrarla también del lado de Telegram, termínala
|
|
338
|
+
en Telegram → Ajustes → Dispositivos.
|
|
339
|
+
2. `telegram skill uninstall` quita la skill de los agentes en los que se instaló.
|
|
340
|
+
3. Elimina el programa: `brew uninstall better-tg-cli`, `npm uninstall -g better-tg-cli` o
|
|
341
|
+
`scoop uninstall better-tg-cli`. Si es un binario de Releases, borra `telegram` / `telegram.exe`.
|
|
342
|
+
4. Borra la carpeta de configuración: `~/.config/tg` (`%APPDATA%\tg` en Windows), además de
|
|
343
|
+
`~/.config/tg-<profile>` por cada `TG_PROFILE` que hayas usado. En Windows esto también elimina el
|
|
344
|
+
archivo de secretos DPAPI. En los demás sistemas, el api_hash y el flag de write-access siguen en el
|
|
345
|
+
almacén de secretos: borra los elementos `tg-cli` en Acceso a Llaveros (o
|
|
346
|
+
`secret-tool clear service tg-cli`), o el elemento de tu bóveda de 1Password.
|
|
347
|
+
|
|
348
|
+
## Privacidad
|
|
349
|
+
|
|
350
|
+
Sin analíticas. El único servicio que operamos es el broker de invitaciones opcional, que nunca ve
|
|
351
|
+
tus mensajes ni tu sesión. Consulta [PRIVACY.md](PRIVACY.md) para conocer los tres hosts con los que
|
|
352
|
+
habla el CLI y lo que guarda localmente.
|
|
353
|
+
|
|
354
|
+
## Code signing policy
|
|
355
|
+
|
|
356
|
+
Los binarios de Windows se compilan a partir de este repositorio únicamente con GitHub Actions
|
|
357
|
+
(`.github/workflows/release.yml`), nunca en una máquina personal. Hemos solicitado la firma de código
|
|
358
|
+
gratuita de SignPath Foundation; una vez esté disponible, los binarios de las releases llevarán: *Free
|
|
359
|
+
code signing provided by [SignPath.io](https://about.signpath.io), certificate by [SignPath Foundation](https://signpath.org).*
|
|
360
|
+
Hasta entonces, el `telegram.exe` de Windows no está firmado; los binarios de macOS tienen firma ad-hoc.
|
|
361
|
+
|
|
362
|
+
- Committers y revisores: [@TheVilfer](https://github.com/TheVilfer)
|
|
363
|
+
- Aprobadores (cada release firmada): [@TheVilfer](https://github.com/TheVilfer)
|
|
364
|
+
- Política de privacidad: [PRIVACY.md](PRIVACY.md). El CLI solo habla con Telegram, con el broker de
|
|
365
|
+
invitaciones cuando inicias sesión con una invitación y con el registro de npm para una
|
|
366
|
+
comprobación diaria de actualizaciones en un terminal (se desactiva con `TG_NO_UPDATE_CHECK=1`).
|
|
367
|
+
|
|
368
|
+
## Licencia
|
|
369
|
+
|
|
370
|
+
MIT, consulta [LICENSE](LICENSE). Basado en [skillhq/telegram](https://github.com/skillhq/telegram),
|
|
371
|
+
de Derek Rein. No está afiliado a Telegram ni respaldado por Telegram; "Telegram" es una marca
|
|
372
|
+
registrada de su propietario. Úsalo de acuerdo con los [Términos del servicio de la API de Telegram](https://core.telegram.org/api/terms).
|
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
[](LICENSE)
|
|
16
16
|
|
|
17
17
|
<p>
|
|
18
|
-
<a href="#install">Install</a> · <a href="skills/better-tg-cli/reference.md">Reference</a> · <a href="SECURITY.md">Security</a> · <a href="https://github.com/TheVilfer/better-tg-cli/issues">Issues</a> · <a href="README.ru.md">Русский</a>
|
|
18
|
+
<a href="#install">Install</a> · <a href="skills/better-tg-cli/reference.md">Reference</a> · <a href="SECURITY.md">Security</a> · <a href="https://github.com/TheVilfer/better-tg-cli/issues">Issues</a> · <a href="README.ru.md">Русский</a> · <a href="README.es.md">Español</a>
|
|
19
19
|
</p>
|
|
20
20
|
</div>
|
|
21
21
|
|
|
@@ -117,6 +117,15 @@ The skill and the MCP server together, in one install:
|
|
|
117
117
|
It runs the MCP server through `npx`, so Node 20+ is enough. Log in once with `telegram auth --qr`
|
|
118
118
|
(or `npx better-tg-cli auth --qr`) in a terminal.
|
|
119
119
|
|
|
120
|
+
### Codex plugin
|
|
121
|
+
|
|
122
|
+
The same skill and MCP server as a Codex plugin (also shows up in the ChatGPT desktop app):
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
codex plugin marketplace add TheVilfer/better-tg-cli
|
|
126
|
+
codex plugin add better-tg-cli@better-tg-cli
|
|
127
|
+
```
|
|
128
|
+
|
|
120
129
|
### Grok Build plugin
|
|
121
130
|
|
|
122
131
|
[Grok Build](https://x.ai/cli) installs the same plugin, skill and MCP server together:
|
|
@@ -307,17 +316,43 @@ If you installed the agent skill with `telegram skill install`, run that again t
|
|
|
307
316
|
- Telegram test servers;
|
|
308
317
|
- editor debugging and tests.
|
|
309
318
|
|
|
310
|
-
Releases are cut by `scripts/release.sh patch|minor|major
|
|
319
|
+
Releases are cut by `scripts/release.sh patch|minor|major` (a release PR), then `scripts/release.sh tag` after the merge. A tag builds the binaries and
|
|
311
320
|
publishes to GitHub Releases, npm (trusted publishing with provenance), the Homebrew tap and the
|
|
312
321
|
MCP Registry. See
|
|
313
322
|
[CONTRIBUTING.md](CONTRIBUTING.md).
|
|
314
323
|
|
|
324
|
+
## Uninstall
|
|
325
|
+
|
|
326
|
+
1. `telegram logout` deletes the saved session. To end it on Telegram's side too, terminate it in
|
|
327
|
+
Telegram → Settings → Devices.
|
|
328
|
+
2. `telegram skill uninstall` removes the skill from the agents it was installed into.
|
|
329
|
+
3. Remove the program: `brew uninstall better-tg-cli`, `npm uninstall -g better-tg-cli` or
|
|
330
|
+
`scoop uninstall better-tg-cli`. For a binary from Releases, delete `telegram` / `telegram.exe`.
|
|
331
|
+
4. Delete the config folder: `~/.config/tg` (`%APPDATA%\tg` on Windows), plus `~/.config/tg-<profile>`
|
|
332
|
+
for any `TG_PROFILE` you used. On Windows this also removes the DPAPI secrets file. Elsewhere the
|
|
333
|
+
api_hash and write-access flag stay in the secret store: delete the `tg-cli` items in Keychain
|
|
334
|
+
Access (or `secret-tool clear service tg-cli`), or the item in your 1Password vault.
|
|
335
|
+
|
|
315
336
|
## Privacy
|
|
316
337
|
|
|
317
338
|
No analytics. The only service we run is the optional invite broker, which never sees your
|
|
318
339
|
messages or session. See [PRIVACY.md](PRIVACY.md) for the three hosts the CLI talks to and what it
|
|
319
340
|
stores locally.
|
|
320
341
|
|
|
342
|
+
## Code signing policy
|
|
343
|
+
|
|
344
|
+
Windows binaries are built from this repository by GitHub Actions only (`.github/workflows/release.yml`),
|
|
345
|
+
never on a personal machine. We have applied for free code signing from SignPath Foundation; once it
|
|
346
|
+
is in place, release binaries will carry: *Free code signing provided by
|
|
347
|
+
[SignPath.io](https://about.signpath.io), certificate by [SignPath Foundation](https://signpath.org).*
|
|
348
|
+
Until then the Windows `telegram.exe` is unsigned; macOS binaries are ad-hoc signed.
|
|
349
|
+
|
|
350
|
+
- Committers and reviewers: [@TheVilfer](https://github.com/TheVilfer)
|
|
351
|
+
- Approvers (each signed release): [@TheVilfer](https://github.com/TheVilfer)
|
|
352
|
+
- Privacy policy: [PRIVACY.md](PRIVACY.md). The CLI talks only to Telegram, to the invite broker
|
|
353
|
+
when you log in with an invite, and to the npm registry for a daily update check in a terminal
|
|
354
|
+
(off with `TG_NO_UPDATE_CHECK=1`).
|
|
355
|
+
|
|
321
356
|
## License
|
|
322
357
|
|
|
323
358
|
MIT, see [LICENSE](LICENSE). Based on [skillhq/telegram](https://github.com/skillhq/telegram) by
|
package/README.ru.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
[](LICENSE)
|
|
16
16
|
|
|
17
17
|
<p>
|
|
18
|
-
<a href="#установка">Установка</a> · <a href="skills/better-tg-cli/reference.md">Справка</a> · <a href="SECURITY.md">Безопасность</a> · <a href="https://github.com/TheVilfer/better-tg-cli/issues">Issues</a> · <a href="README.md">English</a>
|
|
18
|
+
<a href="#установка">Установка</a> · <a href="skills/better-tg-cli/reference.md">Справка</a> · <a href="SECURITY.md">Безопасность</a> · <a href="https://github.com/TheVilfer/better-tg-cli/issues">Issues</a> · <a href="README.md">English</a> · <a href="README.es.md">Español</a>
|
|
19
19
|
</p>
|
|
20
20
|
</div>
|
|
21
21
|
|
|
@@ -116,6 +116,15 @@ scoop install better-tg-cli
|
|
|
116
116
|
MCP-сервер запускается через `npx`, так что хватит Node 20+. Один раз войдите в терминале:
|
|
117
117
|
`telegram auth --qr` (или `npx better-tg-cli auth --qr`).
|
|
118
118
|
|
|
119
|
+
### Плагин для Codex
|
|
120
|
+
|
|
121
|
+
Тот же скилл и MCP-сервер в виде плагина Codex (он появится и в десктопном приложении ChatGPT):
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
codex plugin marketplace add TheVilfer/better-tg-cli
|
|
125
|
+
codex plugin add better-tg-cli@better-tg-cli
|
|
126
|
+
```
|
|
127
|
+
|
|
119
128
|
### Плагин для Grok Build
|
|
120
129
|
|
|
121
130
|
[Grok Build](https://x.ai/cli) ставит тот же плагин, скилл и MCP-сервер вместе:
|
|
@@ -308,16 +317,42 @@ tailscale funnel --bg 8787 # или: cloudflared tunnel --url h
|
|
|
308
317
|
- тестовые серверы Telegram;
|
|
309
318
|
- отладка в редакторе и тесты.
|
|
310
319
|
|
|
311
|
-
Релиз
|
|
320
|
+
Релиз готовит `scripts/release.sh patch|minor|major` (PR с новой версией), после мержа `scripts/release.sh tag` ставит тег. Тег собирает бинарники и публикует их в
|
|
312
321
|
GitHub Releases, в npm (trusted publishing с provenance), в Homebrew-тап и в MCP Registry. Подробнее в
|
|
313
322
|
[CONTRIBUTING.md](CONTRIBUTING.md).
|
|
314
323
|
|
|
324
|
+
## Удаление
|
|
325
|
+
|
|
326
|
+
1. `telegram logout` удаляет сохранённую сессию. Чтобы завершить её и на стороне Telegram,
|
|
327
|
+
закройте её в Telegram → Настройки → Устройства.
|
|
328
|
+
2. `telegram skill uninstall` убирает скилл из агентов, куда он был установлен.
|
|
329
|
+
3. Удалите саму программу: `brew uninstall better-tg-cli`, `npm uninstall -g better-tg-cli` или
|
|
330
|
+
`scoop uninstall better-tg-cli`. Бинарник из Releases удаляется как обычный файл.
|
|
331
|
+
4. Удалите папку настроек: `~/.config/tg` (`%APPDATA%\tg` на Windows) и `~/.config/tg-<профиль>`
|
|
332
|
+
для каждого `TG_PROFILE`, который вы использовали. На Windows вместе с ней удалится и файл секретов
|
|
333
|
+
DPAPI. На других системах api_hash и флаг write-access остаются в хранилище секретов: удалите
|
|
334
|
+
записи `tg-cli` в «Связке ключей» (или `secret-tool clear service tg-cli`) либо запись в 1Password.
|
|
335
|
+
|
|
315
336
|
## Приватность
|
|
316
337
|
|
|
317
338
|
Аналитики нет. Единственный наш сервис — необязательный брокер инвайтов, и он не видит ни ваших
|
|
318
339
|
сообщений, ни сессии. В [PRIVACY.md](PRIVACY.md) перечислены три хоста, с которыми общается CLI,
|
|
319
340
|
и то, что он хранит локально.
|
|
320
341
|
|
|
342
|
+
## Code signing policy
|
|
343
|
+
|
|
344
|
+
Бинарники для Windows собираются из этого репозитория только в GitHub Actions
|
|
345
|
+
(`.github/workflows/release.yml`), никогда не на личной машине. Мы подали заявку на бесплатную
|
|
346
|
+
подпись кода от SignPath Foundation; когда её одобрят, в релизах будет: *Free code signing provided
|
|
347
|
+
by [SignPath.io](https://about.signpath.io), certificate by [SignPath Foundation](https://signpath.org).*
|
|
348
|
+
Пока `telegram.exe` для Windows не подписан; бинарники для macOS подписаны ad-hoc.
|
|
349
|
+
|
|
350
|
+
- Коммиттеры и ревьюеры: [@TheVilfer](https://github.com/TheVilfer)
|
|
351
|
+
- Утверждают каждый подписанный релиз: [@TheVilfer](https://github.com/TheVilfer)
|
|
352
|
+
- Политика приватности: [PRIVACY.md](PRIVACY.md). CLI обращается только к Telegram, к брокеру
|
|
353
|
+
инвайтов при входе по инвайту и раз в день к npm-реестру за номером версии, если запущен в
|
|
354
|
+
терминале (отключается `TG_NO_UPDATE_CHECK=1`).
|
|
355
|
+
|
|
321
356
|
## Лицензия
|
|
322
357
|
|
|
323
358
|
MIT, см. [LICENSE](LICENSE). Основано на [skillhq/telegram](https://github.com/skillhq/telegram)
|