Loading content…
Loading content…
Remote control of Codex or other agents via Telegram, with sessions, approvals, and secure file transfer.
Connects Telegram to the runtime's structured protocol. For Codex, consult app-server and the schema generated by the installed version. Register the session explicitly instead of inferring it from a visible terminal.
Separate Telegram adapters, storage, runtime and file transfer. The account that stores the bot token must be different from the agent's. The relay grants specific messaging operations and keeps the bot's credentials isolated.
Persist (bot, chat, topic, host) → sesión and validate the human identity before
downloading or queuing content. Process model responses as data,
separated from user commands.
In Codex, discover the managed daemon/socket or use app-server over stdio, depending
on the version. Initialize the protocol and distinguish thread/start, thread/resume,
turn/start, turn/steer and interruption. When resuming, preserve instructions,
model and permissions. A thread can acquire rollout persistence only after
the first turn.
With an active turn, use steering with its expected ID; without one, start a turn.
Direct the interruption to the corresponding turn. On active writer, keep the
message pending and resolve the conflict; transferring control from another terminal
requires authorization for that session.
Isolate failures per session. Use stable IDs, confirmation after acceptance, recovery of completed items and deduplication. Log stage and error code to distinguish Telegram transport, excluding prompts, credentials and URLs with tokens.
Each approval is a random single-use capability, bound to user, chat,
topic, session, request_id and expiry. Show operation and scope; treat the
runtime description as untrusted content. Expiry, cancellation or unknown
request result in denial.
Keep the ID and the capability until the response to the runtime is confirmed, or log the result as uncertain. After reconnecting, IDs from a previous connection become invalid. Runtime approval and system elevation are independent permissions; a transport repair preserves both controls.
getFile and the official transport. Keep the URL with token
out of logs and the agent context. A file_id must be resolved to bytes;
it is not a local path.file_size does not replace that control... and symbolic links.Rehearse text, image, document, malicious ZIP, truncated file, quotas, reconnection and cross-host transfer with fixtures. Use authorized chats and recipients for real tests.
References: https://developers.openai.com/codex/app-server · https://core.telegram.org/bots/api#getfile
| Version | Downloads (weekly) | Downloads (total) | Published |
|---|---|---|---|
0.1.0latest First published version. | 0 | 1 | October 14, 2026 |