Привет, Хабр! Я Руслан, больше 15 лет работаю в IT. Начинал Java-разработчиком, потом несколько лет работал тимлидом, сейчас я техлид в крупном банке.
Долгое время разработка была для меня в основном способом заработать деньги. Первые несколько лет после университета ещё был интерес делать свои проекты и изучать вещи, которые не были нужны непосредственно в работе. А дальше, если что-то и читал, то это было нужно либо для рабочего проекта, либо для подготовки к собеседованию. При этом я не ощущал, что это занятие мне чуждо: мне нравилось быть в кругу айтишников, обсуждать процессы, да и технологии тоже. Но я не мог сказать, что разработка была моим хобби и мне хотелось писать код после работы и по выходным.
Всё изменилось за последний год. Сейчас помимо основной работы я занимаюсь несколькими проектами. В этой статье хочу рассказать про самый успешный свой open-source-проект opencode-telegram-bot. На момент написания статьи у него 1298 звезд на GitHub и 48 контрибьюторов.
https://github.com/grinev/opencode-telegram-bot
Расскажу, как развивал и продвигал проект, какие там были технические стороны и какой опыт я из этого извлёк.
О проекте
opencode-telegram-bot — клиент в Telegram для OpenCode, одного из самых популярных CLI-агентов. Бот запускается локально и доступен только вашему пользователю — его id жёстко прописан в конфигурации.
Поддерживается большинство возможностей OpenCode. В чате отображается всё, что делает агент: чтение и редактирование файлов, консольные команды, работа сабагентов. Даже диффы можно посмотреть с телефона — они приходят текстовым файлом, прикреплённым к сообщению. Есть распознавание речи и конвертация текста в речь.

