coding-agent-telegram 2026.4.7__tar.gz → 2026.7.18__tar.gz
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.
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/PKG-INFO +101 -11
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.de.md +100 -11
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.fr.md +100 -11
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.ja.md +100 -11
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.ko.md +96 -9
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.md +100 -10
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.nl.md +100 -11
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.th.md +96 -11
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.vi.md +96 -11
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.zh-CN.md +100 -9
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.zh-HK.md +98 -11
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/README.zh-TW.md +96 -9
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/agent_runner.py +169 -6
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/bot.py +13 -1
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/cli.py +13 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/config.py +70 -3
- coding_agent_telegram-2026.7.18/src/coding_agent_telegram/native_claude_sessions.py +112 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/native_sessions.py +4 -0
- coding_agent_telegram-2026.7.18/src/coding_agent_telegram/providers.py +16 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/.env.example +20 -3
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/en.json +1 -1
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/git_commands.py +4 -1
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/message_commands.py +1 -1
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/session_common.py +3 -1
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/session_provider_commands.py +24 -16
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/session_runtime.py +2 -1
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/session_store.py +22 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram.egg-info/PKG-INFO +101 -11
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram.egg-info/SOURCES.txt +5 -0
- coding_agent_telegram-2026.7.18/src/coding_agent_telegram.egg-info/scm_file_list.json +101 -0
- coding_agent_telegram-2026.7.18/src/coding_agent_telegram.egg-info/scm_version.json +8 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/startup.sh +12 -3
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_agent_runner.py +247 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_bot.py +17 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_command_router.py +100 -1
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_config.py +116 -0
- coding_agent_telegram-2026.7.18/tests/test_native_claude_sessions.py +250 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_session_store.py +26 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_speech_to_text.py +5 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/.github/workflows/pull-request-checks.yml +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/.github/workflows/python-publish.yml +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/.github/workflows/testpypi-publish.yml +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/.gitignore +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/.gitkeep +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/LICENSE +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/install-stt.sh +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/install.sh +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/pyproject.toml +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/setup.cfg +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/setup.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/__init__.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/__main__.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/command_router.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/diff_utils.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/filters.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/git_utils.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/i18n.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/logging_utils.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/native_codex_sessions.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/native_copilot_sessions.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/native_session_types.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/native_session_utils.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/de.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/fr.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/ja.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/ko.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/nl.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/th.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/vi.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/zh-CN.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/zh-HK.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/locales/zh-TW.json +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/secret_scrub_patterns.properties +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/sensitive_path_globs.txt +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/snapshot_excluded_dir_globs.txt +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/snapshot_excluded_dir_names.txt +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/resources/snapshot_excluded_file_globs.txt +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/__init__.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/base.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/project_commands.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/queue_processing.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/session_branch_resolution.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/session_commands.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/session_lifecycle_commands.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/session_status_commands.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/router/switch_commands.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/speech_to_text.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/stt_setup.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram/telegram_sender.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram.egg-info/dependency_links.txt +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram.egg-info/entry_points.txt +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram.egg-info/requires.txt +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/src/coding_agent_telegram.egg-info/top_level.txt +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/conftest.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_agent_runner_stall.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_diff_chunking.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_filters.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_git_utils.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_i18n.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_logging_utils.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_native_session_utils.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_native_sessions.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_project_validation.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_session_runtime_diff_merge.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_session_runtime_security.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_stt_setup.py +0 -0
- {coding_agent_telegram-2026.4.7 → coding_agent_telegram-2026.7.18}/tests/test_telegram_sender.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coding-agent-telegram
|
|
3
|
-
Version: 2026.
|
|
3
|
+
Version: 2026.7.18
|
|
4
4
|
Summary: Telegram bot bridge for local coding agents (Codex/Copilot CLI)
|
|
5
5
|
Author: DCHA
|
|
6
6
|
License: MIT
|
|
@@ -49,14 +49,14 @@ Dynamic: license-file
|
|
|
49
49
|
## ✨ Why Use It
|
|
50
50
|
- ✅ Lightweight: no heavy frameworks, full transparency
|
|
51
51
|
- ✅ Multi-bot: multiple chats, multiple sessions
|
|
52
|
-
- ✅ Use Telegram to control Codex / Copilot CLI
|
|
52
|
+
- ✅ Use Telegram to control Codex / Copilot / Claude Code CLI
|
|
53
53
|
- ✅ Easily review files changed by agent in code block
|
|
54
54
|
- ✅ Queue follow-up messages while the agent is working
|
|
55
55
|
- ✅ Accept ✏️ Text, 🌄 Image, and 🎙️ Voice messages
|
|
56
56
|
|
|
57
57
|
## 🔁 Seamless Device/Session Switching
|
|
58
58
|
|
|
59
|
-
Start a session on Telegram, later on you can still continue the same Codex/Copilot CLI session on your computer, and switch back again without hassle.
|
|
59
|
+
Start a session on Telegram, later on you can still continue the same Codex/Copilot/Claude Code CLI session on your computer, and switch back again without hassle.
|
|
60
60
|
|
|
61
61
|
- Use `/switch` in Telegram to continue a local session
|
|
62
62
|
- Support historical sessions
|
|
@@ -100,6 +100,7 @@ curl -fsSL https://raw.githubusercontent.com/daocha/coding-agent-telegram/main/i
|
|
|
100
100
|
- Existing folders can require trust before mutating git operations
|
|
101
101
|
- The server does not make hidden external calls. Everything stays under your control.
|
|
102
102
|
- Works well with Codex Sandbox mode (you don't have to grant `danger-full-access`)
|
|
103
|
+
- Claude Code integration supports configurable permission modes and tool allow/deny lists
|
|
103
104
|
</td>
|
|
104
105
|
<td width="35%" valign="top">
|
|
105
106
|
|
|
@@ -110,15 +111,74 @@ curl -fsSL https://raw.githubusercontent.com/daocha/coding-agent-telegram/main/i
|
|
|
110
111
|
- Python 3.9 or newer
|
|
111
112
|
- Telegram bot token created from _@BotFather_
|
|
112
113
|
- Your Telegram chat ID
|
|
113
|
-
- Codex CLI and/or Copilot CLI installed locally
|
|
114
|
-
- [Codex CLI install](https://developers.openai.com/codex/cli) / [Copilot CLI install](https://github.com/features/copilot/cli)
|
|
114
|
+
- Codex CLI and/or Copilot CLI and/or Claude Code CLI installed locally
|
|
115
|
+
- [Codex CLI install](https://developers.openai.com/codex/cli) / [Copilot CLI install](https://github.com/features/copilot/cli) / [Claude Code CLI install](https://code.claude.com/docs/en/quickstart)
|
|
115
116
|
- [Optional] `Whisper`, `ffmpeg`
|
|
116
117
|
</td>
|
|
117
118
|
</tr>
|
|
118
119
|
</table>
|
|
119
120
|
|
|
120
121
|
## 🦞 Why do I need it if I have Openclaw already?
|
|
121
|
-
Openclaw offers you full capabilities and has integrated agent loop called Pi-Agent. It's quite comprehensive and designed for more diversified use cases. I am also Openclaw lover and I used to code with Openclaw. However, that is not the best choice for coding due to the built in large system prompt and context. Using Claude Code / Codex / Copilot for coding is still more effecient, accurate, less distracted, and straightforward. This project is quite simple, purely integrating with Codex / Copilot CLI. So you are directly delegating Codex / Copilot to work for you.
|
|
122
|
+
Openclaw offers you full capabilities and has integrated agent loop called Pi-Agent. It's quite comprehensive and designed for more diversified use cases. I am also Openclaw lover and I used to code with Openclaw. However, that is not the best choice for coding due to the built in large system prompt and context. Using Claude Code / Codex / Copilot for coding is still more effecient, accurate, less distracted, and straightforward. This project is quite simple, purely integrating with Codex / Copilot / Claude Code CLI. So you are directly delegating Codex / Copilot / Claude Code to work for you.
|
|
123
|
+
|
|
124
|
+
## 🆚 Why do I need it if I have Claude Code + Telegram Plugin already?
|
|
125
|
+
|
|
126
|
+
| Capability | Claude Code + Official Telegram Plugin | coding-agent-telegram (with Claude support) |
|
|
127
|
+
|------------|-----------------------------------------|---------------------------------------------|
|
|
128
|
+
| Telegram chat with AI | ✅ | ✅ |
|
|
129
|
+
| Edit local code and run commands | ✅ | ✅ |
|
|
130
|
+
| Requires an already-running CLI session | **Yes** | **No** (automatically starts or resumes sessions) |
|
|
131
|
+
| Multiple AI providers | ❌ Claude only | ✅ Claude Code, Codex CLI, GitHub Copilot CLI |
|
|
132
|
+
| Project management from Telegram | ❌ | ✅ `/project` |
|
|
133
|
+
| Branch management from Telegram | Manual Git commands | ✅ `/branch` workflow |
|
|
134
|
+
| Create and switch sessions | Limited to active Claude session | ✅ `/new`, `/switch`, `/current`, `/compact` |
|
|
135
|
+
| Resume existing local CLI sessions | ❌ | ✅ |
|
|
136
|
+
| Cross-device session continuity | Limited | ✅ |
|
|
137
|
+
| Workspace concurrency protection | ❌ | ✅ Prevents multiple agents from editing the same project simultaneously |
|
|
138
|
+
| Task queue while an agent is busy | ❌ | ✅ |
|
|
139
|
+
| Independent filesystem snapshot & diff | ❌ | ✅ |
|
|
140
|
+
| View structured file diffs in Telegram | ❌ | ✅ |
|
|
141
|
+
| Secret / sensitive diff filtering | ❌ | ✅ |
|
|
142
|
+
| Built-in Git workflow (pull / push / commit) | Manual | ✅ |
|
|
143
|
+
| Multi-bot support | Multiple instances required | ✅ Managed by a single server |
|
|
144
|
+
| Project-level state management | ❌ | ✅ |
|
|
145
|
+
| Provider-agnostic architecture | ❌ | ✅ |
|
|
146
|
+
|
|
147
|
+
> **Key difference**
|
|
148
|
+
>
|
|
149
|
+
> The official Claude Code Telegram plugin connects Telegram to **one already-running Claude Code session**.
|
|
150
|
+
>
|
|
151
|
+
> **coding-agent-telegram** acts as a **Telegram control plane** that manages projects, branches, sessions, Git workflows, and multiple coding agents (Claude Code, Codex CLI, GitHub Copilot CLI) from a single interface.
|
|
152
|
+
|
|
153
|
+
### 🏛️ Architecture
|
|
154
|
+
|
|
155
|
+
#### Claude Code + Telegram Plugin
|
|
156
|
+
|
|
157
|
+
```text
|
|
158
|
+
Telegram
|
|
159
|
+
│
|
|
160
|
+
▼
|
|
161
|
+
Claude Code Channel
|
|
162
|
+
│
|
|
163
|
+
▼
|
|
164
|
+
One running Claude Code session
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
#### coding-agent-telegram
|
|
168
|
+
|
|
169
|
+
```text
|
|
170
|
+
Telegram
|
|
171
|
+
│
|
|
172
|
+
▼
|
|
173
|
+
coding-agent-telegram
|
|
174
|
+
│
|
|
175
|
+
├── Claude Code
|
|
176
|
+
├── Codex CLI
|
|
177
|
+
└── GitHub Copilot CLI
|
|
178
|
+
│
|
|
179
|
+
▼
|
|
180
|
+
Project • Branch • Session • Queue • Git • Diff • Secret Filter
|
|
181
|
+
```
|
|
122
182
|
|
|
123
183
|
## 🚀 Quick Start
|
|
124
184
|
|
|
@@ -228,7 +288,7 @@ The bot currently accepts:
|
|
|
228
288
|
- Text messages
|
|
229
289
|
- photos
|
|
230
290
|
- voice messages when `ENABLE_OPENAI_WHISPER_SPEECH_TO_TEXT=true` and local Whisper prerequisites are installed
|
|
231
|
-
- Codex and
|
|
291
|
+
- Codex and Claude Code sessions support text and image; Copilot sessions currently support text only. Video is not supported by any provider.
|
|
232
292
|
|
|
233
293
|
## 🤖 Telegram Commands
|
|
234
294
|
|
|
@@ -259,7 +319,7 @@ The bot currently accepts:
|
|
|
259
319
|
</tr>
|
|
260
320
|
<tr>
|
|
261
321
|
<td><code>/switch</code></td>
|
|
262
|
-
<td>Show the latest sessions, newest first. The list includes both bot-managed sessions and local Codex/Copilot CLI sessions for the current project.</td>
|
|
322
|
+
<td>Show the latest sessions, newest first. The list includes both bot-managed sessions and local Codex/Copilot/Claude Code CLI sessions for the current project.</td>
|
|
263
323
|
</tr>
|
|
264
324
|
<tr>
|
|
265
325
|
<td><code>/switch page <number></code></td>
|
|
@@ -337,13 +397,21 @@ The bot currently accepts:
|
|
|
337
397
|
<td width="332"><code>APP_LOCALE</code></td>
|
|
338
398
|
<td>UI locale for shared bot messages and command descriptions. Supported values: <code>en</code>, <code>de</code>, <code>fr</code>, <code>ja</code>, <code>ko</code>, <code>nl</code>, <code>th</code>, <code>vi</code>, <code>zh-CN</code>, <code>zh-HK</code>, <code>zh-TW</code>.</td>
|
|
339
399
|
</tr>
|
|
400
|
+
<tr>
|
|
401
|
+
<td><code>DEFAULT_AGENT_PROVIDER</code></td>
|
|
402
|
+
<td>Default provider for new sessions: <code>codex</code>, <code>copilot</code>, or <code>claude</code>. Default: <code>codex</code>.</td>
|
|
403
|
+
</tr>
|
|
340
404
|
<tr>
|
|
341
405
|
<td><code>CODEX_BIN</code></td>
|
|
342
|
-
<td>Command used to launch Codex CLI.
|
|
406
|
+
<td>Command used to launch Codex CLI. The app would try to detect the locally installed Codex path when initializing the <code>.env_coding_agent_telegram</code>. Alternatively use <code>which codex</code> to view the path. </td>
|
|
343
407
|
</tr>
|
|
344
408
|
<tr>
|
|
345
409
|
<td><code>COPILOT_BIN</code></td>
|
|
346
|
-
<td>Command used to launch Copilot CLI.
|
|
410
|
+
<td>Command used to launch Copilot CLI. The app would try to detect the locally installed Copilot path when initializing the <code>.env_coding_agent_telegram</code>. Alternatively use <code>which copilot</code> to view the path. </td>
|
|
411
|
+
</tr>
|
|
412
|
+
<tr>
|
|
413
|
+
<td><code>CLAUDE_BIN</code></td>
|
|
414
|
+
<td>Command used to launch Claude Code CLI. The app would try to detect the locally installed Claude path when initializing the <code>.env_coding_agent_telegram</code>. Alternatively use <code>which claude</code> to view the path. </td>
|
|
347
415
|
</tr>
|
|
348
416
|
<tr>
|
|
349
417
|
<td><code>CODEX_MODEL</code></td>
|
|
@@ -361,6 +429,14 @@ The bot currently accepts:
|
|
|
361
429
|
<a href="https://docs.github.com/en/copilot/reference/ai-models/supported-models" target="_blank">GitHub Copilot supported models</a>
|
|
362
430
|
</td>
|
|
363
431
|
</tr>
|
|
432
|
+
<tr>
|
|
433
|
+
<td><code>CLAUDE_MODEL</code></td>
|
|
434
|
+
<td>Optional Claude Code model override.
|
|
435
|
+
Leave empty to use the Claude Code CLI default model.
|
|
436
|
+
Examples: <code>sonnet</code>, <code>opus</code>, <code>haiku</code>
|
|
437
|
+
<a href="https://code.claude.com/docs/en/model-config" target="_blank">Claude Code model configuration</a>
|
|
438
|
+
</td>
|
|
439
|
+
</tr>
|
|
364
440
|
<tr>
|
|
365
441
|
<td><code>CODEX_APPROVAL_POLICY</code></td>
|
|
366
442
|
<td>Approval mode passed to Codex. Default: <code>never</code>.</td>
|
|
@@ -373,6 +449,18 @@ The bot currently accepts:
|
|
|
373
449
|
<td><code>CODEX_SKIP_GIT_REPO_CHECK</code></td>
|
|
374
450
|
<td>If enabled, always bypass Codex trusted-repo checks.</td>
|
|
375
451
|
</tr>
|
|
452
|
+
<tr>
|
|
453
|
+
<td><code>CLAUDE_PERMISSION_MODE</code></td>
|
|
454
|
+
<td>Permission mode passed to Claude Code. One of <code>default</code>, <code>acceptEdits</code>, <code>plan</code>, <code>auto</code>, <code>dontAsk</code>, <code>bypassPermissions</code>, <code>manual</code>. Default: <code>bypassPermissions</code> (fully autonomous, since there is no interactive terminal to approve prompts).</td>
|
|
455
|
+
</tr>
|
|
456
|
+
<tr>
|
|
457
|
+
<td><code>CLAUDE_ALLOWED_TOOLS</code></td>
|
|
458
|
+
<td>Comma-separated Claude Code tool allowlist, using Claude Code's permission rule syntax. Example: <code>Read,Edit,Bash(git *)</code></td>
|
|
459
|
+
</tr>
|
|
460
|
+
<tr>
|
|
461
|
+
<td><code>CLAUDE_DISALLOWED_TOOLS</code></td>
|
|
462
|
+
<td>Comma-separated Claude Code tool denylist. Example: <code>Bash(rm *)</code></td>
|
|
463
|
+
</tr>
|
|
376
464
|
<tr>
|
|
377
465
|
<td><code>ENABLE_COMMIT_COMMAND</code></td>
|
|
378
466
|
<td>Enable the <code>/commit</code> Telegram command. Default: <code>false</code>.</td>
|
|
@@ -454,8 +542,10 @@ ALLOWED_CHAT_IDS=123456789
|
|
|
454
542
|
DEFAULT_AGENT_PROVIDER=codex
|
|
455
543
|
CODEX_BIN=codex
|
|
456
544
|
COPILOT_BIN=copilot
|
|
545
|
+
CLAUDE_BIN=claude
|
|
457
546
|
CODEX_APPROVAL_POLICY=never
|
|
458
547
|
CODEX_SANDBOX_MODE=workspace-write
|
|
548
|
+
CLAUDE_PERMISSION_MODE=bypassPermissions
|
|
459
549
|
ENABLE_SENSITIVE_DIFF_FILTER=true
|
|
460
550
|
ENABLE_SECRET_SCRUB_FILTER=true
|
|
461
551
|
```
|
|
@@ -521,7 +611,7 @@ If the current run is aborted and there are queued questions waiting, the bot do
|
|
|
521
611
|
|
|
522
612
|
## ⚠️ Diff (file changes)
|
|
523
613
|
|
|
524
|
-
_During each agent run, the bot also takes a lightweight before/after project snapshot so it can summarize changed files and send diffs back to Telegram. This snapshot is taken by the bot app itself, not by Codex or
|
|
614
|
+
_During each agent run, the bot also takes a lightweight before/after project snapshot so it can summarize changed files and send diffs back to Telegram. This snapshot is taken by the bot app itself, not by Codex, Copilot, or Claude Code._
|
|
525
615
|
|
|
526
616
|
**Snapshot notes:**
|
|
527
617
|
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
## ✨ Warum dieses Projekt
|
|
36
36
|
- ✅ Leichtgewichtig: keine schweren Frameworks, volle Transparenz
|
|
37
37
|
- ✅ Multi-Bot: mehrere Chats, mehrere Sessions
|
|
38
|
-
- ✅ Telegram zum Steuern von Codex / Copilot CLI verwenden
|
|
38
|
+
- ✅ Telegram zum Steuern von Codex / Copilot / Claude Code CLI verwenden
|
|
39
39
|
- ✅ Antworten und geänderte Dateien bequem in Code-Blöcken prüfen
|
|
40
40
|
- ✅ Folgefragen während eines laufenden Agentenlaufs in die Queue stellen
|
|
41
41
|
- ✅ Akzeptiert ✏️ Text-, 🌄 Bild- und 🎙️ Sprachnachrichten
|
|
42
42
|
|
|
43
43
|
## 🔁 Nahtlos zwischen Geräten und Sessions wechseln
|
|
44
44
|
|
|
45
|
-
Starte eine Session in Telegram und setze dieselbe Codex/Copilot CLI-Session später ohne Umwege am Computer fort. Mit `/switch` kannst du auch wieder sauber von Telegram zurück ins Terminal wechseln.
|
|
45
|
+
Starte eine Session in Telegram und setze dieselbe Codex/Copilot/Claude Code CLI-Session später ohne Umwege am Computer fort. Mit `/switch` kannst du auch wieder sauber von Telegram zurück ins Terminal wechseln.
|
|
46
46
|
|
|
47
47
|
- Nutze `/switch`, um eine lokale Session weiterzuführen
|
|
48
48
|
- Historische Sessions werden ebenfalls unterstützt
|
|
@@ -86,6 +86,7 @@ curl -fsSL https://raw.githubusercontent.com/daocha/coding-agent-telegram/main/i
|
|
|
86
86
|
- Bestehende Ordner können vor schreibenden Git-Operationen eine Vertrauensbestätigung verlangen
|
|
87
87
|
- Der Server führt keine versteckten externen Aufrufe aus. Alles bleibt unter deiner Kontrolle.
|
|
88
88
|
- Funktioniert gut mit dem Codex Sandbox mode; du musst `danger-full-access` nicht freigeben
|
|
89
|
+
- Die Claude Code-Integration unterstützt konfigurierbare Permission-Modi sowie Allow-/Deny-Listen für Tools
|
|
89
90
|
</td>
|
|
90
91
|
<td width="35%" valign="top">
|
|
91
92
|
|
|
@@ -96,16 +97,74 @@ Vor dem Start des Servers brauchst du:
|
|
|
96
97
|
- Python 3.9 oder neuer
|
|
97
98
|
- Einen Telegram-Bot-Token von _@BotFather_
|
|
98
99
|
- Deine Telegram-Chat-ID
|
|
99
|
-
- Lokal installiertes Codex CLI und/oder Copilot CLI
|
|
100
|
-
- [Codex CLI Installation](https://developers.openai.com/codex/cli)
|
|
101
|
-
- [Copilot CLI Installation](https://github.com/features/copilot/cli)
|
|
100
|
+
- Lokal installiertes Codex CLI und/oder Copilot CLI und/oder Claude Code CLI
|
|
101
|
+
- [Codex CLI Installation](https://developers.openai.com/codex/cli) / [Copilot CLI Installation](https://github.com/features/copilot/cli) / [Claude Code CLI Installation](https://code.claude.com/docs/en/quickstart)
|
|
102
102
|
- [Optional] Whisper, ffmpeg
|
|
103
103
|
</td>
|
|
104
104
|
</tr>
|
|
105
105
|
</table>
|
|
106
106
|
|
|
107
107
|
## 🦞 Warum brauche ich das, wenn ich Openclaw bereits habe?
|
|
108
|
-
Openclaw bietet dir sehr umfassende Funktionen und hat mit Pi-Agent bereits eine integrierte Agent-Loop. Es ist vielseitig und für breitere Einsatzfälle gedacht. Ich mag Openclaw ebenfalls und habe selbst damit entwickelt. Für Coding ist es aber nicht immer die beste Wahl, weil der eingebaute große System-Prompt und der zusätzliche Kontext eher ablenken können. Claude Code / Codex / Copilot sind fürs Coding oft effizienter, präziser, weniger abgelenkt und direkter. Dieses Projekt bleibt bewusst einfach und integriert nur Codex / Copilot CLI. Du delegierst also direkt an Codex / Copilot.
|
|
108
|
+
Openclaw bietet dir sehr umfassende Funktionen und hat mit Pi-Agent bereits eine integrierte Agent-Loop. Es ist vielseitig und für breitere Einsatzfälle gedacht. Ich mag Openclaw ebenfalls und habe selbst damit entwickelt. Für Coding ist es aber nicht immer die beste Wahl, weil der eingebaute große System-Prompt und der zusätzliche Kontext eher ablenken können. Claude Code / Codex / Copilot sind fürs Coding oft effizienter, präziser, weniger abgelenkt und direkter. Dieses Projekt bleibt bewusst einfach und integriert nur Codex / Copilot / Claude Code CLI. Du delegierst also direkt an Codex / Copilot / Claude Code.
|
|
109
|
+
|
|
110
|
+
## 🆚 Warum brauche ich coding-agent-telegram, wenn ich bereits Claude Code + Telegram Plugin habe?
|
|
111
|
+
|
|
112
|
+
| Funktion | Claude Code + offizielles Telegram Plugin | coding-agent-telegram (mit Claude-Unterstützung) |
|
|
113
|
+
|----------|--------------------------------------------|--------------------------------------------------|
|
|
114
|
+
| KI-Chat über Telegram | ✅ | ✅ |
|
|
115
|
+
| Lokalen Code bearbeiten und Befehle ausführen | ✅ | ✅ |
|
|
116
|
+
| Erfordert eine bereits laufende CLI-Sitzung | **Ja** | **Nein** (startet oder setzt Sitzungen automatisch fort) |
|
|
117
|
+
| Unterstützung mehrerer KI-Anbieter | ❌ Nur Claude | ✅ Claude Code, Codex CLI, GitHub Copilot CLI |
|
|
118
|
+
| Projektverwaltung über Telegram | ❌ | ✅ `/project` |
|
|
119
|
+
| Branch-Verwaltung über Telegram | Manuelle Git-Befehle | ✅ `/branch`-Workflow |
|
|
120
|
+
| Sitzungen erstellen und wechseln | Auf die aktive Claude-Sitzung beschränkt | ✅ `/new`, `/switch`, `/current`, `/compact` |
|
|
121
|
+
| Vorhandene lokale CLI-Sitzungen fortsetzen | ❌ | ✅ |
|
|
122
|
+
| Sitzungen geräteübergreifend fortsetzen | Eingeschränkt | ✅ |
|
|
123
|
+
| Schutz vor gleichzeitigen Änderungen im Workspace | ❌ | ✅ Verhindert, dass mehrere Agents gleichzeitig dasselbe Projekt bearbeiten |
|
|
124
|
+
| Aufgabenwarteschlange bei ausgelastetem Agent | ❌ | ✅ |
|
|
125
|
+
| Unabhängige Dateisystem-Snapshots und Diffs | ❌ | ✅ |
|
|
126
|
+
| Strukturierte Datei-Diffs direkt in Telegram anzeigen | ❌ | ✅ |
|
|
127
|
+
| Filterung von Secrets und sensiblen Diffs | ❌ | ✅ |
|
|
128
|
+
| Integrierter Git-Workflow (pull / push / commit) | Manuell | ✅ |
|
|
129
|
+
| Unterstützung mehrerer Bots | Mehrere Instanzen erforderlich | ✅ Verwaltung über einen einzigen Server |
|
|
130
|
+
| Projektbezogene Statusverwaltung | ❌ | ✅ |
|
|
131
|
+
| Anbieterunabhängige Architektur | ❌ | ✅ |
|
|
132
|
+
|
|
133
|
+
> **Wichtigster Unterschied**
|
|
134
|
+
>
|
|
135
|
+
> Das offizielle Claude Code Telegram Plugin verbindet Telegram mit **einer bereits laufenden Claude Code-Sitzung**.
|
|
136
|
+
>
|
|
137
|
+
> **coding-agent-telegram** fungiert als **Telegram-Kontrollzentrale**, die Projekte, Branches, Sitzungen, Git-Workflows und mehrere Coding-Agents (Claude Code, Codex CLI, GitHub Copilot CLI) über eine einzige Oberfläche verwaltet.
|
|
138
|
+
|
|
139
|
+
### 🏛️ Architektur
|
|
140
|
+
|
|
141
|
+
#### Claude Code + Telegram Plugin
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
Telegram
|
|
145
|
+
│
|
|
146
|
+
▼
|
|
147
|
+
Claude Code Channel
|
|
148
|
+
│
|
|
149
|
+
▼
|
|
150
|
+
Eine laufende Claude Code-Sitzung
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### coding-agent-telegram
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
Telegram
|
|
157
|
+
│
|
|
158
|
+
▼
|
|
159
|
+
coding-agent-telegram
|
|
160
|
+
│
|
|
161
|
+
├── Claude Code
|
|
162
|
+
├── Codex CLI
|
|
163
|
+
└── GitHub Copilot CLI
|
|
164
|
+
│
|
|
165
|
+
▼
|
|
166
|
+
Projekt • Branch • Sitzung • Warteschlange • Git • Diff • Secret-Filter
|
|
167
|
+
```
|
|
109
168
|
|
|
110
169
|
## 🚀 Schnellstart
|
|
111
170
|
|
|
@@ -203,7 +262,7 @@ Der Bot akzeptiert derzeit:
|
|
|
203
262
|
- Textnachrichten
|
|
204
263
|
- Fotos
|
|
205
264
|
- Sprachnachrichten und Audiodateien, wenn `ENABLE_OPENAI_WHISPER_SPEECH_TO_TEXT=true` gesetzt ist und die lokalen Whisper-Voraussetzungen installiert sind
|
|
206
|
-
- Codex und Copilot unterstützen aktuell nur Text
|
|
265
|
+
- Codex- und Claude Code-Sessions unterstützen Text und Bilder; Copilot-Sessions unterstützen aktuell nur Text. Video wird von keinem Provider unterstützt.
|
|
207
266
|
|
|
208
267
|
## 🤖 Telegram-Befehle
|
|
209
268
|
|
|
@@ -234,7 +293,7 @@ Der Bot akzeptiert derzeit:
|
|
|
234
293
|
</tr>
|
|
235
294
|
<tr>
|
|
236
295
|
<td width="332"><code>/switch</code></td>
|
|
237
|
-
<td>Die neuesten Sessions anzeigen, zuerst die neuesten. Die Liste enthält sowohl vom Bot verwaltete Sessions als auch lokale Codex/Copilot CLI-Sessions für das aktuelle Projekt.</td>
|
|
296
|
+
<td>Die neuesten Sessions anzeigen, zuerst die neuesten. Die Liste enthält sowohl vom Bot verwaltete Sessions als auch lokale Codex/Copilot/Claude Code CLI-Sessions für das aktuelle Projekt.</td>
|
|
238
297
|
</tr>
|
|
239
298
|
<tr>
|
|
240
299
|
<td width="332"><code>/switch page <number></code></td>
|
|
@@ -313,13 +372,21 @@ Der Bot akzeptiert derzeit:
|
|
|
313
372
|
<td width="332"><code>APP_LOCALE</code></td>
|
|
314
373
|
<td>UI-Sprache für gemeinsame Bot-Meldungen und Befehlsbeschreibungen. Unterstützte Werte: <code>en</code>, <code>de</code>, <code>fr</code>, <code>ja</code>, <code>ko</code>, <code>nl</code>, <code>th</code>, <code>vi</code>, <code>zh-CN</code>, <code>zh-HK</code>, <code>zh-TW</code>.</td>
|
|
315
374
|
</tr>
|
|
375
|
+
<tr>
|
|
376
|
+
<td><code>DEFAULT_AGENT_PROVIDER</code></td>
|
|
377
|
+
<td>Standard-Provider für neue Sessions: <code>codex</code>, <code>copilot</code> oder <code>claude</code>. Standard: <code>codex</code>.</td>
|
|
378
|
+
</tr>
|
|
316
379
|
<tr>
|
|
317
380
|
<td width="332"><code>CODEX_BIN</code></td>
|
|
318
|
-
<td>Befehl zum Starten von Codex CLI.
|
|
381
|
+
<td>Befehl zum Starten von Codex CLI. Die Anwendung versucht beim Initialisieren der <code>.env_coding_agent_telegram</code>-Datei, den lokal installierten Codex-Pfad automatisch zu erkennen. Alternativ können Sie mit <code>which codex</code> den Pfad anzeigen.</td>
|
|
319
382
|
</tr>
|
|
320
383
|
<tr>
|
|
321
384
|
<td width="332"><code>COPILOT_BIN</code></td>
|
|
322
|
-
<td>Befehl zum Starten von Copilot CLI.
|
|
385
|
+
<td>Befehl zum Starten von Copilot CLI. Die Anwendung versucht beim Initialisieren der <code>.env_coding_agent_telegram</code>-Datei, den lokal installierten Copilot-Pfad automatisch zu erkennen. Alternativ können Sie mit <code>which copilot</code> den Pfad anzeigen.</td>
|
|
386
|
+
</tr>
|
|
387
|
+
<tr>
|
|
388
|
+
<td><code>CLAUDE_BIN</code></td>
|
|
389
|
+
<td>Befehl zum Starten von Claude Code CLI. Die Anwendung versucht beim Initialisieren der <code>.env_coding_agent_telegram</code>-Datei, den lokal installierten Claude-Pfad automatisch zu erkennen. Alternativ können Sie mit <code>which claude</code> den Pfad anzeigen.</td>
|
|
323
390
|
</tr>
|
|
324
391
|
<tr>
|
|
325
392
|
<td width="332"><code>CODEX_MODEL</code></td>
|
|
@@ -329,6 +396,14 @@ Der Bot akzeptiert derzeit:
|
|
|
329
396
|
<td width="332"><code>COPILOT_MODEL</code></td>
|
|
330
397
|
<td>Optionale Model-Überschreibung für Copilot. Leer lassen, um das Standardmodell von Copilot CLI zu verwenden. Beispiele: <code>gpt-5.4</code>, <code>claude-sonnet-4.6</code> <a href="https://docs.github.com/en/copilot/reference/ai-models/supported-models" target="_blank">GitHub Copilot unterstützte modelle</a></td>
|
|
331
398
|
</tr>
|
|
399
|
+
<tr>
|
|
400
|
+
<td><code>CLAUDE_MODEL</code></td>
|
|
401
|
+
<td>Optionale Model-Überschreibung für Claude Code.
|
|
402
|
+
Leer lassen, um das Standardmodell von Claude Code CLI zu verwenden.
|
|
403
|
+
Beispiele: <code>sonnet</code>, <code>opus</code>, <code>haiku</code>
|
|
404
|
+
<a href="https://code.claude.com/docs/en/model-config" target="_blank">Claude Code Modellkonfiguration</a>
|
|
405
|
+
</td>
|
|
406
|
+
</tr>
|
|
332
407
|
<tr>
|
|
333
408
|
<td width="332"><code>CODEX_APPROVAL_POLICY</code></td>
|
|
334
409
|
<td>An Codex übergebener Freigabemodus. Standard: <code>never</code>.</td>
|
|
@@ -341,6 +416,18 @@ Der Bot akzeptiert derzeit:
|
|
|
341
416
|
<td width="332"><code>CODEX_SKIP_GIT_REPO_CHECK</code></td>
|
|
342
417
|
<td>Wenn aktiviert, werden Codex-Prüfungen für vertrauenswürdige Repositories immer übersprungen.</td>
|
|
343
418
|
</tr>
|
|
419
|
+
<tr>
|
|
420
|
+
<td><code>CLAUDE_PERMISSION_MODE</code></td>
|
|
421
|
+
<td>An Claude Code übergebener Permission-Modus. Einer von <code>default</code>, <code>acceptEdits</code>, <code>plan</code>, <code>auto</code>, <code>dontAsk</code>, <code>bypassPermissions</code>, <code>manual</code>. Standard: <code>bypassPermissions</code> (vollständig autonom, da kein interaktives Terminal zum Bestätigen von Prompts vorhanden ist).</td>
|
|
422
|
+
</tr>
|
|
423
|
+
<tr>
|
|
424
|
+
<td><code>CLAUDE_ALLOWED_TOOLS</code></td>
|
|
425
|
+
<td>Kommagetrennte Allowlist für Claude Code-Tools, nach der Permission-Regel-Syntax von Claude Code. Beispiel: <code>Read,Edit,Bash(git *)</code></td>
|
|
426
|
+
</tr>
|
|
427
|
+
<tr>
|
|
428
|
+
<td><code>CLAUDE_DISALLOWED_TOOLS</code></td>
|
|
429
|
+
<td>Kommagetrennte Denylist für Claude Code-Tools. Beispiel: <code>Bash(rm *)</code></td>
|
|
430
|
+
</tr>
|
|
344
431
|
<tr>
|
|
345
432
|
<td width="332"><code>ENABLE_COMMIT_COMMAND</code></td>
|
|
346
433
|
<td>Den Telegram-Befehl <code>/commit</code> aktivieren. Standard: <code>false</code>.</td>
|
|
@@ -422,8 +509,10 @@ ALLOWED_CHAT_IDS=123456789
|
|
|
422
509
|
DEFAULT_AGENT_PROVIDER=codex
|
|
423
510
|
CODEX_BIN=codex
|
|
424
511
|
COPILOT_BIN=copilot
|
|
512
|
+
CLAUDE_BIN=claude
|
|
425
513
|
CODEX_APPROVAL_POLICY=never
|
|
426
514
|
CODEX_SANDBOX_MODE=workspace-write
|
|
515
|
+
CLAUDE_PERMISSION_MODE=bypassPermissions
|
|
427
516
|
ENABLE_SENSITIVE_DIFF_FILTER=true
|
|
428
517
|
ENABLE_SECRET_SCRUB_FILTER=true
|
|
429
518
|
```
|
|
@@ -489,7 +578,7 @@ Wird der aktuelle Lauf abgebrochen und es warten noch Fragen, setzt der Bot nich
|
|
|
489
578
|
|
|
490
579
|
## ⚠️ Diff (Dateiänderungen)
|
|
491
580
|
|
|
492
|
-
_Während jedes Agentenlaufs erstellt der Bot außerdem einen leichten Vorher/Nachher-Snapshot des Projekts, damit er geänderte Dateien zusammenfassen und Diffs an Telegram senden kann. Dieser Snapshot wird von der Bot-App selbst erstellt, nicht von Codex oder
|
|
581
|
+
_Während jedes Agentenlaufs erstellt der Bot außerdem einen leichten Vorher/Nachher-Snapshot des Projekts, damit er geänderte Dateien zusammenfassen und Diffs an Telegram senden kann. Dieser Snapshot wird von der Bot-App selbst erstellt, nicht von Codex, Copilot oder Claude Code._
|
|
493
582
|
|
|
494
583
|
**Hinweise zum Snapshot:**
|
|
495
584
|
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
## ✨ Pourquoi l’utiliser
|
|
36
36
|
- ✅ Léger : pas de framework lourd, transparence totale
|
|
37
37
|
- ✅ Multi-bot : plusieurs chats, plusieurs sessions
|
|
38
|
-
- ✅ Utiliser Telegram pour piloter Codex / Copilot CLI
|
|
38
|
+
- ✅ Utiliser Telegram pour piloter Codex / Copilot / Claude Code CLI
|
|
39
39
|
- ✅ Révision facile des réponses et des fichiers modifiés dans des blocs de code
|
|
40
40
|
- ✅ Les messages de suivi peuvent être mis en file d’attente pendant qu’un agent travaille
|
|
41
41
|
- ✅ Accepte les messages ✏️ texte, 🌄 image et 🎙️ vocaux
|
|
42
42
|
|
|
43
43
|
## 🔁 Changement fluide entre appareils et sessions
|
|
44
44
|
|
|
45
|
-
Démarrez une session dans Telegram, puis reprenez la même session Codex/Copilot CLI plus tard sur votre ordinateur sans friction. Avec `/switch`, vous pouvez aussi repasser simplement de Telegram à la ligne de commande.
|
|
45
|
+
Démarrez une session dans Telegram, puis reprenez la même session Codex/Copilot/Claude Code CLI plus tard sur votre ordinateur sans friction. Avec `/switch`, vous pouvez aussi repasser simplement de Telegram à la ligne de commande.
|
|
46
46
|
|
|
47
47
|
- Utilisez `/switch` pour reprendre une session locale
|
|
48
48
|
- Les sessions historiques sont également prises en charge
|
|
@@ -86,6 +86,7 @@ curl -fsSL https://raw.githubusercontent.com/daocha/coding-agent-telegram/main/i
|
|
|
86
86
|
- Les dossiers existants peuvent exiger une confirmation de confiance avant les opérations Git modifiantes
|
|
87
87
|
- Le serveur n’effectue aucun appel externe caché. Vous gardez le contrôle.
|
|
88
88
|
- Fonctionne bien avec le mode sandbox de Codex, sans devoir accorder `danger-full-access`
|
|
89
|
+
- L’intégration Claude Code prend en charge des modes de permission configurables ainsi que des listes d’autorisation/interdiction d’outils
|
|
89
90
|
</td>
|
|
90
91
|
<td width="35%" valign="top">
|
|
91
92
|
|
|
@@ -96,16 +97,74 @@ Avant de démarrer le serveur, assurez-vous d’avoir :
|
|
|
96
97
|
- Python 3.9 ou plus récent
|
|
97
98
|
- Un token de bot Telegram créé via _@BotFather_
|
|
98
99
|
- Votre identifiant de chat Telegram
|
|
99
|
-
- Codex CLI et/ou Copilot CLI installés localement
|
|
100
|
-
- [Installation Codex CLI](https://developers.openai.com/codex/cli)
|
|
101
|
-
- [Installation Copilot CLI](https://github.com/features/copilot/cli)
|
|
100
|
+
- Codex CLI et/ou Copilot CLI et/ou Claude Code CLI installés localement
|
|
101
|
+
- [Installation Codex CLI](https://developers.openai.com/codex/cli) / [Installation Copilot CLI](https://github.com/features/copilot/cli) / [Installation Claude Code CLI](https://code.claude.com/docs/en/quickstart)
|
|
102
102
|
- [Optionnel] Whisper, ffmpeg
|
|
103
103
|
</td>
|
|
104
104
|
</tr>
|
|
105
105
|
</table>
|
|
106
106
|
|
|
107
107
|
## 🦞 Pourquoi en ai-je besoin si j’ai déjà Openclaw ?
|
|
108
|
-
Openclaw offre des capacités très complètes et intègre déjà une boucle d’agent appelée Pi-Agent. C’est un outil riche, pensé pour des cas d’usage plus variés. J’aime aussi Openclaw et j’ai déjà codé avec lui. Mais pour le coding pur, ce n’est pas toujours le meilleur choix à cause du gros system prompt intégré et du contexte supplémentaire. Pour coder, Claude Code / Codex / Copilot restent souvent plus efficaces, plus précis, moins distraits et plus directs. Ce projet reste volontairement simple et se contente d’intégrer Codex / Copilot CLI. Vous déléguez donc directement le travail à Codex / Copilot.
|
|
108
|
+
Openclaw offre des capacités très complètes et intègre déjà une boucle d’agent appelée Pi-Agent. C’est un outil riche, pensé pour des cas d’usage plus variés. J’aime aussi Openclaw et j’ai déjà codé avec lui. Mais pour le coding pur, ce n’est pas toujours le meilleur choix à cause du gros system prompt intégré et du contexte supplémentaire. Pour coder, Claude Code / Codex / Copilot restent souvent plus efficaces, plus précis, moins distraits et plus directs. Ce projet reste volontairement simple et se contente d’intégrer Codex / Copilot / Claude Code CLI. Vous déléguez donc directement le travail à Codex / Copilot / Claude Code.
|
|
109
|
+
|
|
110
|
+
## 🆚 Pourquoi utiliser coding-agent-telegram si j'ai déjà Claude Code + Telegram Plugin ?
|
|
111
|
+
|
|
112
|
+
| Fonctionnalité | Claude Code + Plugin Telegram officiel | coding-agent-telegram (avec prise en charge de Claude) |
|
|
113
|
+
|----------------|-----------------------------------------|--------------------------------------------------------|
|
|
114
|
+
| Discussion avec l'IA via Telegram | ✅ | ✅ |
|
|
115
|
+
| Modifier le code local et exécuter des commandes | ✅ | ✅ |
|
|
116
|
+
| Nécessite une session CLI déjà en cours d'exécution | **Oui** | **Non** (démarre ou reprend automatiquement les sessions) |
|
|
117
|
+
| Prise en charge de plusieurs fournisseurs d'IA | ❌ Claude uniquement | ✅ Claude Code, Codex CLI, GitHub Copilot CLI |
|
|
118
|
+
| Gestion des projets depuis Telegram | ❌ | ✅ `/project` |
|
|
119
|
+
| Gestion des branches depuis Telegram | Commandes Git manuelles | ✅ Workflow `/branch` |
|
|
120
|
+
| Créer et changer de session | Limité à la session Claude active | ✅ `/new`, `/switch`, `/current`, `/compact` |
|
|
121
|
+
| Reprendre des sessions CLI locales existantes | ❌ | ✅ |
|
|
122
|
+
| Continuité des sessions entre plusieurs appareils | Limitée | ✅ |
|
|
123
|
+
| Protection contre les modifications simultanées d'un même workspace | ❌ | ✅ Empêche plusieurs agents de modifier le même projet en même temps |
|
|
124
|
+
| File d'attente des tâches lorsqu'un agent est occupé | ❌ | ✅ |
|
|
125
|
+
| Snapshots et diffs du système de fichiers indépendants | ❌ | ✅ |
|
|
126
|
+
| Affichage des diffs structurés directement dans Telegram | ❌ | ✅ |
|
|
127
|
+
| Filtrage des secrets et des diffs sensibles | ❌ | ✅ |
|
|
128
|
+
| Workflow Git intégré (pull / push / commit) | Manuel | ✅ |
|
|
129
|
+
| Prise en charge de plusieurs bots | Plusieurs instances nécessaires | ✅ Gérés par un serveur unique |
|
|
130
|
+
| Gestion de l'état au niveau du projet | ❌ | ✅ |
|
|
131
|
+
| Architecture indépendante du fournisseur | ❌ | ✅ |
|
|
132
|
+
|
|
133
|
+
> **Différence principale**
|
|
134
|
+
>
|
|
135
|
+
> Le plugin Telegram officiel de Claude Code connecte Telegram à **une seule session Claude Code déjà en cours d'exécution**.
|
|
136
|
+
>
|
|
137
|
+
> **coding-agent-telegram** agit comme un **plan de contrôle Telegram** permettant de gérer les projets, les branches, les sessions, les workflows Git et plusieurs agents de développement (Claude Code, Codex CLI, GitHub Copilot CLI) depuis une interface unique.
|
|
138
|
+
|
|
139
|
+
### 🏛️ Architecture
|
|
140
|
+
|
|
141
|
+
#### Claude Code + Telegram Plugin
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
Telegram
|
|
145
|
+
│
|
|
146
|
+
▼
|
|
147
|
+
Canal Claude Code
|
|
148
|
+
│
|
|
149
|
+
▼
|
|
150
|
+
Une session Claude Code en cours d'exécution
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### coding-agent-telegram
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
Telegram
|
|
157
|
+
│
|
|
158
|
+
▼
|
|
159
|
+
coding-agent-telegram
|
|
160
|
+
│
|
|
161
|
+
├── Claude Code
|
|
162
|
+
├── Codex CLI
|
|
163
|
+
└── GitHub Copilot CLI
|
|
164
|
+
│
|
|
165
|
+
▼
|
|
166
|
+
Projet • Branche • Session • File d'attente • Git • Diff • Filtre des secrets
|
|
167
|
+
```
|
|
109
168
|
|
|
110
169
|
## 🚀 Démarrage rapide
|
|
111
170
|
|
|
@@ -203,7 +262,7 @@ Le bot accepte actuellement :
|
|
|
203
262
|
- les messages texte
|
|
204
263
|
- les photos
|
|
205
264
|
- les messages vocaux et les fichiers audio quand `ENABLE_OPENAI_WHISPER_SPEECH_TO_TEXT=true` et que les prérequis locaux de Whisper sont installés
|
|
206
|
-
- Codex et
|
|
265
|
+
- Codex et Claude Code prennent en charge le texte et les images ; Copilot ne prend actuellement en charge que le texte. Aucun fournisseur ne prend en charge la vidéo.
|
|
207
266
|
|
|
208
267
|
## 🤖 Commandes Telegram
|
|
209
268
|
|
|
@@ -234,7 +293,7 @@ Le bot accepte actuellement :
|
|
|
234
293
|
</tr>
|
|
235
294
|
<tr>
|
|
236
295
|
<td width="332"><code>/switch</code></td>
|
|
237
|
-
<td>Afficher les sessions les plus récentes, de la plus récente à la plus ancienne. La liste inclut les sessions gérées par le bot et les sessions locales Codex/Copilot CLI du projet courant.</td>
|
|
296
|
+
<td>Afficher les sessions les plus récentes, de la plus récente à la plus ancienne. La liste inclut les sessions gérées par le bot et les sessions locales Codex/Copilot/Claude Code CLI du projet courant.</td>
|
|
238
297
|
</tr>
|
|
239
298
|
<tr>
|
|
240
299
|
<td width="332"><code>/switch page <number></code></td>
|
|
@@ -313,13 +372,21 @@ Le bot accepte actuellement :
|
|
|
313
372
|
<td width="332"><code>APP_LOCALE</code></td>
|
|
314
373
|
<td>Langue de l’interface pour les messages partagés du bot et les descriptions de commandes. Valeurs prises en charge : <code>en</code>, <code>de</code>, <code>fr</code>, <code>ja</code>, <code>ko</code>, <code>nl</code>, <code>th</code>, <code>vi</code>, <code>zh-CN</code>, <code>zh-HK</code>, <code>zh-TW</code>.</td>
|
|
315
374
|
</tr>
|
|
375
|
+
<tr>
|
|
376
|
+
<td width="332"><code>DEFAULT_AGENT_PROVIDER</code></td>
|
|
377
|
+
<td>Fournisseur par défaut pour les nouvelles sessions : <code>codex</code>, <code>copilot</code>, ou <code>claude</code>. Valeur par défaut : <code>codex</code>.</td>
|
|
378
|
+
</tr>
|
|
316
379
|
<tr>
|
|
317
380
|
<td width="332"><code>CODEX_BIN</code></td>
|
|
318
|
-
<td>Commande utilisée pour lancer Codex CLI.
|
|
381
|
+
<td>Commande utilisée pour lancer Codex CLI. L'application essaiera de détecter automatiquement le chemin d'installation local de Codex lors de l'initialisation de <code>.env_coding_agent_telegram</code>. Vous pouvez également utiliser <code>which codex</code> pour afficher ce chemin.</td>
|
|
319
382
|
</tr>
|
|
320
383
|
<tr>
|
|
321
384
|
<td width="332"><code>COPILOT_BIN</code></td>
|
|
322
|
-
<td>Commande utilisée pour lancer Copilot CLI.
|
|
385
|
+
<td>Commande utilisée pour lancer Copilot CLI. L'application essaiera de détecter automatiquement le chemin d'installation local de Copilot lors de l'initialisation de <code>.env_coding_agent_telegram</code>. Vous pouvez également utiliser <code>which copilot</code> pour afficher ce chemin.</td>
|
|
386
|
+
</tr>
|
|
387
|
+
<tr>
|
|
388
|
+
<td width="332"><code>CLAUDE_BIN</code></td>
|
|
389
|
+
<td>Commande utilisée pour lancer Claude Code CLI. L'application essaiera de détecter automatiquement le chemin d'installation local de Claude lors de l'initialisation de <code>.env_coding_agent_telegram</code>. Vous pouvez également utiliser <code>which claude</code> pour afficher ce chemin.</td>
|
|
323
390
|
</tr>
|
|
324
391
|
<tr>
|
|
325
392
|
<td width="332"><code>CODEX_MODEL</code></td>
|
|
@@ -329,6 +396,14 @@ Le bot accepte actuellement :
|
|
|
329
396
|
<td width="332"><code>COPILOT_MODEL</code></td>
|
|
330
397
|
<td>Remplacement optionnel du modèle Copilot. Laissez vide pour utiliser le modèle par défaut de Copilot CLI. Exemples : <code>gpt-5.4</code>, <code>claude-sonnet-4.6</code> <a href="https://docs.github.com/en/copilot/reference/ai-models/supported-models" target="_blank">Modèles pris en charge par GitHub Copilot</a></td>
|
|
331
398
|
</tr>
|
|
399
|
+
<tr>
|
|
400
|
+
<td width="332"><code>CLAUDE_MODEL</code></td>
|
|
401
|
+
<td>Remplacement optionnel du modèle Claude Code.
|
|
402
|
+
Laissez vide pour utiliser le modèle par défaut de Claude Code CLI.
|
|
403
|
+
Exemples : <code>sonnet</code>, <code>opus</code>, <code>haiku</code>
|
|
404
|
+
<a href="https://code.claude.com/docs/en/model-config" target="_blank">Configuration des modèles Claude Code</a>
|
|
405
|
+
</td>
|
|
406
|
+
</tr>
|
|
332
407
|
<tr>
|
|
333
408
|
<td width="332"><code>CODEX_APPROVAL_POLICY</code></td>
|
|
334
409
|
<td>Mode d’approbation transmis à Codex. Défaut : <code>never</code>.</td>
|
|
@@ -341,6 +416,18 @@ Le bot accepte actuellement :
|
|
|
341
416
|
<td width="332"><code>CODEX_SKIP_GIT_REPO_CHECK</code></td>
|
|
342
417
|
<td>Si activé, contourne toujours les vérifications de dépôt trusted de Codex.</td>
|
|
343
418
|
</tr>
|
|
419
|
+
<tr>
|
|
420
|
+
<td width="332"><code>CLAUDE_PERMISSION_MODE</code></td>
|
|
421
|
+
<td>Mode de permission transmis à Claude Code. Un parmi <code>default</code>, <code>acceptEdits</code>, <code>plan</code>, <code>auto</code>, <code>dontAsk</code>, <code>bypassPermissions</code>, <code>manual</code>. Défaut : <code>bypassPermissions</code> (entièrement autonome, puisqu’il n’y a pas de terminal interactif pour approuver les invites).</td>
|
|
422
|
+
</tr>
|
|
423
|
+
<tr>
|
|
424
|
+
<td width="332"><code>CLAUDE_ALLOWED_TOOLS</code></td>
|
|
425
|
+
<td>Liste blanche d’outils Claude Code séparés par des virgules, utilisant la syntaxe des règles de permission de Claude Code. Exemple : <code>Read,Edit,Bash(git *)</code></td>
|
|
426
|
+
</tr>
|
|
427
|
+
<tr>
|
|
428
|
+
<td width="332"><code>CLAUDE_DISALLOWED_TOOLS</code></td>
|
|
429
|
+
<td>Liste noire d’outils Claude Code séparés par des virgules. Exemple : <code>Bash(rm *)</code></td>
|
|
430
|
+
</tr>
|
|
344
431
|
<tr>
|
|
345
432
|
<td width="332"><code>ENABLE_COMMIT_COMMAND</code></td>
|
|
346
433
|
<td>Active la commande Telegram <code>/commit</code>. Défaut : <code>false</code>.</td>
|
|
@@ -422,8 +509,10 @@ ALLOWED_CHAT_IDS=123456789
|
|
|
422
509
|
DEFAULT_AGENT_PROVIDER=codex
|
|
423
510
|
CODEX_BIN=codex
|
|
424
511
|
COPILOT_BIN=copilot
|
|
512
|
+
CLAUDE_BIN=claude
|
|
425
513
|
CODEX_APPROVAL_POLICY=never
|
|
426
514
|
CODEX_SANDBOX_MODE=workspace-write
|
|
515
|
+
CLAUDE_PERMISSION_MODE=bypassPermissions
|
|
427
516
|
ENABLE_SENSITIVE_DIFF_FILTER=true
|
|
428
517
|
ENABLE_SECRET_SCRUB_FILTER=true
|
|
429
518
|
```
|
|
@@ -487,7 +576,7 @@ Si l'exécution en cours est annulée et que des questions attendent encore, le
|
|
|
487
576
|
|
|
488
577
|
## ⚠️ Diff (modifications de fichiers)
|
|
489
578
|
|
|
490
|
-
_Pendant chaque exécution d'agent, le bot prend aussi un léger instantané avant/après du projet afin de résumer les fichiers modifiés et d'envoyer des diffs vers Telegram. Ce instantané est produit par le bot lui-même, pas par Codex ou
|
|
579
|
+
_Pendant chaque exécution d'agent, le bot prend aussi un léger instantané avant/après du projet afin de résumer les fichiers modifiés et d'envoyer des diffs vers Telegram. Ce instantané est produit par le bot lui-même, pas par Codex, Copilot ou Claude Code._
|
|
491
580
|
|
|
492
581
|
**À savoir sur le instantané :**
|
|
493
582
|
|