Codex Telegram + Web
A bridge that lets you control the Codex App Server from Telegram and Web UI.
Features
Telegram Bot
Control Codex directly from Telegram:
- Slash commands:
/start,/resume,/projects,/review,/exec, and more - Real-time updates: Receive progress notifications and turn completions
- Interactive approvals: Approve/deny dangerous operations with inline buttons
- Multi-project support: Switch between projects with
/project <name> - Thread management: Start, resume, fork, archive conversations
Web UI
ChatGPT-style interface with advanced features:
- Streaming responses: Real-time message streaming via SSE
- Multi-project tabs: Each project has independent workspace context
- Thread tabs: Multiple conversations per project
- Workspace browser: File tree, Git status, file preview, diff viewer
- Settings panels: Features, Models, Modes, Skills, Apps, MCP, Guardian
- Dark/Light theme: Theme toggle with localStorage persistence
- Responsive design: Desktop and mobile layouts
Shared Features
- Approval workflow: Interactive approve/deny for sensitive operations
- Guardian: Policy-based safety rules to auto-approve or escalate requests
- Real-time events: Live updates via SSE (Web) and push notifications (Telegram)
- Multi-project: Manage multiple projects with separate thread histories
Requirements
- Python
3.11+ - Telegram Bot Token (if Telegram enabled)
- Installed and runnable
codexCLI - Web UI: password and allowed users configured
Find your Telegram user ID: https://t.me/userinfobot
Quick Start
1. Install
pip install codex-telegram
If installation fails, try:
# Upgrade pip first
pip install --upgrade pip
# Install with system packages flag (some Linux distributions)
pip install codex-telegram --break-system-packages
# Or install for current user only
pip install codex-telegram --user
# Or use a virtual environment
python -m venv .venv && source .venv/bin/activate
pip install codex-telegram
2. Configure
Create ~/.config/codex-telegram/conf.toml:
project = "default"
[projects.default]
name = "my project"
path = "/path/to/your/project"
[telegram.bot]
token = "YOUR_TELEGRAM_BOT_TOKEN"
[users]
allowed_ids = [123456789]
3. Run
codex-telegram
Or with environment variables:
export TELEGRAM_BOT_TOKEN="your_token"
export CODEX_WEB_PASSWORD="your_password"
codex-telegram
If you want to rebuild the web UI before launching the app, use:
./run_build_and_main.sh
Or:
make run
4. Open Web UI
http://127.0.0.1:8080
Developing from Source
git clone https://github.com/heungtae/codex-telegram.git
cd codex-telegram
pip install -e .
cd web/frontend && npm install && npm run build && cd ../..
cp conf.toml.example ~/.config/codex-telegram/conf.toml
# Edit config, then run:
./run_build_and_main.sh
Documentation
| File | Description |
|---|---|
| TELEGRAM.md | Telegram bot commands, real-time updates, approval workflow |
| WEB.md | Web UI features, API endpoints, workspace browser |
| conf.toml.example | Full configuration reference |
Security
- Keep
users.allowed_idspopulated with trusted Telegram user IDs only - Use environment variables for tokens:
TELEGRAM_BOT_TOKEN,CODEX_WEB_PASSWORD - Run one polling instance per bot token to avoid conflicts
- Set
cookie_secure = truewhen using HTTPS
License
Apache License 2.0. See LICENSE for details.
Release files for codex-telegram 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| codex_telegram-0.5.0.tar.gz | 262.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| codex_telegram-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 504.9 kB
Release files / codex_telegram-0.5.0.tar.gz
| Download URL | codex_telegram-0.5.0.tar.gz |
|---|---|
| Size | 262.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
df20af1f59c02aa7f5f6286618300d98129fb070ab00b6bdd8afd0baf06389cc
|
|
BLAKE2b-256 checksum How to use checksums |
2ce576c85d130f19d58d902d311c5343919d43ed01c2eb42c4165af525ffabcc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / codex_telegram-0.5.0-py3-none-any.whl
| Download URL | codex_telegram-0.5.0-py3-none-any.whl |
|---|---|
| Size | 242.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a25f25bcab39e7a4e5a68ba45aa9795c40ef9735c25365e342f94beaa5d9506b
|
|
BLAKE2b-256 checksum How to use checksums |
470b921804459874448a2a1a10c221f3a74010c5d651f532e9843762aed974c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|