Модель, агент, effort и контекст отображаются в виде reply keyboard — то есть всегда перед глазами.
Бот работает в одном потоке — концептуально как в терминале. Чтобы переключиться на другую сессию, нужно выйти из текущей.
С чего всё началось
В начале 2026 года, на новогодних праздниках, у меня было много свободного времени, и я оплатил подписку и поставил Claude Code. Не то чтобы я до этого не использовал ИИ для написания кода. Я использовал Cursor, сделал несколько небольших проектов, ещё у меня была активная подписка на Windsurf, в нём я тоже пробовал делать разные вещи. Но я писал на тех языках, которые знал, и смотрел код.
С Claude Code всё сразу пошло по-другому. Я начал делать сервис для анализа инвестиций и за пару дней собрал прототип, который показывал данные по портфелю и котировки. Потом экспериментировал с разными проектами и подумал, что было бы удобно управлять Claude Code с телефона.
Я посмотрел существующие решения — тогда толком ничего не было, OpenClaw ещё не стал популярным. Начал разбираться, как написать своё, посоветовался с Gemini, и он мне стал рассказывать, что надо парсить вывод TUI и что это довольно сложно. В общем, эту идею я отложил.
А потом решил попробовать другие CLI-агенты. На слуху тогда был OpenCode. Я установил его, и он мне понравился гораздо больше Claude Code: интерфейс богаче, есть всплывающие окна, часть вещей можно делать мышью. А ещё я узнал, что OpenCode можно запустить как сервер и управлять им через API. И подумал: вот тут-то не будет больших проблем написать Telegram-клиент. И я начал разработку.
Сначала хотел писать на привычном мне Kotlin, но, посоветовавшись с ИИ, выбрал TypeScript, потому что для него было удобное API. Да и код я всё равно совсем не смотрел. За пару дней у меня появился рабочий прототип: я мог запустить бота, отправить сообщение и получить ответ — это впечатляло.
Когда я продолжил добавлять фичи, были некоторые сложности: не всё работало с первого раза, приходилось отлаживать в несколько итераций. Я запускал бота руками, описывал агенту поведение, а он смотрел логи.
Релиз в open-source
Дорабатывал бота ещё где-то три недели. Добавил базовые функции: переключение между сессиями и проектами, выбор модели, агента и уровень рассуждений, отображение работы основных инструментов. Ботом вполне можно было пользоваться, и я сам уже начал использовать его вне дома, где нет доступа к OpenCode.
Я подумал, что бот уже вполне рабочий, и решил выложить его в open-source. Посмотрел конкурентов: было два похожих бота, примерно по 20 звёзд на GitHub у каждого. Выглядело так, будто авторы что-то сделали и выложили, но регулярно их не поддерживали. Да и по набору фич мне казалось, что мой бот уже удобнее.
ИИ помог подготовить репозиторий к выкладке. Я построил с агентом план из множества шагов и шёл по нему последовательно. Что нужно было сделать:
Настроить
.gitignore, чтобы в репозиторий не попадали лишние файлы.Добавить
LICENSEи прописать данные об авторе вpackage.json.Добавить
CONTRIBUTING.mdс описанием процесса разработки, работы с git, формата задач и пулреквестов.Подготовить пакет к установке через npm, в приватном репозитории был настроен только локальный запуск.
Настроить CI/CD: линтер, сборку, тесты. Удивительно, как легко это делается с ИИ-агентами: похоже на какую-то магию, когда агент с первого раза пишет рабочий пайплайн.
Убрать из репозитория отладочный код и всё лишнее.
Проверить совместимость со всеми ОС. Я разрабатывал на Windows и работу на других системах не проверял, хотя она была заложена в коде изначально.
Перевести документацию на английский и убрать из кода русскоязычные комментарии. Агенты написали их очень много, потому что я общаюсь с ними на русском, а инструкций насчёт комментариев не было.
Добавить подробную инструкцию для пользователя: описание, обзор возможностей, установка.
Добавить локализацию. Хорошо, что я сделал это на раннем этапе: даже тогда это заняло довольно много времени. Сейчас в проекте 688 локализованных строк и поддерживается 12 языков.
Версию 0.1.0 я опубликовал одним коммитом в новый публичный репозиторий. Исходный репозиторий решил не открывать, чтобы не выставлять напоказ хаотичную историю коммитов и разный мусор: изначально проект не задумывался для open-source.
Ещё перед релизом я настроил публикацию пакета в npm, чтобы бота можно было установить одной командой: npx @grinev/opencode-telegram-bot@latest. С агентом это получилось сделать буквально за час. Это тогда очень поражало, как быстро с ИИ можно сделать вещи, которые без него заняли бы много времени. А при первом запуске мастер настройки спрашивает токен бота и id пользователя в Telegram, чтобы не пришлось руками править файл конфигурации.
Маркетинг
Сразу после релиза я попросил друзей и знакомых поставить проекту звёзды. На старте у меня было 8 звёзд. А уже в первые дни звёзды стали ставить незнакомые мне люди. Тема мобильных клиентов для разных ИИ-агентов тогда была на пике интереса, и люди находили мой проект на GitHub. Темп был небольшой: 2–3 звезды в неделю.
Через пару недель я задался вопросом, как увеличить приток новых пользователей в репозиторий. Пошёл с этим к своему ИИ-агенту, и он посоветовал две вещи: написать посты на Reddit и на Hacker News.
Начал я с Reddit. Честно скажу, просто попросил агента написать мне пост. Пост прошёл несколько кругов правок по моим замечаниям и через полчаса уже был опубликован. Выбрал сабреддит r/opencodeCLI как самый релевантный. Больших надежд не строил, но пост неожиданно хорошо приняли.

У поста +65 рейтинга и 31 тысяча просмотров. Он дал хороший прирост звёзд: в первый день +30 новых пользователей, а через неделю у проекта было уже больше 100 звёзд. Это позволило мне обогнать конкурентов и дало мотивацию развивать проект дальше.
Я написал на Reddit ещё несколько постов. Они собирали по 10–15 тысяч просмотров, но такого эффекта по звёздам уже не давали.
На Hacker News я написал пост, но он не получил ни одной оценки. Писал туда и про другой свой проект — тоже нулевой результат. Вероятно, я не понимаю, как работает эта платформа, при том что на Reddit посты без проблем набирают много просмотров.
После всплеска от первого поста на Reddit темп снова упал до нескольких звёзд в неделю. Люди продолжали находить проект через поиск на GitHub, а вот Google его не показывал. Нужно было время, чтобы проект появился в выдаче Google, и ссылка из поста на Reddit с десятками тысяч просмотров не дала мгновенного эффекта. Теперь я вижу, что правильнее было сразу создать публичный репозиторий, делать проект в нём сначала для себя, а продвижением заниматься, когда он будет приведён в нормальный вид. К тому времени Google его уже проиндексирует.
Спустя 5–6 недель проект появился в Google на первых строчках по запросам «OpenCode Telegram», «OpenCode Telegram Client» и «OpenCode Telegram Bot». С тех пор на страницу проекта стабильно приходит около 100 просмотров в сутки, что даёт где-то 3–5 звёзд в день.

