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