You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Text messages (non-commands) are treated as prompts for OpenCode only when no blocking interaction is active.
104
+
Text messages (non-commands) are treated as prompts for OpenCode only when no blocking interaction is active. Voice/audio messages are transcribed and then sent as prompts when STT is configured.
103
105
104
106
Interaction routing rules:
105
107
@@ -123,6 +125,7 @@ Interaction routing rules:
123
125
-[x] Sending code blocks as files when needed
124
126
-[x] Configurable batching of service messages (thinking + tool updates): recommended `>=2` sec for Telegram rate limits; `0` = immediate
125
127
-[x] Configurable service message visibility via env flags (`HIDE_THINKING_MESSAGES`, `HIDE_TOOL_CALL_MESSAGES`)
128
+
-[x] Voice/audio transcription via Whisper-compatible APIs (OpenAI/Groq/Together and compatible providers)
126
129
-[x] Single-user security model (allowed Telegram user ID)
127
130
-[x] Persistent bot settings (`settings.json`) between restarts
128
131
-[x] EN/RU localization structure via dedicated i18n files
@@ -138,7 +141,7 @@ Open tasks for upcoming iterations:
138
141
-[ ] Improve Telegram-compatible message formatting for richer outputs
139
142
-[ ] Support sending files from Telegram to OpenCode (screenshots, documents)
140
143
-[ ] Provide a Docker image and basic container deployment guide
-**Model switching** — pick any model from your OpenCode favorites directly in the chat
26
26
-**Agent modes** — switch between Plan and Build modes on the fly
27
27
-**Interactive Q&A** — answer agent questions and approve permissions via inline buttons
28
+
-**Voice prompts** — send voice/audio messages, transcribe them via a Whisper-compatible API, then forward recognized text to OpenCode
28
29
-**Context control** — compact context when it gets too large, right from the chat
30
+
-**Input flow control** — when an interactive flow is active, the bot accepts only relevant input to keep context consistent and avoid accidental actions
29
31
-**Security** — strict user ID whitelist; no one else can access your bot, even if they find it
30
32
-**Localization** — English and Russian UI (`BOT_LOCALE=en|ru`)
31
33
@@ -102,15 +104,7 @@ opencode-telegram config
102
104
|`/opencode_stop`| Stop the OpenCode server remotely |
103
105
|`/help`| Show available commands |
104
106
105
-
Any regular text message is sent as a prompt to the coding agent only when no blocking interaction is active.
106
-
107
-
### Interaction Rules
108
-
109
-
- Only one interactive flow can be active at a time (inline menus, permission request, question flow, rename)
110
-
- While an interaction is active, the bot accepts only relevant input for that flow and blocks unrelated actions
111
-
- Allowed utility commands remain available during active interactions: `/help`, `/status`, `/stop`
112
-
- Unknown slash commands return an explicit fallback message instead of being silently ignored
113
-
- Interaction flows do not expire automatically and wait until explicit completion (`answer`, `cancel`, `/stop`, or reset/cleanup)
107
+
Any regular text message is sent as a prompt to the coding agent only when no blocking interaction is active. Voice/audio messages are transcribed and then sent as prompts when STT is configured.
114
108
115
109
> `/opencode_start` and `/opencode_stop` are intended as emergency commands — for example, if you need to restart a stuck server while away from your computer. Under normal usage, start `opencode serve` yourself before launching the bot.
116
110
@@ -124,26 +118,54 @@ When installed via npm, the configuration wizard handles the initial setup. The
0 commit comments