Если не считать нескольких постов на Reddit весной и летом, я больше ничего не делал для продвижения проекта. Стабильный трафик дают Google и GitHub.


Процесс разработки
Как я уже говорил, начинал я в Claude Code. Основной моделью тогда был Sonnet 4.5. Opus 4.5 уже вышел, но я им не пользовался: он очень быстро съедал лимиты подписки за 20 долларов. Я сразу начал работать в режиме планирования, и это позволило лучше контролировать результат. Очень понравилось, как Claude в режиме плана задавал вопросы с вариантами ответа.
Но вообще качество работы Sonnet оставляло желать лучшего: далеко не всё работало с первого раза, и я тратил много времени на отладку. Начал искать варианты, решил попробовать подписку ChatGPT и узнал, что её можно подключить в OpenCode. Незадолго до этого вышла модель GPT-5.3-Codex, и она показывала гораздо лучшие результаты, чем Sonnet. К тому же модели OpenAI прилежнее относились к написанию тестов. Никаких жёстких порогов покрытия я не вводил, в инструкции просто было сказано писать тесты, но Sonnet её часто игнорировал.
В общем, с переходом на модели OpenAI разница стала заметна сразу. Особенно когда вышла GPT-5.4: она была ещё умнее и хорошо справлялась с задачами. Мне уже не приходилось проводить множество итераций отладки, прежде чем фича заработает как нужно. Основную часть фич весной я сделал на GPT-5.4, и разработка шла очень бодро.
Режимом планирования я пользовался и в OpenCode, модель там тоже задавала вопросы с вариантами ответа. Но OpenCode в то время выводил план прямо в чат и при правках заново перепечатывал его целиком. Тогда я начал настраивать свой воркфлоу для разработки. Завёл собственных агентов (агент в OpenCode — это, по сути, режим работы со своим системным промптом) и переключался между ними во время реализации:
Ask — для код-ревью и моих вопросов по коду
Spec — для планирования работ, план пишется в отдельный файл в нужном мне формате
Code — соответственно, реализация, с дополнительными инструкциями, которые улучшают качество кода
Где-то в начале лета я открыл для себя Playwright MCP и осознал, что агент может автономно тестировать приложения в браузере. Сначала использовал его в других проектах, а потом понял, что это применимо и к Telegram-боту: можно тестировать через веб-версию Telegram. С тех пор моя продуктивность сильно выросла: раньше я всё прокликивал сам, а теперь могу доверить это агенту.
Я построил пайплайн: агент пишет план и задаёт мне уточняющие вопросы, план ревьюит сабагент, дальше пишется код, и его тоже ревьюит сабагент. После этого запускается сабагент-тестировщик, который прогоняет все сценарии. Такой подход позволил свободнее делать разные рефакторинги, на которые я раньше не отваживался.
Потом я ещё улучшил пайплайн. Теперь мы с агентом проводим груминг задачи и пишем спецификацию, по которой он уже может сам разрабатывать и тестировать, моё участие не требуется. А ещё автономно работает агент-менеджер: он запускает агентов-разработчиков в отдельных сессиях, следит за их работой и держит со мной связь в Telegram.
Контрибьюторы
После того как я выложил проект в open-source, первые контрибьюторы появились быстро. Уже через 4 дня я увидел первый пулреквест. В нём была поддержка прокси для Telegram. У проекта было очень мало звёзд, и я, честно говоря, сразу подумал, что контрибьютор хочет внедрить какой-то вредоносный код. Проверил правки агентом, запустил и убедился, что это не так.
Вообще контрибьюторы действительно добавляют новые фичи, хотя часто присылают очень небрежные правки. Я всегда проверяю код с агентами, а ещё сам смотрю, как работает фича. Бывает, присылают крупные доработки, и их часто приходится отклонять: либо я не собирался их делать, либо хотел сделать по-другому. А вот фиксы и небольшие правки принимаю, обычно после 1–2 кругов доработки.
Были релизы, целиком состоящие из пулреквестов от контрибьюторов.
Развитие продукта
С самого начала разработки у меня был список того, что можно улучшить в коде, и в каждый релиз я старался брать что-то из него. А ещё стремился повышать стабильность, находить и исправлять ошибки. Но пользователям это не так важно: они всё время хотят как можно больше новых фич.
На некоторых функциях пользователи прямо настаивали. Как только я выложил бота, меня сразу стали просить добавить распознавание речи и поддержку картинок, присылали и пулреквесты с этим.
Потом очень часто стали просить добавить поддержку топиков в Telegram, чтобы в каждом топике шла своя сессия. Но бот задумывался для работы в одном окне, как в терминале, и вся архитектура заточена под это. Я регулярно отказываю в таких просьбах. Люди присылают и пулреквесты — я их, кстати, смотрю и вижу много ошибок. Задача сложнее, чем кажется. Планирую это сделать, когда смогу выделить время, чтобы аккуратно всё переписать и протестировать.
Не так давно начали просить добавить поддержку новой версии OpenCode 2.0. Сам я ей тогда ещё не пользовался, узнал о ней благодаря моим пользователям и добавил поддержку вскоре после выхода.
Планов на самом деле ещё много, но я пишу в размеренном темпе, в свободное время, при том что у меня есть и другие проекты. Обычно раз в неделю выпускаю релиз с несколькими фичами, а посреди недели иногда ещё хотфиксы.
Как я использую бота
Сначала я программировал с него, но потом понял, что это перебор: от компьютера надо отдыхать. Сейчас использую бота как ассистента в Telegram, чтобы быстро что-то спросить. Бывает, что запускаю с него задачи на разработку, которые не требуют постоянного контроля.
На домашнем компьютере бот запущен постоянно, и если мне что-то нужно, я могу получить к нему доступ через Telegram. Работа идёт в одном потоке, но есть команда /detach, которая позволяет отключиться от сессии в процессе выполнения и начать другую, а потом в чат приходит уведомление.
Не так давно я три часа был в дороге. Мобильный интернет был всю дорогу, и я начал делать задачи, хотя изначально собирался почитать книгу. Все эти три часа прошли незаметно, я успел сделать несколько, и никаких проблем с этим не было.
Что я понял
ИИ даёт возможность делать open-source-проекты в свободное время. С агентами рабочий прототип собирается за считаные дни, а регулярные релизы становятся реальными даже параллельно с основной работой.
Надо просто делать и делиться, необязательно делать идеально. Достаточно выложить проект с базовыми функциями — многое из того, что действительно нужно, подскажут пользователи.
Важны каналы распространения. Нужна установка одной командой, например через npm, и понятная инструкция.
Если проектом кто-то пользуется, это даёт мотивацию делать его дальше. К тому же пользователи часто замечают то, что автор пропустил. Например, выход новой версии инструмента, под который сделан проект.
Проект нужно постоянно поддерживать. Одного релиза мало. Люди пользуются проектом, когда видят, что он живой и регулярно обновляется.
Важно делать то, чем пользуешься сам. Собственное использование держит проект в реальности: сценарии со временем меняются, но ты продолжаешь им пользоваться и видишь, что работает, а что нет.
Маркетинг важен, и open-source даёт опыт продвижения своего продукта. Один удачный пост в профильном сообществе может дать больше, чем недели органического роста, но срабатывает не каждая площадка. Поисковики находят проект не сразу, поэтому репозиторий лучше делать публичным с самого начала, а не перед продвижением.
А еще, разработка open-source проектов вдохновила меня вести блог в Telegram, где рассказываю про этот и другие проекты и в целом про разработку с ИИ: https://t.me/greenrus_ai
Комментарии (5)

