Площадка работает · постим в канал сами, поле поста доезжает целиком
Постить в Телеграм из Cursor
Cursor собирает пост из того, что у него под рукой — коммитов, CHANGELOG.md, README, — и отправляет в канал, не выходя из редактора. Телеграм из наших площадок берёт больше всех: 4096 знаков, разметку, кнопки-ссылки, второе сообщение и правку уже опубликованного. Взамен он же строже всех к тексту, приехавшему из файлов с кодом.
Что сказать Cursor, чтобы пост ушёл в Телеграм
собери из CHANGELOG.md пост про версию 1.4.0 и запости в канал с ярлыком «релизы», ссылку на тег повесь кнопкой
Cursor читает файл сам — это его домашняя работа, — и зовёт smmly_post с текстом и полем buttons. Кнопки-ссылки вешает только телеграм: до восьми, по одной в ряд. Если вы попросите ту же кнопку для ВК или MAX, пост туда уйдёт без неё и молча. Одна засада: кнопки несовместимы с альбомом из двух и более вложений — на такой пост придёт отказ ещё до очереди.
возьми описание из README, разметку сделай телеграмную: код в моно, угловые скобки экранируй
Просьба выглядит занудной, но экономит вечер. Markdown телеграм не понимает: `**жирный**` приедет в канал звёздочками, а `##` — решётками. Разметка у нас одна — HTML, поле format: "html", теги b, i, code, pre, blockquote, ссылка. И главное: одиночный «<» в тексте телеграм считает началом тега, поэтому дженерик из кода валит публикацию целиком. Мы ловим это при постановке в очередь и отвечаем «одиночный «<» в тексте — экранируйте как <», так что до канала брак не доедет — но и пост не уйдёт, пока агент не перепишет.
приложи скриншот из docs/img/release.png и запости с полным описанием релиза
Файл в репозитории публичного адреса не имеет, поэтому Cursor кладёт его через smmly_upload_media и передаёт ответ в поле media как есть. Дальше работает порог подписи: до 1024 знаков текст едет подписью к картинке, длиннее — картинка уходит первой, а текст следом отдельным сообщением ответом на неё. Пост не отбивается и ничего не теряется, но в канале это два сообщения, а не одно; кнопки в таком случае уезжают на то, где текст.
в последнем посте версия не та, поправь на 1.4.1
smmly_posts, чтобы найти groupId (между сессиями агент его не помнит), потом smmly_edit_post — и телеграм переписывает сообщение прямо в канале. Это работает двое суток, дальше площадка отказывает. Запомните, что так умеет ТОЛЬКО телеграм: та же фраза по строке ВК, MAX или X вернёт отказ, потому что править опубликованное там нечем.
Что нужно, чтобы это заработало
Подключите Cursor к Smmly
Пять строк в mcp.json и перезапуск — обёрток и лишних программ не нужно. Где лежит файл, чем глобальный отличается от проектного и почему envFile здесь не работает, написано на странице клиента.
Подключение Cursor →Заведите канал
Наш бот администратором канала с правом «Публикация сообщений» — или свой, заведённый у @BotFather, если в списке администраторов должно стоять ваше имя. Второй путь разработчику ближе, но помните: ключ бота становится ещё одним секретом, и место ему в кабинете, а не в репозитории.
Как подключить Телеграм →Повесьте на канал ярлык
Одно слово — «релизы», «блог», «тестовый». Дальше вы говорите «запости в релизы», и агенту не нужно помнить ни id, ни @имя. Ярлык ставится в кабинете, но и сам Cursor умеет: «повесь на телеграм-канал ярлык релизы».
Что доезжает в Телеграм
- Длина поста
- до 4096 знаков
- Пост с вложением
- подпись 1024 знака; длиннее — разъедется на два сообщения
- Вложения
- до 10 картинок, видео или файлов альбомом
- Кнопки-ссылки
- до 8, по одной в ряд — из всех наших площадок только здесь
- Второе сообщение
- уходит ответом на пост
- Правка и снос в канале
- есть, пока сообщению меньше двух суток
Единственная площадка, до которой доезжает всё поле инструмента целиком: buttons, firstComment, format: "html". smmly_edit_post переписывает уже опубликованное прямо в канале, smmly_cancel_post с fromChannel: true стирает его оттуда — и то и другое телеграм даёт делать двое суток, дальше отказ.
Обо что спотыкается эта пара
Угловая скобка из кода валит весь пост
Самая частая поломка этой пары. Телеграм разбирает HTML, и одиночный «<» для него — начало тега: `Array<string>`, `a < b`, `<div>` в примере вёрстки. Мы проверяем разметку при постановке в очередь и отвечаем понятной строкой, но пост при этом не создаётся — ни в телеграм, ни в остальные каналы того же замысла. Лечится одной фразой в просьбе: «код оберни в code, скобки экранируй». Если код в посте не нужен вовсе, надёжнее попросить format: "plain" — тогда телеграм текст не разбирает и любые скобки проезжают как есть.
Markdown из файла телеграм показывает буквально
Cursor тащит текст оттуда, где markdown — норма: README, CHANGELOG, описание PR. В канал это уедет со звёздочками, решётками и палочками таблицы. Наша разметка одна и она HTML, конвертера из markdown у нас нет. Просите прямо: «перепиши в телеграмный HTML» — или отдавайте plain и живите без оформления. Отдельно про ссылки: в markdown они квадратно-круглые, телеграм такой формы не знает, ссылка должна быть тегом a либо просто адресом в тексте.
Скриншот плюс длинный текст — это два сообщения
Подпись к вложению у телеграма 1024 знака против 4096 у обычного текста. Релизный пост со скриншотом интерфейса почти всегда длиннее, поэтому уходит альбом без подписи, а следом текст ответом на него. В ленте это выглядит нормально, но знать стоит: закрепится и попадёт в ссылку первое сообщение — картинка, а не текст. Если пост важно сохранить одним куском, просите агента уложиться в тысячу знаков, а подробности вынести во второе сообщение полем firstComment — оно тоже умеет только телеграм.
Правка есть — двое суток и только здесь
Cursor привыкает, что опечатку можно поправить: в телеграме smmly_edit_post переписывает сообщение прямо в канале, а smmly_cancel_post с явным флагом сносит его оттуда. Обе возможности живут двое суток, дальше площадка отвечает отказом. И обе есть только у телеграма: в ВК и MAX опубликованное не правится вовсе, в X правки не существует у самого API. Если один и тот же пост идёт в несколько сетей, ответ на правку придёт построчный — телеграм переписал, остальные отказали, и это не ошибка, а разные площадки.
Частые вопросы
Cursor сам сходит в git за текстом поста?
Да, чтение репозитория — его обычная работа, наш сервер тут ни при чём: он получает уже готовый текст. Из этого следует привычка, которой нет у агентов вне редактора, — вычитывать. В пост легко утекает внутреннее: имя ветки, путь до файла, кусок приватного кода, фамилия из строки коммита. Просите показать текст до отправки или ставьте пост в очередь на пять минут вперёд и смотрите его в календаре.
Как отправить в канал кусок кода, чтобы он не развалился?
Обернуть в тег code (строчка) или pre (несколько строк) и экранировать «<», «>» и «&». Телеграм оба тега показывает, моноширинным и с кнопкой копирования, и это единственная наша площадка, которая так умеет: ВК покажет тот же код обычным текстом, а MAX pre не знает и снимет его, оставив содержимое. Так что «один пост в три сети» с кодом внутри честно выглядит только в телеграме.
Пост ушёл, а ссылки на него нет — это ошибка?
Нет, у закрытого канала ссылки на пост не бывает: адрес вида t.me/имя_канала собирается из публичного @имени, а у приватного его нет. Состояние «опубликован» при этом честное — сообщение в канале есть. Если ссылка нужна для отчёта в PR, постите в публичный канал.
Агент повторил вызов после таймаута — в канале будет два поста?
В пределах пяти минут нет: точно такая же просьба в те же каналы вернёт признак «уже создан» и тот же идентификатор замысла. Через час защита уже не работает — это будет второй пост, зато в телеграме его хотя бы можно снести из канала той же парой фраз. Правильная привычка та же, что и с долгой сборкой: спросить «что с последним постом», а не повторять вслепую.
Можно одной фразой отправить релиз в телеграм и в остальные сети?
Да, через общий ярлык. Но помните про проверку: она идёт по всем выбранным площадкам ДО записи, и если хотя бы одна отказала, не создаётся ничего — ни одна сеть поста не получит. Именно поэтому длинный релизный текст с кодом чаще всего «не уходит никуда»: телеграм принял бы, а MAX отбил по длине. Разводите тексты — у инструмента есть поле textByProvider, и Cursor умеет отдать разные варианты одним вызовом.
из Cursor в другие площадки
- Постить в ВК из Cursorпостим на стену сообщества сами, вместе с картинками
- Постить в MAX из Cursorпостим в канал сами, через нашего бота-администратора
- Постить в X из Cursorпостим в аккаунт сами, 280 знаков и до четырёх картинок
- Постить в Дзен из Cursorпрямого постинга нет: публикуем в телеграм-канал, Дзен забирает оттуда сам
Постить в Телеграм из других агентов
Конфиг подключения, пути к файлам и грабли самого клиента — на странице постинга из Cursor. Лимиты площадки, подключение канала и что умеет сам Телеграм — на его посадочной. Общая инструкция по MCP — здесь, поля инструментов и коды ошибок — в технической справке.
Пусть посты ставит агент
7 дней полного доступа за 10 ₽ — подключите каналы, возьмите ключ и проверьте на своих постах.
Попробовать за 10 ₽