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
Update
The CLI checks for updates automatically on startup. When a newer version is available on PyPI, you'll see:
✨ Update available! 0.5.1 -> 0.5.2
Release notes: https://github.com/heungtae/codex-telegram/releases/latest
1. Update now and exit (runs `pip install -U codex-telegram`)
2. Skip this run
3. Skip this version
Choose [1/2/3] (default: 2):
You can also update manually:
pip install -U codex-telegram
Or with system packages flag:
pip install -U codex-telegram --break-system-packages
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.7
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.7.tar.gz | 326.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| codex_telegram-0.5.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 629.1 kB
Release files / codex_telegram-0.5.7.tar.gz
| Download URL | codex_telegram-0.5.7.tar.gz |
|---|---|
| Size | 326.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ed3ab6aa41935feeb6938f439fe34b13fe361259135a0a36b4653efc8f5de4f6
|
|
BLAKE2b-256 checksum How to use checksums |
c8dd5e6f6318f0b2d9df386a58ee79f6fc71c4c980a08a39f3f3b607c39d5a85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / codex_telegram-0.5.7-py3-none-any.whl
| Download URL | codex_telegram-0.5.7-py3-none-any.whl |
|---|---|
| Size | 302.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2d70210e5a70b484f0b1cb4881aaab62a39dfd7df4f1ce64e362f5ba4cd639e2
|
|
BLAKE2b-256 checksum How to use checksums |
f14f0d471863623bae9e645b1a307bfa9bad69e5133e805e549e6f7885189844
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|