Прямого постинга не существует · прямого постинга нет: публикуем в телеграм-канал, Дзен забирает оттуда сам
Постить в Дзен из Codex CLI
Отправить пост в Дзен программно нельзя: интерфейса публикации у площадки нет ни для нас, ни для кого-либо ещё. Работает штатное зеркало самого Дзена — Codex постит в ваш публичный телеграм-канал, а Дзен забирает запись оттуда сам. Для агента в терминале из этого следуют две неочевидные вещи: адреса «дзен» в вызове не существует, а правила текста задаёт галочка, которой скрипт не видит.
Что сказать Codex CLI, чтобы пост ушёл в Дзен
канала «Дзен» у меня нет — постим в телеграм-канал с ярлыком «дзен», это он зеркалится
Обычный smmly_post в телеграм-канал: ярлык — единственный адрес, который тут работает. Сказать это агенту заранее дешевле, чем разбирать последствия: в поле выбора по площадке у инструмента перечислены телеграм, ВК и MAX, и providers: ["dzen"] будет отказом ПО СХЕМЕ — ошибкой протокола, а не понятным текстом от нас. В интерактивной сессии Codex переспросит и поправится, в прогоне по расписанию шаг просто умрёт на этой строке.
первой строкой — короткий заголовок с точкой, до 140 знаков; поле title не заполняй, телеграм его не читает
Вторая половина просьбы выглядит странно ровно до первого прогона. У инструмента есть поле заголовка, и агент, которого попросили «сделать статью в Дзене», тянется именно к нему — а телеграм заголовков не различает вовсе, поле уедет в никуда. Заголовком в Дзене становится первое предложение поста: всё до первой точки, восклицательного или вопросительного знака. Длиннее 140 знаков — отказ с числом: «первая фраза 212 знаков — в Дзене заголовок обрежется на 140».
скриншот приложи, но весь текст держи в тысяче знаков — на этом канале зеркало
Здесь зеркало и кусается. В канал без галочки такой пост уходит спокойно: вложение первым сообщением, текст следом ответом. Дзен забирает ОДНО сообщение, второго для него не существует, поэтому на зеркальном канале мы отбиваем пост заранее — «с вложением в Дзен уйдёт только первые 1024 знака». Отказ приходит до записи и на весь вызов: если тем же замыслом вы шли ещё во ВКонтакте и MAX, не создастся ни одной строки, и повторять надо весь вызов с исправленным текстом.
если пост уже вышел — правь текст по groupId, а стирать из канала не пробуй
smmly_edit_post переписывает сообщение прямо в телеграме, и Дзен подтягивает правку сам — это единственное место, где правка агента доезжает до второй площадки без вас. Со сносом наоборот: флаг, которым пост стирается из самого канала, вычистит телеграм, а в Дзене статья останется висеть. В описании инструмента прямо сказано спросить человека прежде чем так делать, — а в прогоне по крону спрашивать некого, поэтому проще не давать агенту такой команды вовсе.
Что нужно, чтобы это заработало
Опишите сервер в config.toml
Codex ходит на удалённые MCP-серверы сам, а ключ берёт из переменной окружения — в конфиге лежит только её имя. Готовый блок и главная засада (переменная нужна той сессии, откуда запускается codex) — на странице клиента.
Подключение Codex CLI →Включите зеркало с обеих сторон — руками
Канал должен быть публичным: бот Дзена читает его как обычный подписчик. В кабинете на карточке телеграм-канала стоит галочка «Зеркалить в Дзен» — она и включает строгие правила, о которых вся эта страница. Вторая половина на стороне площадки: @zen_sync_bot администратором того же канала. Инструментов настройки канала у агента нет ни одного, так что попросить Codex «включи зеркало» не выйдет — ни в разговоре, ни из скрипта.
Как работает зеркало Дзена →Повесьте ярлык «дзен» и зашейте его в скрипт
Ярлык здесь несёт больше, чем адрес: он единственный носитель знания о том, что у канала строгие правила. Из ответа инструмента этого не узнать, а из слова «дзен» в шаблоне скрипта — видно глазами. Повесить ярлык можно в кабинете или просьбой к самому агенту.
Что доезжает в Дзен
- API публикации у Дзена
- его нет — ни у нас, ни у кого
- Как пост попадает в Дзен
- зеркалом из вашего публичного телеграм-канала
- Заголовок статьи
- первое предложение поста, до 140 знаков
- Пост с вложением
- в Дзен уедут только первые 1024 знака
- Удаление
- не зеркалится — снимать придётся в двух местах
- Считается ли каналом
- нет: это галочка на телеграм-канале
Канала «Дзен» в smmly_channels не бывает и не появится — агент постит в телеграм-канал, у которого включена галочка «Зеркалить в Дзен». Зато у такого канала строже валидатор: первая фраза длиннее 140 знаков и пост с вложением длиннее 1024 знаков отбиваются с объяснением, а не уезжают обрубленными.
Обо что спотыкается эта пара
Слово «дзен» в вызове ломается тремя разными способами
Агент, который сам собирает тело вызова, пробует поставить площадку туда, где ей место, — и получает три разных исхода вместо одного понятного. В поле выбора по площадке значение «dzen» не предусмотрено схемой: приходит ошибка протокола, которую Codex показывает как поломку инструмента, а не как «так нельзя». В поле текстов по площадкам такой ключ схему проходит и молча выбрасывается — вариант «для Дзена» не уедет никуда, а канал получит общий текст; если общего не передали, придёт отказ «пустой пост», и понять из него причину невозможно. В карте тумблеров тот же ключ валит весь замысел словами «среди выбранных каналов нет такой площадки». Вывод для шаблона скрипта простой: площадка в этом вызове ровно одна и называется телеграмом, а Дзен — свойство канала.
Заголовка нет как поля, и разметкой его не сделать
Поле заголовка у инструмента есть, телеграм его не читает — ни одна наша площадка не различает заголовок отдельно от текста. В Дзене заголовок при этом настоящий, и берётся он из первого предложения поста. Codex, который весь день имеет дело с разметкой, честно пробует выделить его тегами — не поможет: обе проверки зеркала считают видимый текст, теги в 140 знаков не входят и границей предложения не служат. Хуже другое: если в первой фразе вообще нет точки — а заголовок вида «Релиз 2.4.0: что поменялось» её и не предполагает, — первым предложением считается вся первая строка целиком, вместе с тем, что вы за ней написали. Просить надо буквально: короткая первая строка, точка в конце, дальше пустая строка и текст.
Правила канала живут в кабинете, а скрипт — в репозитории
Привычка неинтерактивного прогона: спросить каналы, посмотреть флаги, потом постить. Про зеркало эта проверка не скажет ничего — в ответе есть id, площадка, имя, ярлыки, выключен ли канал и не умер ли доступ, и нет ни одной настройки. Значит, единственный способ узнать, что канал стал строже, — получить отказ. И щёлкается галочка в кабинете, в один клик, без правки скрипта: вчера ежедневная сводка со скриншотом уходила, сегодня отбивается, а в репозитории ничего не менялось. Отсюда две привычки. Первая — ярлык, по которому видно, куда попал пост. Вторая — держать длинные посты со вложением подальше от зеркальных каналов, а не надеяться, что агент разберётся сам.
Второй пост из Дзена не убрать вообще ничем
Оборвавшийся вызов повторить безопасно: одинаковый пост в те же каналы в пределах пяти минут вернёт признак «уже создан». Окно короткое намеренно — оно закрывает ретрай после таймаута, а не осознанный повтор. Codex работает автономно и подолгу, из пяти минут выпадает легко, и тогда в телеграме появляется второе сообщение. На обычном канале это неприятность на минуту: снять из канала телеграм боту даёт. На зеркальном к этому моменту оба поста уже уехали в Дзен, и там останутся оба — удаление не зеркалится, а своего интерфейса публикации, через который можно было бы дотянуться, у площадки нет. Убирать придётся руками в студии. Лечится одним: свой ключ повтора на каждый пост, собранный из чего-то устойчивого — тега релиза, даты сводки, — он действует бессрочно.
Частые вопросы
Как в скрипте адресовать Дзен, если такого канала не существует?
Ярлыком телеграм-канала, на котором включено зеркало. Ставить площадку «dzen» в выбор по площадкам нельзя — там перечислены телеграм, ВК и MAX, и любое другое значение отбивается схемой ещё до нашего кода. Точечный выбор по id тоже возможен, но для скрипта хуже: переподключили канал — id сменился, а ярлык остался. Заодно ярлык остаётся единственным местом, где вообще написано, что этот канал зеркалится.
Можно отдать Дзену свой текст, а телеграму другой?
Нет, и попытка выйдет тихой. Варианты текста раскладываются по площадкам, а площадка у зеркального канала одна — телеграм; ключ «dzen» в такой карте ни с чем не совпадёт и просто пропадёт. Пост в Дзене — это ровно то, что ушло в телеграм-канал, других вариантов у него нет. Развести можно только соседей по вызову: телеграму с зеркалом свой текст, ВК и MAX — свой.
Может ли скрипт включить или выключить зеркало сам — хотя бы через ваш HTTP-API?
Нет ни через инструменты агента, ни через веб. Инструментов настройки канала в наборе нет вовсе: ключ даёт право вести каналы, а не менять их. Настройки канала правит только его владелец из кабинета, за своим входом, — ключ туда не пускает. Полезный побочный эффект: агент, который перебирает варианты после отказа, не сможет «решить проблему», выключив зеркало. Если сегодня нужен длинный пост со скриншотом — галочку снимаете вы, руками.
Стоит ли пускать Codex по расписанию на канал с зеркалом?
Стоит, если принять два правила. Первое: свой ключ повтора на каждый пост — здесь цена дубля выше, чем где-либо ещё, потому что из Дзена его не снять. Второе: ставить пост на несколько минут вперёд, а не публиковать мгновенно. Пока пост в очереди, он правится и снимается целиком, и в Дзен ещё ничего не уехало; после публикации остаётся только правка текста. И заведите отдельный канал под первые прогоны — с той же галочкой, иначе он не проверит ничего.
Пост отбился в прогоне без человека. Его можно вернуть в очередь?
Нельзя: отказ приходит ДО записи, поэтому возвращать нечего — ни строк, ни идентификатора замысла не создалось. Инструмент правки умеет вернуть в очередь только то, что упало при отправке, а это другой случай. Правильная реакция скрипта одна: прочитать причину — она приходит списком по каналам, с числом знаков, — исправить текст и позвать публикацию заново. И не звать её с тем же текстом: проверка детерминированная, второй раз будет ровно тот же отказ.
из Codex CLI в другие площадки
- Постить в Телеграм из Codex CLIпостим в канал сами, поле поста доезжает целиком
- Постить в ВК из Codex CLIпостим на стену сообщества сами, вместе с картинками
- Постить в MAX из Codex CLIпостим в канал сами, через нашего бота-администратора
- Постить в X из Codex CLIпостим в аккаунт сами, 280 знаков и до четырёх картинок
Постить в Дзен из других агентов
Конфиг подключения, пути к файлам и грабли самого клиента — на странице постинга из Codex CLI. Лимиты площадки, подключение канала и что умеет сам Дзен — на его посадочной. Общая инструкция по MCP — здесь, поля инструментов и коды ошибок — в технической справке.
Пусть посты ставит агент
7 дней полного доступа за 10 ₽ — подключите каналы, возьмите ключ и проверьте на своих постах.
Попробовать за 10 ₽