coding-agent-telegram 2026.3.30__tar.gz → 2026.4.2__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.3.30 → coding_agent_telegram-2026.4.2}/PKG-INFO +82 -25
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.de.md +107 -55
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.fr.md +135 -77
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.ja.md +164 -108
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.ko.md +165 -109
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.md +81 -24
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.nl.md +133 -75
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.th.md +164 -102
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.vi.md +172 -116
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.zh-CN.md +161 -105
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.zh-HK.md +173 -111
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/README.zh-TW.md +173 -111
- coding_agent_telegram-2026.4.2/install-stt.sh +37 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/install.sh +8 -3
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/pyproject.toml +1 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/agent_runner.py +69 -8
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/bot.py +36 -2
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/cli.py +11 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/config.py +18 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/diff_utils.py +12 -2
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/git_utils.py +42 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/.env.example +16 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/de.json +7 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/en.json +9 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/fr.json +7 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/ja.json +7 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/ko.json +7 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/nl.json +7 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/th.json +7 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/vi.json +7 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/zh-CN.json +7 -1
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/zh-HK.json +8 -2
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/locales/zh-TW.json +8 -2
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/base.py +70 -31
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/git_commands.py +10 -2
- coding_agent_telegram-2026.4.2/src/coding_agent_telegram/router/message_commands.py +284 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/project_commands.py +25 -13
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/queue_processing.py +129 -24
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/session_branch_resolution.py +1 -40
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/session_common.py +8 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/session_lifecycle_commands.py +77 -38
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/session_provider_commands.py +11 -3
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/session_runtime.py +77 -11
- coding_agent_telegram-2026.4.2/src/coding_agent_telegram/speech_to_text.py +140 -0
- coding_agent_telegram-2026.4.2/src/coding_agent_telegram/stt_setup.py +306 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/telegram_sender.py +68 -7
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram.egg-info/PKG-INFO +82 -25
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram.egg-info/SOURCES.txt +8 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram.egg-info/entry_points.txt +1 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/startup.sh +49 -38
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_agent_runner.py +54 -4
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_command_router.py +6109 -1867
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_config.py +49 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_diff_chunking.py +8 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_git_utils.py +92 -0
- coding_agent_telegram-2026.4.2/tests/test_i18n.py +137 -0
- coding_agent_telegram-2026.4.2/tests/test_native_session_utils.py +217 -0
- coding_agent_telegram-2026.4.2/tests/test_native_sessions.py +213 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_session_store.py +76 -0
- coding_agent_telegram-2026.4.2/tests/test_speech_to_text.py +105 -0
- coding_agent_telegram-2026.4.2/tests/test_stt_setup.py +99 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_telegram_sender.py +19 -11
- coding_agent_telegram-2026.3.30/src/coding_agent_telegram/router/message_commands.py +0 -69
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/.github/workflows/pull-request-checks.yml +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/.github/workflows/python-publish.yml +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/.github/workflows/testpypi-publish.yml +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/.gitignore +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/.gitkeep +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/LICENSE +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/setup.cfg +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/setup.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/__init__.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/__main__.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/command_router.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/filters.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/i18n.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/logging_utils.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/native_codex_sessions.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/native_copilot_sessions.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/native_session_types.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/native_session_utils.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/native_sessions.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/secret_scrub_patterns.properties +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/sensitive_path_globs.txt +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/snapshot_excluded_dir_globs.txt +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/snapshot_excluded_dir_names.txt +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/resources/snapshot_excluded_file_globs.txt +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/__init__.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/session_commands.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/session_status_commands.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/router/switch_commands.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram/session_store.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram.egg-info/dependency_links.txt +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram.egg-info/requires.txt +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/src/coding_agent_telegram.egg-info/top_level.txt +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/conftest.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_agent_runner_stall.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_bot.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_filters.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_logging_utils.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_project_validation.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_session_runtime_diff_merge.py +0 -0
- {coding_agent_telegram-2026.3.30 → coding_agent_telegram-2026.4.2}/tests/test_session_runtime_security.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.4.2
|
|
4
4
|
Summary: Telegram bot bridge for local coding agents (Codex/Copilot CLI)
|
|
5
5
|
Author: DCHA
|
|
6
6
|
License: MIT
|
|
@@ -52,7 +52,7 @@ Dynamic: license-file
|
|
|
52
52
|
- ✅ Use Telegram to control Codex / Copilot CLI
|
|
53
53
|
- ✅ Easily review files changed by agent in code block
|
|
54
54
|
- ✅ Queue follow-up messages while the agent is working
|
|
55
|
-
- ✅ Accept Text
|
|
55
|
+
- ✅ Accept ✏️ Text, 🌄 Image, and 🎙️ Voice messages
|
|
56
56
|
|
|
57
57
|
## 🔁 Seamless Device/Session Switching
|
|
58
58
|
|
|
@@ -76,7 +76,7 @@ Dynamic: license-file
|
|
|
76
76
|
|
|
77
77
|
</td>
|
|
78
78
|
<td width="350" border="0">
|
|
79
|
-
<img src="https://github.com/user-attachments/assets/
|
|
79
|
+
<img src="https://github.com/user-attachments/assets/54e8745b-a0d4-48ff-b0d8-178198d00a3d" />
|
|
80
80
|
</td>
|
|
81
81
|
</tr>
|
|
82
82
|
</table>
|
|
@@ -88,19 +88,20 @@ curl -fsSL https://raw.githubusercontent.com/daocha/coding-agent-telegram/main/i
|
|
|
88
88
|
|
|
89
89
|
<table>
|
|
90
90
|
<tr>
|
|
91
|
-
<td width="
|
|
91
|
+
<td width="65%" valign="top">
|
|
92
92
|
|
|
93
93
|
## 🔐 Security
|
|
94
94
|
|
|
95
|
-
- Private chat
|
|
95
|
+
- Private chat whitelist with `ALLOWED_CHAT_IDS`
|
|
96
96
|
- One active agent per project to reduce conflicting writes
|
|
97
97
|
- Sensitive file diffs are hidden
|
|
98
98
|
- API keys, tokens, `.env` values, certificates, SSH keys, and similar secret-like output are redacted before sending back to Telegram
|
|
99
99
|
- Runtime app data stays under `~/.coding-agent-telegram`
|
|
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
|
+
- Works well with Codex Sandbox mode (you don't have to grant `danger-full-access`)
|
|
102
103
|
</td>
|
|
103
|
-
<td width="
|
|
104
|
+
<td width="35%" valign="top">
|
|
104
105
|
|
|
105
106
|
## ✅ Requirements
|
|
106
107
|
|
|
@@ -110,12 +111,15 @@ curl -fsSL https://raw.githubusercontent.com/daocha/coding-agent-telegram/main/i
|
|
|
110
111
|
- Telegram bot token created from _@BotFather_
|
|
111
112
|
- Your Telegram chat ID
|
|
112
113
|
- Codex CLI and/or Copilot CLI installed locally
|
|
113
|
-
- [Codex CLI install](https://developers.openai.com/codex/cli)
|
|
114
|
-
- [
|
|
114
|
+
- [Codex CLI install](https://developers.openai.com/codex/cli) / [Copilot CLI install](https://github.com/features/copilot/cli)
|
|
115
|
+
- [Optional] `Whisper`, `ffmpeg`
|
|
115
116
|
</td>
|
|
116
117
|
</tr>
|
|
117
118
|
</table>
|
|
118
119
|
|
|
120
|
+
## 🦞 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
|
+
|
|
119
123
|
## 🚀 Quick Start
|
|
120
124
|
|
|
121
125
|
### Option A: Start with a one-line bootstrap script
|
|
@@ -139,7 +143,7 @@ cd coding-agent-telegram
|
|
|
139
143
|
./startup.sh
|
|
140
144
|
```
|
|
141
145
|
|
|
142
|
-
### Start Bot Server
|
|
146
|
+
### 🌐 Start Bot Server
|
|
143
147
|
##### On first run, the app creates the env file, tells you what to fill in.
|
|
144
148
|
##### After updating the environment file then run:
|
|
145
149
|
|
|
@@ -151,6 +155,40 @@ coding-agent-telegram
|
|
|
151
155
|
./startup.sh
|
|
152
156
|
```
|
|
153
157
|
|
|
158
|
+
## 🎙️ [Optional] Speech-to-Text Feature: prepare local OpenAI-Whisper prerequisites
|
|
159
|
+
|
|
160
|
+
This enables optional local Whisper-based voice-message speech-to-text for Telegram voice notes. Voice files are capped to `20MB` max.
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# if you installed from pip or one-liner install.sh
|
|
164
|
+
coding-agent-telegram-stt-install
|
|
165
|
+
|
|
166
|
+
# if you run from a cloned repository
|
|
167
|
+
./install-stt.sh
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
The installer writes the STT env flags automatically after prerequisites are ready.
|
|
171
|
+
|
|
172
|
+
Estimated local footprint:
|
|
173
|
+
|
|
174
|
+
- `openai-whisper`: about `50 MB`
|
|
175
|
+
- `ffmpeg` package: about `50 MB`
|
|
176
|
+
- Whisper model downloads vary by model: `tiny` about `72 MB`, `base` about `139 MB`, `large-v3-turbo` about `1.5 GB`
|
|
177
|
+
|
|
178
|
+
Recommended env settings for the local Whisper backend:
|
|
179
|
+
|
|
180
|
+
```text
|
|
181
|
+
ENABLE_OPENAI_WHISPER_SPEECH_TO_TEXT=true
|
|
182
|
+
OPENAI_WHISPER_MODEL=base
|
|
183
|
+
OPENAI_WHISPER_TIMEOUT_SECONDS=120
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Notes:
|
|
187
|
+
|
|
188
|
+
- Whisper downloads the selected model automatically on first use into `~/.cache/whisper`.
|
|
189
|
+
- If you choose `OPENAI_WHISPER_MODEL=turbo`, the first voice transcription is more likely to hit the timeout while `large-v3-turbo.pt` is still downloading.
|
|
190
|
+
- After a voice note is transcribed, the bot immediately sends the recognized transcript back to Telegram before the agent reply. If the run can start immediately it says “working on it”; if the project is busy it shows that the transcript was queued instead.
|
|
191
|
+
|
|
154
192
|
## 🔑 Telegram Setup
|
|
155
193
|
|
|
156
194
|
### Get a Bot Token
|
|
@@ -189,61 +227,62 @@ The bot currently accepts:
|
|
|
189
227
|
|
|
190
228
|
- Text messages
|
|
191
229
|
- photos
|
|
230
|
+
- voice messages when `ENABLE_OPENAI_WHISPER_SPEECH_TO_TEXT=true` and local Whisper prerequisites are installed
|
|
192
231
|
- Codex and Copilot currently supports text and image only, video is not supported.
|
|
193
232
|
|
|
194
233
|
## 🤖 Telegram Commands
|
|
195
234
|
|
|
196
235
|
<table>
|
|
197
236
|
<tr>
|
|
198
|
-
<td width="
|
|
237
|
+
<td width="332"><code>/provider</code></td>
|
|
199
238
|
<td>Choose the provider for new sessions. The selection is stored per bot and chat until you change it.</td>
|
|
200
239
|
</tr>
|
|
201
240
|
<tr>
|
|
202
|
-
<td
|
|
241
|
+
<td><code>/project <project_folder></code></td>
|
|
203
242
|
<td>Set the current project folder. If the folder does not exist, the app creates it and marks it trusted. If it already exists and is still untrusted, the app asks you to trust it explicitly.</td>
|
|
204
243
|
</tr>
|
|
205
244
|
<tr>
|
|
206
|
-
<td
|
|
245
|
+
<td><code>/branch <new_branch></code></td>
|
|
207
246
|
<td>Prepare or switch a branch for the current project. If the branch already exists, the bot treats that branch as the source candidate. Otherwise it uses the repository default branch as the source candidate.</td>
|
|
208
247
|
</tr>
|
|
209
248
|
<tr>
|
|
210
|
-
<td
|
|
249
|
+
<td><code>/branch <origin_branch> <new_branch></code></td>
|
|
211
250
|
<td>Prepare or switch a branch using <code><origin_branch></code> as the source candidate. <br /> For both forms, the bot then offers the source choices that actually exist: <code>local/<branch></code> <code>origin/<branch></code> <br />If only one of those exists, only that option is shown. If neither exists, the bot tells you the branch source is missing.</td>
|
|
212
251
|
</tr>
|
|
213
252
|
<tr>
|
|
214
|
-
<td
|
|
253
|
+
<td><code>/current</code></td>
|
|
215
254
|
<td>Show the active session for the current bot and chat.</td>
|
|
216
255
|
</tr>
|
|
217
256
|
<tr>
|
|
218
|
-
<td
|
|
257
|
+
<td><code>/new [session_name]</code></td>
|
|
219
258
|
<td>Create a new session for the current project. If you omit the name, the bot uses the real session ID. If provider, project, or branch is missing, the bot guides you through the missing step.</td>
|
|
220
259
|
</tr>
|
|
221
260
|
<tr>
|
|
222
|
-
<td
|
|
261
|
+
<td><code>/switch</code></td>
|
|
223
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>
|
|
224
263
|
</tr>
|
|
225
264
|
<tr>
|
|
226
|
-
<td
|
|
265
|
+
<td><code>/switch page <number></code></td>
|
|
227
266
|
<td>Show another page of stored sessions.</td>
|
|
228
267
|
</tr>
|
|
229
268
|
<tr>
|
|
230
|
-
<td
|
|
269
|
+
<td><code>/switch <session_id></code></td>
|
|
231
270
|
<td>Switch to a specific session by ID. If you choose a local CLI session, the bot imports it and continues from there.</td>
|
|
232
271
|
</tr>
|
|
233
272
|
<tr>
|
|
234
|
-
<td
|
|
273
|
+
<td><code>/compact</code></td>
|
|
235
274
|
<td>Create a fresh compacted session from the active session and switch to it.</td>
|
|
236
275
|
</tr>
|
|
237
276
|
<tr>
|
|
238
|
-
<td
|
|
277
|
+
<td><code>/commit <git commands></code></td>
|
|
239
278
|
<td>Run validated git commit-related commands inside the active session project. Available only when <code>ENABLE_COMMIT_COMMAND=true</code>. Mutating git commands require a trusted project.</td>
|
|
240
279
|
</tr>
|
|
241
280
|
<tr>
|
|
242
|
-
<td
|
|
281
|
+
<td><code>/push</code></td>
|
|
243
282
|
<td>Push <code>origin <branch></code> for the current active session. The bot asks for confirmation before pushing.</td>
|
|
244
283
|
</tr>
|
|
245
284
|
<tr>
|
|
246
|
-
<td
|
|
285
|
+
<td><code>/abort</code></td>
|
|
247
286
|
<td>Abort the current agent run for the current project. If queued questions are waiting, the bot asks whether to continue them.</td>
|
|
248
287
|
</tr>
|
|
249
288
|
</table>
|
|
@@ -270,7 +309,7 @@ The bot currently accepts:
|
|
|
270
309
|
|
|
271
310
|
<table>
|
|
272
311
|
<tr>
|
|
273
|
-
<td width="
|
|
312
|
+
<td width="332"><code>WORKSPACE_ROOT</code></td>
|
|
274
313
|
<td>Parent folder that contains your project directories.</td>
|
|
275
314
|
</tr>
|
|
276
315
|
<tr>
|
|
@@ -287,7 +326,7 @@ The bot currently accepts:
|
|
|
287
326
|
|
|
288
327
|
<table>
|
|
289
328
|
<tr>
|
|
290
|
-
<td width="
|
|
329
|
+
<td width="332"><code>APP_LOCALE</code></td>
|
|
291
330
|
<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>
|
|
292
331
|
</tr>
|
|
293
332
|
<tr>
|
|
@@ -362,6 +401,24 @@ The bot currently accepts:
|
|
|
362
401
|
</tr>
|
|
363
402
|
</table>
|
|
364
403
|
|
|
404
|
+
<h3>Speech to Text</h3>
|
|
405
|
+
<table>
|
|
406
|
+
<tr>
|
|
407
|
+
<td width="332"><code>ENABLE_OPENAI_WHISPER_SPEECH_TO_TEXT</code></td>
|
|
408
|
+
<td>Default: <code>false</code>. If true, it enables the audio messages capability. System will check the prerequisites regarding required binaries or libraries on startup.</td>
|
|
409
|
+
</tr>
|
|
410
|
+
<tr>
|
|
411
|
+
<td><code>OPENAI_WHISPER_MODEL</code></td>
|
|
412
|
+
<td>Model for the Whisper SST. Default: <code>base</code><br />Available models: <code>tiny</code> about <code>72 MB</code>, <code>base</code> about <codoe>139 MB</codoe>, <code>large-v3-turbo</code> about <code>1.5 GB</code><br />
|
|
413
|
+
Models will be automatically downloaded on your first voice message. Recommended: <code>base</code> for general usage. If you want better accuracy and quality, you can try with <code>turbo</code>
|
|
414
|
+
</td>
|
|
415
|
+
</tr>
|
|
416
|
+
<tr>
|
|
417
|
+
<td><code>OPENAI_WHISPER_TIMEOUT_SECONDS</code></td>
|
|
418
|
+
<td>Default: <code>120</code>Timeout for the STT process. Usually the STT processing is fast enough.</td>
|
|
419
|
+
</tr>
|
|
420
|
+
</table>
|
|
421
|
+
|
|
365
422
|
<h3>State and Logs</h3>
|
|
366
423
|
|
|
367
424
|
<table>
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
- ✅ Telegram zum Steuern von Codex / Copilot 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
|
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
## 🛠️ Typischer lokaler Ablauf
|
|
51
51
|
```bash
|
|
52
|
-
coding-agent-telegram #
|
|
52
|
+
coding-agent-telegram # oder ./startup.sh ausführen
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
##### In Telegram:
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
|
|
63
63
|
</td>
|
|
64
64
|
<td width="350" border="0">
|
|
65
|
-
<img src="https://github.com/user-attachments/assets/
|
|
65
|
+
<img src="https://github.com/user-attachments/assets/54e8745b-a0d4-48ff-b0d8-178198d00a3d" />
|
|
66
66
|
</td>
|
|
67
67
|
</tr>
|
|
68
68
|
</table>
|
|
@@ -74,19 +74,20 @@ curl -fsSL https://raw.githubusercontent.com/daocha/coding-agent-telegram/main/i
|
|
|
74
74
|
|
|
75
75
|
<table>
|
|
76
76
|
<tr>
|
|
77
|
-
<td width="
|
|
77
|
+
<td width="65%" valign="top">
|
|
78
78
|
|
|
79
79
|
## 🔐 Sicherheit
|
|
80
80
|
|
|
81
|
-
-
|
|
82
|
-
- Pro Projekt
|
|
81
|
+
- Whitelist für private Chats mit `ALLOWED_CHAT_IDS`
|
|
82
|
+
- Pro Projekt nur ein aktiver Agent, um Konflikte beim Schreiben zu reduzieren
|
|
83
83
|
- Diffs sensibler Dateien werden ausgeblendet
|
|
84
|
-
- API-Schlüssel, Tokens, `.env`-Werte, Zertifikate, SSH-Schlüssel und ähnliche
|
|
84
|
+
- API-Schlüssel, Tokens, `.env`-Werte, Zertifikate, SSH-Schlüssel und ähnliche geheime Ausgaben werden vor dem Senden an Telegram maskiert
|
|
85
85
|
- Laufzeitdaten der App bleiben unter `~/.coding-agent-telegram`
|
|
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
|
+
- Funktioniert gut mit dem Codex Sandbox mode; du musst `danger-full-access` nicht freigeben
|
|
88
89
|
</td>
|
|
89
|
-
<td width="
|
|
90
|
+
<td width="35%" valign="top">
|
|
90
91
|
|
|
91
92
|
## ✅ Voraussetzungen
|
|
92
93
|
|
|
@@ -98,41 +99,71 @@ Vor dem Start des Servers brauchst du:
|
|
|
98
99
|
- Lokal installiertes Codex CLI und/oder Copilot CLI
|
|
99
100
|
- [Codex CLI Installation](https://developers.openai.com/codex/cli)
|
|
100
101
|
- [Copilot CLI Installation](https://github.com/features/copilot/cli)
|
|
102
|
+
- [Optional] Whisper, ffmpeg
|
|
101
103
|
</td>
|
|
102
104
|
</tr>
|
|
103
105
|
</table>
|
|
104
106
|
|
|
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.
|
|
109
|
+
|
|
105
110
|
## 🚀 Schnellstart
|
|
106
111
|
|
|
107
|
-
###
|
|
112
|
+
### Variante A: Einzeiliges Bootstrap-Skript
|
|
108
113
|
```bash
|
|
109
114
|
curl -fsSL https://raw.githubusercontent.com/daocha/coding-agent-telegram/main/install.sh | bash
|
|
110
115
|
```
|
|
111
116
|
|
|
112
|
-
###
|
|
117
|
+
### Variante B: Installation über PyPI mit `pip`
|
|
113
118
|
```bash
|
|
114
119
|
pip install coding-agent-telegram
|
|
115
120
|
coding-agent-telegram
|
|
116
121
|
```
|
|
117
122
|
|
|
118
|
-
###
|
|
123
|
+
### Variante C: Aus einem geklonten Repository starten
|
|
119
124
|
```bash
|
|
120
125
|
git clone https://github.com/daocha/coding-agent-telegram
|
|
121
126
|
cd coding-agent-telegram
|
|
122
127
|
./startup.sh
|
|
123
128
|
```
|
|
124
129
|
|
|
125
|
-
### Bot-Server starten
|
|
130
|
+
### 🌐 Bot-Server starten
|
|
126
131
|
##### Beim ersten Start legt die App die Env-Datei an und sagt dir, welche Felder du ausfüllen musst.
|
|
127
132
|
##### Nach dem Bearbeiten der Env-Datei starte erneut:
|
|
128
133
|
```bash
|
|
129
|
-
#
|
|
134
|
+
# wenn du Variante A oder Variante B verwendest, dann ausführen
|
|
130
135
|
coding-agent-telegram
|
|
131
136
|
|
|
132
|
-
#
|
|
137
|
+
# wenn du Variante C verwendest, dann dies erneut ausführen
|
|
133
138
|
./startup.sh
|
|
134
139
|
```
|
|
135
140
|
|
|
141
|
+
## 🎙️ [Optional] Sprach-zu-Text-Funktion: lokale OpenAI-Whisper-Voraussetzungen vorbereiten
|
|
142
|
+
|
|
143
|
+
Damit aktivierst du optional lokale Whisper-basierte Sprach-zu-Text-Unterstützung für Telegram-Sprachnotizen. Audiodateien sind auf maximal `20 MB` begrenzt.
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# wenn du per pip oder per Einzeiler install.sh installiert hast
|
|
147
|
+
coding-agent-telegram-stt-install
|
|
148
|
+
|
|
149
|
+
# wenn du aus einem geklonten Repository startest
|
|
150
|
+
./install-stt.sh
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Empfohlene Env-Einstellungen:
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
ENABLE_OPENAI_WHISPER_SPEECH_TO_TEXT=true
|
|
157
|
+
OPENAI_WHISPER_MODEL=base
|
|
158
|
+
OPENAI_WHISPER_TIMEOUT_SECONDS=120
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Hinweise:
|
|
162
|
+
|
|
163
|
+
- Whisper lädt das ausgewählte Modell beim ersten Aufruf automatisch nach `~/.cache/whisper` herunter.
|
|
164
|
+
- Wenn du `OPENAI_WHISPER_MODEL=turbo` wählst, ist es wahrscheinlicher, dass die erste Sprachnachricht das Zeitlimit erreicht, während `large-v3-turbo.pt` noch heruntergeladen wird.
|
|
165
|
+
- Nach der Transkription einer Sprachnachricht sendet der Bot das erkannte Transkript zuerst zurück an Telegram und gibt es danach an den Agenten weiter. So lassen sich Erkennungsfehler leichter prüfen.
|
|
166
|
+
|
|
136
167
|
## 🔑 Telegram-Einrichtung
|
|
137
168
|
|
|
138
169
|
### Bot-Token holen
|
|
@@ -171,61 +202,62 @@ Der Bot akzeptiert derzeit:
|
|
|
171
202
|
|
|
172
203
|
- Textnachrichten
|
|
173
204
|
- Fotos
|
|
205
|
+
- Sprachnachrichten und Audiodateien, wenn `ENABLE_OPENAI_WHISPER_SPEECH_TO_TEXT=true` gesetzt ist und die lokalen Whisper-Voraussetzungen installiert sind
|
|
174
206
|
- Codex und Copilot unterstützen aktuell nur Text und Bilder, kein Video.
|
|
175
207
|
|
|
176
208
|
## 🤖 Telegram-Befehle
|
|
177
209
|
|
|
178
210
|
<table>
|
|
179
211
|
<tr>
|
|
180
|
-
<td width="
|
|
212
|
+
<td width="332"><code>/provider</code></td>
|
|
181
213
|
<td>Provider für neue Sessions wählen. Die Auswahl wird pro Bot und Chat gespeichert, bis du sie änderst.</td>
|
|
182
214
|
</tr>
|
|
183
215
|
<tr>
|
|
184
|
-
<td width="
|
|
216
|
+
<td width="332"><code>/project <project_folder></code></td>
|
|
185
217
|
<td>Aktuellen Projektordner setzen. Falls der Ordner nicht existiert, erstellt die App ihn und markiert ihn als vertrauenswürdig. Wenn er bereits existiert und noch nicht vertraut ist, fragt die App nach einer Bestätigung.</td>
|
|
186
218
|
</tr>
|
|
187
219
|
<tr>
|
|
188
|
-
<td width="
|
|
220
|
+
<td width="332"><code>/branch <new_branch></code></td>
|
|
189
221
|
<td>Eine branch für das aktuelle Projekt vorbereiten oder wechseln. Wenn die branch bereits existiert, nutzt der Bot sie als Quellkandidaten. Andernfalls verwendet er die Standard-branch des Repositorys als Quellkandidaten.</td>
|
|
190
222
|
</tr>
|
|
191
223
|
<tr>
|
|
192
|
-
<td width="
|
|
193
|
-
<td>Eine branch mit
|
|
224
|
+
<td width="332"><code>/branch <origin_branch> <new_branch></code></td>
|
|
225
|
+
<td>Eine branch mit <code><origin_branch></code> als Quellkandidaten vorbereiten oder wechseln. Für beide Formen bietet der Bot anschließend nur die Quelloptionen an, die tatsächlich existieren: <code>local/<branch></code> und <code>origin/<branch></code>. Wenn nur eine davon existiert, wird nur diese angezeigt. Wenn keine existiert, meldet der Bot, dass die branch-Quelle fehlt.</td>
|
|
194
226
|
</tr>
|
|
195
227
|
<tr>
|
|
196
|
-
<td width="
|
|
228
|
+
<td width="332"><code>/current</code></td>
|
|
197
229
|
<td>Die aktive Session für den aktuellen Bot und Chat anzeigen.</td>
|
|
198
230
|
</tr>
|
|
199
231
|
<tr>
|
|
200
|
-
<td width="
|
|
232
|
+
<td width="332"><code>/new [session_name]</code></td>
|
|
201
233
|
<td>Eine neue Session für das aktuelle Projekt erstellen. Wenn du keinen Namen angibst, verwendet der Bot die echte Session-ID. Fehlen Provider, Projekt oder branch, führt dich der Bot durch den fehlenden Schritt.</td>
|
|
202
234
|
</tr>
|
|
203
235
|
<tr>
|
|
204
|
-
<td width="
|
|
236
|
+
<td width="332"><code>/switch</code></td>
|
|
205
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>
|
|
206
238
|
</tr>
|
|
207
239
|
<tr>
|
|
208
|
-
<td width="
|
|
240
|
+
<td width="332"><code>/switch page <number></code></td>
|
|
209
241
|
<td>Eine andere Seite der gespeicherten Sessions anzeigen.</td>
|
|
210
242
|
</tr>
|
|
211
243
|
<tr>
|
|
212
|
-
<td width="
|
|
244
|
+
<td width="332"><code>/switch <session_id></code></td>
|
|
213
245
|
<td>Zu einer bestimmten Session per ID wechseln. Wenn du eine lokale CLI-Session auswählst, importiert der Bot sie und setzt dort fort.</td>
|
|
214
246
|
</tr>
|
|
215
247
|
<tr>
|
|
216
|
-
<td width="
|
|
248
|
+
<td width="332"><code>/compact</code></td>
|
|
217
249
|
<td>Aus der aktiven Session eine neue kompakte Session erzeugen und dorthin wechseln.</td>
|
|
218
250
|
</tr>
|
|
219
251
|
<tr>
|
|
220
|
-
<td width="
|
|
221
|
-
<td>Geprüfte
|
|
252
|
+
<td width="332"><code>/commit <git commands></code></td>
|
|
253
|
+
<td>Geprüfte <code>git commit</code>-bezogene Befehle im Projekt der aktiven Session ausführen. Nur verfügbar, wenn <code>ENABLE_COMMIT_COMMAND=true</code>. Schreibende Git-Befehle erfordern ein vertrauenswürdiges Projekt.</td>
|
|
222
254
|
</tr>
|
|
223
255
|
<tr>
|
|
224
|
-
<td width="
|
|
225
|
-
<td
|
|
256
|
+
<td width="332"><code>/push</code></td>
|
|
257
|
+
<td><code>origin <branch></code> für die aktuelle aktive Session pushen. Der Bot fragt vor dem Push nach einer Bestätigung.</td>
|
|
226
258
|
</tr>
|
|
227
259
|
<tr>
|
|
228
|
-
<td width="
|
|
260
|
+
<td width="332"><code>/abort</code></td>
|
|
229
261
|
<td>Den aktuellen Agentenlauf für das aktuelle Projekt abbrechen. Wenn Fragen in der Queue warten, fragt der Bot, ob sie weiter verarbeitet werden sollen.</td>
|
|
230
262
|
</tr>
|
|
231
263
|
</table>
|
|
@@ -253,15 +285,15 @@ Der Bot akzeptiert derzeit:
|
|
|
253
285
|
|
|
254
286
|
<table>
|
|
255
287
|
<tr>
|
|
256
|
-
<td width="
|
|
288
|
+
<td width="332"><code>WORKSPACE_ROOT</code></td>
|
|
257
289
|
<td>Übergeordneter Ordner, der deine Projektverzeichnisse enthält.</td>
|
|
258
290
|
</tr>
|
|
259
291
|
<tr>
|
|
260
|
-
<td width="
|
|
292
|
+
<td width="332"><code>TELEGRAM_BOT_TOKENS</code></td>
|
|
261
293
|
<td>Kommagetrennte Telegram-Bot-Tokens.</td>
|
|
262
294
|
</tr>
|
|
263
295
|
<tr>
|
|
264
|
-
<td width="
|
|
296
|
+
<td width="332"><code>ALLOWED_CHAT_IDS</code></td>
|
|
265
297
|
<td>Kommagetrennte Telegram-Chat-IDs privater Chats, die den Bot verwenden dürfen.</td>
|
|
266
298
|
</tr>
|
|
267
299
|
</table>
|
|
@@ -270,71 +302,91 @@ Der Bot akzeptiert derzeit:
|
|
|
270
302
|
|
|
271
303
|
<table>
|
|
272
304
|
<tr>
|
|
273
|
-
<td width="
|
|
305
|
+
<td width="332"><code>APP_LOCALE</code></td>
|
|
274
306
|
<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>
|
|
275
307
|
</tr>
|
|
276
308
|
<tr>
|
|
277
|
-
<td width="
|
|
309
|
+
<td width="332"><code>CODEX_BIN</code></td>
|
|
278
310
|
<td>Befehl zum Starten von Codex CLI. Standard: <code>codex</code>.</td>
|
|
279
311
|
</tr>
|
|
280
312
|
<tr>
|
|
281
|
-
<td width="
|
|
313
|
+
<td width="332"><code>COPILOT_BIN</code></td>
|
|
282
314
|
<td>Befehl zum Starten von Copilot CLI. Standard: <code>copilot</code>.</td>
|
|
283
315
|
</tr>
|
|
284
316
|
<tr>
|
|
285
|
-
<td width="
|
|
317
|
+
<td width="332"><code>CODEX_MODEL</code></td>
|
|
286
318
|
<td>Optionale Model-Überschreibung für Codex. Leer lassen, um das Standardmodell von Codex CLI zu verwenden. Beispiel: <code>gpt-5.4</code> <a href="https://developers.openai.com/codex/models" target="_blank">OpenAI Codex/OpenAI modelle</a></td>
|
|
287
319
|
</tr>
|
|
288
320
|
<tr>
|
|
289
|
-
<td width="
|
|
321
|
+
<td width="332"><code>COPILOT_MODEL</code></td>
|
|
290
322
|
<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>
|
|
291
323
|
</tr>
|
|
292
324
|
<tr>
|
|
293
|
-
<td width="
|
|
325
|
+
<td width="332"><code>CODEX_APPROVAL_POLICY</code></td>
|
|
294
326
|
<td>An Codex übergebener Freigabemodus. Standard: <code>never</code>.</td>
|
|
295
327
|
</tr>
|
|
296
328
|
<tr>
|
|
297
|
-
<td width="
|
|
329
|
+
<td width="332"><code>CODEX_SANDBOX_MODE</code></td>
|
|
298
330
|
<td>An Codex übergebener Sandbox-Modus. Standard: <code>workspace-write</code>.</td>
|
|
299
331
|
</tr>
|
|
300
332
|
<tr>
|
|
301
|
-
<td width="
|
|
333
|
+
<td width="332"><code>CODEX_SKIP_GIT_REPO_CHECK</code></td>
|
|
302
334
|
<td>Wenn aktiviert, werden Codex-Prüfungen für vertrauenswürdige Repositories immer übersprungen.</td>
|
|
303
335
|
</tr>
|
|
304
336
|
<tr>
|
|
305
|
-
<td width="
|
|
337
|
+
<td width="332"><code>ENABLE_COMMIT_COMMAND</code></td>
|
|
306
338
|
<td>Den Telegram-Befehl <code>/commit</code> aktivieren. Standard: <code>false</code>.</td>
|
|
307
339
|
</tr>
|
|
308
340
|
<tr>
|
|
309
|
-
<td width="
|
|
341
|
+
<td width="332"><code>AGENT_HARD_TIMEOUT_SECONDS</code></td>
|
|
310
342
|
<td>Hartes Zeitlimit für einen einzelnen Agentenlauf. Standard: <code>0</code> (deaktiviert).</td>
|
|
311
343
|
</tr>
|
|
312
344
|
<tr>
|
|
313
|
-
<td width="
|
|
345
|
+
<td width="332"><code>SNAPSHOT_TEXT_FILE_MAX_BYTES</code></td>
|
|
314
346
|
<td>Maximale Dateigröße, die der Bot als Text liest, wenn er Vorher/Nachher-Snapshots für Run-Diffs erstellt. Standard: <code>200000</code>.</td>
|
|
315
347
|
</tr>
|
|
316
348
|
<tr>
|
|
317
|
-
<td width="
|
|
349
|
+
<td width="332"><code>MAX_TELEGRAM_MESSAGE_LENGTH</code></td>
|
|
318
350
|
<td>Maximale Nachrichtengröße, bevor die App Antworten aufteilt. Standard: <code>3000</code>.</td>
|
|
319
351
|
</tr>
|
|
320
352
|
<tr>
|
|
321
|
-
<td width="
|
|
353
|
+
<td width="332"><code>ENABLE_SENSITIVE_DIFF_FILTER</code></td>
|
|
322
354
|
<td>Diffs für sensible Dateien ausblenden. Standard: <code>true</code>.</td>
|
|
323
355
|
</tr>
|
|
324
356
|
<tr>
|
|
325
|
-
<td width="
|
|
357
|
+
<td width="332"><code>ENABLE_SECRET_SCRUB_FILTER</code></td>
|
|
326
358
|
<td>Tokens, Schlüssel, <code>.env</code>-Werte, Zertifikate und ähnliche geheime Ausgaben vor dem Senden an Telegram unkenntlich machen. Standard: <code>true</code> (dringend empfohlen).</td>
|
|
327
359
|
</tr>
|
|
328
360
|
<tr>
|
|
329
|
-
<td width="
|
|
361
|
+
<td width="332"><code>SNAPSHOT_INCLUDE_PATH_GLOBS</code></td>
|
|
330
362
|
<td>Passende Pfade in Diffs immer einschließen. Beispiel: <code>.github/*,.profile.test,.profile.prod</code></td>
|
|
331
363
|
</tr>
|
|
332
364
|
<tr>
|
|
333
|
-
<td width="
|
|
365
|
+
<td width="332"><code>SNAPSHOT_EXCLUDE_PATH_GLOBS</code></td>
|
|
334
366
|
<td>Zusätzliche Diff-Ausschlüsse zusätzlich zu den Standardwerten hinzufügen. Beispiel: <code>.*,personal/*,sensitive*.txt</code> Hinweis: <code>.*</code> erfasst versteckte Pfade, auch Dateien in versteckten Verzeichnissen.</td>
|
|
335
367
|
</tr>
|
|
336
368
|
</table>
|
|
337
369
|
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
<h3>Spracherkennung</h3>
|
|
374
|
+
|
|
375
|
+
<table>
|
|
376
|
+
<tr>
|
|
377
|
+
<td width="332"><code>ENABLE_OPENAI_WHISPER_SPEECH_TO_TEXT</code></td>
|
|
378
|
+
<td>Standard: <code>false</code>. Wenn <code>true</code>, werden Sprachnachrichten und Audiodateien erkannt. Das System prüft die erforderlichen Binärdateien oder Bibliotheken und fordert zur Installation auf, falls etwas fehlt.</td>
|
|
379
|
+
</tr>
|
|
380
|
+
<tr>
|
|
381
|
+
<td><code>OPENAI_WHISPER_MODEL</code></td>
|
|
382
|
+
<td>Modell für Whisper STT. Standard: <code>base</code><br />Verfügbare Modelle: <code>tiny</code> ca. <code>72 MB</code>, <code>base</code> ca. <code>139 MB</code>, <code>large-v3-turbo</code> ca. <code>1.5 GB</code><br />Modelle werden bei der ersten Sprachnachricht automatisch heruntergeladen. Empfehlung: <code>base</code> für den allgemeinen Gebrauch. Wenn du bessere Genauigkeit und Qualität willst, kannst du <code>turbo</code> ausprobieren.</td>
|
|
383
|
+
</tr>
|
|
384
|
+
<tr>
|
|
385
|
+
<td><code>OPENAI_WHISPER_TIMEOUT_SECONDS</code></td>
|
|
386
|
+
<td>Standard: <code>120</code>. Timeout für den STT-Prozess. Normalerweise ist die Verarbeitung schnell genug. Wenn du jedoch <code>turbo</code> wählst, kann der erste Sprachaufruf während des Modelldownloads je nach Internetgeschwindigkeit das Timeout überschreiten.</td>
|
|
387
|
+
</tr>
|
|
388
|
+
</table>
|
|
389
|
+
|
|
338
390
|
<h3>Status und Logs</h3>
|
|
339
391
|
|
|
340
392
|
<table>
|
|
@@ -344,7 +396,7 @@ Der Bot akzeptiert derzeit:
|
|
|
344
396
|
</tr>
|
|
345
397
|
<tr>
|
|
346
398
|
<td><code>~/.coding-agent-telegram/state.json.bak</code></td>
|
|
347
|
-
<td>
|
|
399
|
+
<td>Sicherungsdatei für den Status.</td>
|
|
348
400
|
</tr>
|
|
349
401
|
<tr>
|
|
350
402
|
<td><code>~/.coding-agent-telegram/logs</code></td>
|
|
@@ -470,8 +522,8 @@ Der Bot behandelt Projekt und branch als zusammengehörig.
|
|
|
470
522
|
|
|
471
523
|
Wenn du eine branch erstellst oder wechselst, führt dich der Bot explizit durch die Quelle:
|
|
472
524
|
|
|
473
|
-
-
|
|
474
|
-
-
|
|
525
|
+
- <code>local/<branch></code> bedeutet: lokale branch als Quelle verwenden
|
|
526
|
+
- <code>origin/<branch></code> bedeutet: zuerst von der Remote-branch aktualisieren und dann wechseln
|
|
475
527
|
|
|
476
528
|
Wenn der Bot feststellt, dass die in der Session gespeicherte branch und die aktuelle Repository-branch nicht übereinstimmen, macht er nicht blind weiter. Er fragt dich, welche branch verwendet werden soll:
|
|
477
529
|
|
|
@@ -489,7 +541,7 @@ Wenn die bevorzugte Quell-branch fehlt, bietet der Bot stattdessen Fallback-Quel
|
|
|
489
541
|
- `/commit` kann mit `ENABLE_COMMIT_COMMAND` komplett deaktiviert werden
|
|
490
542
|
- Schreibende `/commit`-Operationen sind nur für vertrauenswürdige Projekte erlaubt
|
|
491
543
|
|
|
492
|
-
## 🪵
|
|
544
|
+
## 🪵 Protokolle
|
|
493
545
|
|
|
494
546
|
Logs werden **sowohl auf stdout als auch in eine rotierende Log-Datei** geschrieben unter:
|
|
495
547
|
|
|
@@ -529,7 +581,7 @@ Logs werden **sowohl auf stdout als auch in eine rotierende Log-Datei** geschrie
|
|
|
529
581
|
- `pyproject.toml`
|
|
530
582
|
Packaging- und Abhängigkeitskonfiguration
|
|
531
583
|
|
|
532
|
-
## 📦
|
|
584
|
+
## 📦 Veröffentlichung-Versionierung
|
|
533
585
|
|
|
534
586
|
Paketversionen werden aus Git-Tags abgeleitet.
|
|
535
587
|
|