====== OpenCode a Telegram přes telegramCoder ====== [[https://github.com/Tommertom/opencode-telegram|telegramCoder / opencode-telegram]] je self-hosted Telegram bot, který zpřístupní terminál a podle README i přímou integraci s [[ai:platformy:opencode:uvod|OpenCode]]. Hodí se ve chvíli, kdy chci z mobilu nebo vzdáleně navázat na běžící vývojové prostředí bez přímého přístupu k lokálnímu terminálu. Ve srovnání s [[https://wiki.petrnosek.cz/software/vyvoj/claude-code|článkem ke Claude Code]] tady nejde o plugin připojený do běžící session agenta, ale o samostatnou Node.js aplikaci, která běží na vlastním stroji a Telegram používá jako dálkové rozhraní. ===== Co projekt umí ===== README projektu uvádí hlavně tyto vlastnosti: * interaktivní terminál přes Telegram * integraci s AI CLI nástroji jako GitHub Copilot, Claude, Cursor a OpenCode * upload a download souborů * self-hosted provoz pod vlastní kontrolou * oddělené sessiony pro jednotlivé uživatele * běh nad vlastním strojem bez dalšího cloudového prostředníka kromě samotného Telegramu ===== Jak funguje propojení s OpenCode ===== Projekt má podle README vestavěnou integraci pro OpenCode a umí si OpenCode server sám spustit, pokud ještě neběží. Jako předpoklad README uvádí globální instalaci OpenCode: npm install -g opencode-ai Z pohledu ovládání přes Telegram je základní flow jednoduché: - v Telegramu poslat ''/start'' nebo ''/help'' - příkazem ''/opencode [title]'' založit novou OpenCode session - další zprávy posílat do aktivní session; README v ukázce používá ''/prompt'' - podle potřeby session přejmenovat, ukončit nebo vrátit poslední změnu README pro OpenCode část zmiňuje tyto příkazy: * ''/opencode [title]'' – založení nové session * ''/rename [title]'' – přejmenování aktuální session * ''/endsession'' – ukončení session * ''/esc'' – přerušení běžící AI operace * ''/undo'' a ''/redo'' – krok zpět a znovu * ''/projects'' – seznam projektů * ''/sessions'' – seznam posledních session Po spuštění ''/opencode'' se podle README zobrazí i pomocná klávesnice s rychlými tlačítky pro ''ESC'' a ''TAB''. ''TAB'' má přepínat agenty ''build ↔ plan''. ===== Instalace ===== README nabízí tři základní způsoby spuštění. ==== Rychlé spuštění přes npx ==== npx @tommertom/telegramcoder@latest Při prvním spuštění projekt automaticky vytvoří soubor ''.env'', vypíše co je potřeba doplnit a ukončí se. Po úpravě konfigurace se stejný příkaz spustí znovu. ==== Globální instalace ==== npm install -g @tommertom/telegramcoder telegramcoder ==== Docker helper ==== Projekt umí vygenerovat ''Dockerfile'' a ''docker-compose.yml'' přímo do aktuální složky: npx @tommertom/telegramcoder@latest --docker Podle README tento režim jen připraví dockerové soubory a sám bota nespustí. ===== Konfigurace ===== Základní konfigurace je v ''.env''. README jako povinné minimum uvádí token bota a seznam povolených uživatelů: TELEGRAM_BOT_TOKENS=1234567890:ABCdefGHIjklMNOpqrsTUVwxyz ALLOWED_USER_IDS=123456789 ADMIN_USER_ID=123456789 MESSAGE_DELETE_TIMEOUT=10000 Význam proměnných podle README: * ''TELEGRAM_BOT_TOKENS'' – token nebo více tokenů oddělených čárkou * ''ALLOWED_USER_IDS'' – allowlist Telegram user ID, které smí bota používat * ''ADMIN_USER_ID'' – účet pro notifikace o nepovoleném přístupu * ''MESSAGE_DELETE_TIMEOUT'' – jak dlouho mají zůstávat potvrzovací zprávy README doporučuje získat vlastní Telegram user ID tak, že se bot nejprve spustí, uživatel mu pošle zprávu a bot vrátí ID, které se potom doplní do ''.env''. ===== Soubory a práce na dálku ===== Projekt podle README umí přijímat soubory přímo v Telegramu. Přijaté soubory ukládá do ''/tmp/telegramCoder/'' a odpoví plnou cestou k uloženému souboru. README zmiňuje podporu běžných typů příloh včetně dokumentů, fotek, videí a audia. Prakticky to znamená, že jde použít jako lehkou vzdálenou vstupní bránu pro soubory, které pak mají být zpracované v lokální session. ===== Požadavky a praktické limity ===== README uvádí tyto základní požadavky: * Linux nebo macOS * Windows přes WSL nebo Docker * Node.js 18 a vyšší * přibližně 200 MB místa pro závislosti Pro provoz je důležité i to, že sessiony jsou persistentní jen po dobu běhu bota. Po restartu procesu se podle FAQ resetují. ===== Bezpečnostní model ===== Silná stránka projektu je v tom, že běží self-hosted a terminál i soubory zůstávají na vlastním stroji. Zároveň to ale znamená, že Telegram bot představuje vzdálený vstup do shellu a je potřeba hlídat hlavně: * správně nastavený ''ALLOWED_USER_IDS'' * ochranu bot tokenu z ''@BotFather'' * rozumné umístění hostitele, na kterém bot běží * vědomí, že bot zprostředkovává plný terminál, ne jen omezenou sadu bezpečných akcí ===== Kdy to dává smysl ===== Tahle varianta dává smysl hlavně tehdy, když chci OpenCode ovládat z telefonu nebo zjednodušit vzdálený přístup k vlastnímu vývojovému prostředí přes Telegram. Oproti pluginovému napojení jednoho konkrétního agenta je to obecnější vrstva nad terminálem, která umí obsloužit i jiné CLI nástroje. ===== Zdroje ===== * [[https://github.com/Tommertom/opencode-telegram|Tommertom/opencode-telegram]] * [[https://wiki.petrnosek.cz/software/vyvoj/claude-code|Článek ke Claude Code]]