BelerafonL
30.10.2026 09:40А чем это принципиально отличается от гермеса? Ну я прочитал историю разработки, да, но вот на текущий момент?

greenrus Автор
30.10.2026 09:40Это инструмент который работает только с Telegram в отличие от Hermes, где есть много разных мессенджеров. И возможностей конечно поменьше. Зато более богатый UI в плане настроек работы с OpenCode. То есть это стоит рассматривать не как альтернативу Hermes, а как OpenCode в Telegram, практически все возможности, которые есть в OpenCode будут доступны из Telegram с этим ботом

VladSmir
30.10.2026 09:40Помню появилась у меня тоже такая мысль, что было бы удобно управлять агентом на ПК с телефона, когда например не дома и нет возможности пустить агента дальше или дать задание, а в простой его пускать не хочется или нет возможности. Спросил своего агента, есть ли уже готовое решение или придется писать с нуля. И он выдал ваш проект. Пользуюсь по сей день, очень удобно, спасибо!

greenrus Автор
30.10.2026 09:40А когда я спрашивал в начале января, какие есть решения, это были в основном проекты с парой десятков звезд на гитхаб. OpenClaw хайпанул чуть позже и таких проектов стало намного больше
NickAlister
Я этим ботом тоже пользуюсь, удобно иногда проверить логи через агента без ssh.