NanoSkill
Добавить навык

Навык агента для автоматической публикации в Икс (Твиттер)

отJimLiu20Kзвезды GitHubGitHub

Автоматизируйте публикацию текста, изображений, видео и длинных статей в Икс (Твиттер) с использованием реального браузера Хром. Поддерживает различные режимы, включая плагин Codex Хром, Computer Use и скрипт CDP. Начните эффективно делиться контентом.

твиттерПроверка безопасности пройдена
Превью результата

Полное демо

Увидеть пост в Твиттере об инструменте продуктивности на основе ИИ с соответствующими изображениями и хэштегами, подготовленный к публикации.

Начало работы

Запустите первую задачу

  1. a simple demonstration of the first step in using Post to X
    01

    Шаг 1:Установка

    Добавьте навык в своего агента.

  2. a simple demonstration of the second step in using Post to X
    02

    Шаг 2:Поделитесь идеей поста

    Предоставьте свои идеи для твита, изображения, видео или статьи и попросите навык подготовить их к публикации на Икс.

  3. a simple demonstration of the first step in using Post to X
    03

    Шаг 3:Проверка перед публикацией

    Проверьте созданный пост и подтвердите перед публикацией.

Команда установки

$ npx skills add https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-post-to-x

Описание

Навык «Публикация в Икс (Твиттер)» предоставляет надёжное решение для автоматизации публикации контента на Икс, позволяя пользователям эффективно делиться текстом, изображениями, видео и длинными статьями. Этот инструмент предназначен для всех, кто хочет оптимизировать своё присутствие в социальных сетях, от обычных пользователей до создателей контента и маркетологов. Он интегрируется с реальными экземплярами браузера Хром, обеспечивая совместимость с платформой Икс и предлагая гибкие возможности управления.

Этот навык выделяется поддержкой нескольких режимов управления браузером, включая плагин Codex Хром, Хром Computer Use и режим скрипта CDP. Такая адаптивность позволяет ему эффективно работать в различных пользовательских настройках и предпочтениях. Ключевая особенность — возможность публиковать подробные Икс-статьи непосредственно из файлов Markdown, выполняя сложные задачи, такие как загрузка обложек и встраивание изображений контента, что неоценимо для публикации глубокого контента.

Пользователи могут использовать этот навык в различных сценариях, таких как автоматизация ежедневных обновлений в социальных сетях, публикация подробных блог-постов или отчётов в виде Икс-статей, или быстрое цитирование и комментирование других твитов. Он включает полезные предполётные проверки, чтобы убедиться, что среда настроена правильно, и предоставляет четкие инструкции по устранению неполадок, делая его доступным даже для новичков в автоматизации.

Ключевые функции

Почему это мощно

  • Публикация разнообразного контента

    Публикуйте текст, изображения и видео в X (Twitter) легко, обрабатывая различные типы медиа для разнообразных потребностей в обмене контентом.

  • Публикация длинных статей

    Публикуйте статьи X из файлов Markdown, включая обложки и встроенные изображения контента, идеально для подробных постов.

  • Гибкие режимы управления браузером

    Поддерживает плагин Codex Chrome, режим использования Chrome Computer и режим CDP-скрипта, адаптируясь к различным средам выполнения и предпочтениям пользователей.

  • Функция цитирования твитов

    Легко цитируйте существующие твиты со своими комментариями, способствуя вовлеченности и обсуждению на платформе.

  • Предварительные проверки окружения

    Включает скрипт для проверки необходимых предварительных условий, таких как Chrome, Bun и разрешения доступности, предоставляя руководство по решению любых проблем.

Сценарии

Когда использовать

  • Автоматизация обновлений в социальных сетях

    Создатели контента и маркетологи могут планировать и автоматизировать свои регулярные посты, включая текст, изображения и видео, чтобы поддерживать активное присутствие в X без ручного вмешательства.

  • Публикация подробных статей X

    Журналисты, блогеры и аналитики могут публиковать длинные статьи напрямую из Markdown, с богатым медиа, чтобы делиться подробным контентом со своей аудиторией в X.

  • Эффективное цитирование и комментирование

    Пользователи могут быстро цитировать твиты и добавлять свои комментарии, упрощая процесс взаимодействия с актуальными темами или контентом других пользователей в X.

SKILL.md

Публикация в X (Twitter)

Публикует текст, изображения, видео и длинные статьи в X через реальный браузер Chrome.

В Codex не следует путать следующие варианты работы с браузером:

  • Плагин Codex Chrome / @chrome / Chrome Extension: используйте встроенный навык chrome:Chrome и его браузерный клиент Node REPL. Это необходимо, когда пользователь говорит "плагин Codex Chrome", "Codex 自带的 Chrome 插件", @chrome или подобное.
  • Chrome Computer Use: используйте mcp__computer_use__.* для управления видимым интерфейсом Google Chrome, только когда пользователь запрашивает Computer Use или не указано предпочтение плагина Chrome, и доступен Computer Use.
  • Режим CDP-скриптов: используйте только как запасной вариант, когда выбранный режим недоступен или пользователь явно запрашивает режим CDP/скриптов.

Каталог скриптов

Важно: Все скрипты находятся в подкаталоге scripts/ этого навыка.

Инструкции по выполнению для агента:

  1. Определите путь к файлу SKILL.md как {baseDir}
  2. Путь к скрипту = {baseDir}/scripts/<имя-скрипта>.ts
  3. Замените все {baseDir} в этом документе на фактический путь
  4. Определите среду выполнения ${BUN_X}: если bun установлен → bun; если доступен npxnpx -y bun; иначе предложите установить bun

Справочник скриптов:

СкриптНазначение
scripts/x-browser.tsОбычные посты (текст + изображения), аварийный CDP
scripts/x-video.tsВидеопосты (текст + видео), аварийный CDP
scripts/x-quote.tsЦитирование твита с комментарием, аварийный CDP
scripts/x-article.tsПубликация длинных статей (Markdown), аварийный CDP
scripts/md-to-html.tsПреобразование Markdown → HTML
scripts/copy-to-clipboard.tsКопирование содержимого в буфер обмена
scripts/paste-from-clipboard.tsОтправка реального нажатия клавиш вставки
scripts/check-paste-permissions.tsПроверка окружения и разрешений

Выбор режима выполнения (обязательно)

Выберите ровно один режим перед взаимодействием с X:

  1. Если пользователь явно запрашивает плагин Codex Chrome, @chrome, Chrome extension или "Codex 自带的 Chrome 插件", используйте Режим плагина Codex Chrome. Не вызывайте сначала Computer Use.
  2. Если пользователь явно запрашивает Chrome Computer Use, используйте Режим Chrome Computer Use. Не переключайтесь на CDP, Playwright, встроенный браузер или плагин Chrome без уведомления пользователя и получения разрешения.
  3. Если пользователь явно запрашивает режим CDP/скриптов, используйте Режим CDP-скриптов.
  4. В противном случае предпочитайте Режим Chrome Computer Use. Для статей X в формате Markdown с локальными изображениями используйте проверенный рабочий процесс редактора X: вставляйте каждое изображение в теле статьи с панели инструментов (Вставка -> Медиа -> кнопка значка диалога Добавить фото или видео) на место соответствующего плейсхолдера, затем удалите текст плейсхолдера. Используйте режим CDP-скриптов только когда выбранный режим управления браузером недоступен или когда процесс загрузки/выбора через интерфейс ненадежен.

Никогда не используйте встроенный браузер для рабочих процессов публикации в X.

Режим плагина Codex Chrome

Используйте этот режим всякий раз, когда пользователь запрашивает плагин Codex Chrome, @chrome или путь Chrome Extension. При этом используется настоящий профиль пользователя и вход в X через встроенный плагин Chrome, а не Computer Use и не CDP.

Настройка

  1. Загрузите навык chrome:Chrome перед работой с браузером.
  2. Используйте tool_search для поиска node_repl js, если инструмент Node REPL js еще не виден.
  3. Инициализируйте клиент браузера Chrome в точности так, как указано в навыке Chrome, затем выполните легкий вызов, например browser.user.openTabs(), чтобы проверить соединение с расширением.
  4. Если первый легкий вызов завершился неудачей, подождите 2 секунды и повторите один раз. Если он по-прежнему не работает, выполните проверки расширения из навыка Chrome и шаги восстановления. Если проверки пройдены, но связь все равно не устанавливается, запросите у пользователя разрешение на открытие нового окна Chrome. Не переключайтесь на Computer Use или CDP без предупреждения.

Общие правила

  • Используйте API плагина Chrome browser.tabs.*, tab.playwright.*, tab.cua.* и файловые менеджеры для действий в интерфейсе X.
  • Команды оболочки разрешены для предварительной обработки Markdown и подготовки буфера обмена с богатым HTML. Для изображений в теле статьи X не полагайтесь на вставку изображений из буфера обмена; используйте поток загрузки Вставка -> Медиа в редакторе.
  • Если загрузка файла не удается с ошибкой Not allowed, сообщите пользователю: Чтобы разрешить загрузку файлов, перейдите в chrome://extensions в Chrome, нажмите 'Подробнее' под расширением Codex и включите 'Разрешить доступ к URL-адресам файлов'. Подробнее см. https://developers.openai.com/codex/app/chrome-extension#upload-files.
  • Если плагин Chrome сообщает native pipe is closed, повторите легкий вызов браузера один раз через 2 секунды, затем выполните проверки работоспособности навыка Chrome. Если Chrome запущен, расширение включено и манифест собственного хоста корректен, запросите разрешение открыть новое окно Chrome и повторите. Не продолжайте отправлять действия браузера через разорванный канал.
  • Никогда не нажимайте Опубликовать, Твитнуть или любое внешне видимое действие отправки без явного окончательного подтверждения пользователя в текущем разговоре.

X Статьи

  1. Конвертируйте Markdown и сохраните карту изображений:
    ${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json
    
  2. Прочитайте вывод JSON для получения title, coverImage и contentImages (placeholderlocalPath).
  3. Откройте или создайте черновик статьи по адресу https://x.com/compose/articles.
  4. Загрузите обложку с помощью потока выбора файлов плагина Chrome. Если загрузка заблокирована разрешениями расширения, остановитесь и сообщите точное исправление разрешений, указанное выше.
  5. Заполните заголовок, затем скопируйте богатый HTML:
    ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html
    
  6. Вставьте в тело статьи с помощью реального нажатия клавиш вставки через плагин Chrome. На macOS используйте Meta+V.
  7. Проверьте, что текст редактора содержит тело статьи и плейсхолдеры XIMGPH_. Не полагайтесь на tab.clipboard.readText() как на доказательство системного буфера обмена после записи из оболочки; на macOS проверьте с помощью pbpaste, если необходимо.
  8. Для каждого элемента contentImages в порядке плейсхолдеров:
    • Найдите видимый текст плейсхолдера (XIMGPH_N) и щелкните по нему, чтобы установить каретку.
    • Откройте меню панели инструментов Вставка -> Медиа.
    • В модальном окне щелкните иконку с aria-label="Добавить фото или видео"; не нажимайте на текст/область перетаскивания или скрытый файловый ввод.
    • Используйте выбор файлов для загрузки localPath этого изображения.
    • После появления изображения, если XIMGPH_N остался над ним, выделите точно этот плейсхолдер и сначала нажмите Delete. Используйте Backspace только если Delete не сработал и выделенный текст точно соответствует плейсхолдеру.
    • Проверьте, что количество плейсхолдера XIMGPH_N равно 0.
  9. Откройте предварительный просмотр и проверьте заголовок, обложку, тело, ссылки и изображения.
  10. Запросите явное подтверждение перед нажатием Опубликовать.

Предпочтения (EXTEND.md)

Проверьте EXTEND.md в порядке приоритета — первый найденный выигрывает:

ПриоритетПутьОбласть
1.baoyu-skills/baoyu-post-to-x/EXTEND.mdПроект
2${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-post-to-x/EXTEND.mdXDG
3$HOME/.baoyu-skills/baoyu-post-to-x/EXTEND.mdДомашний каталог пользователя

Если ничего не найдено, используйте значения по умолчанию.

EXTEND.md поддерживает: Профиль Chrome по умолчанию

Предварительные требования

  • Google Chrome или Chromium
  • Среда выполнения bun
  • Первый запуск: войдите в X вручную (сессия сохранится)

Предполетная проверка (опционально)

Перед первым использованием предложите запустить проверку окружения. Пользователь может пропустить, если хочет.

${BUN_X} {baseDir}/scripts/check-paste-permissions.ts

Проверки: Chrome, изоляция профиля, Bun, Специальные возможности, буфер обмена, нажатие клавиш вставки, конфликты Chrome.

Если какая-либо проверка не пройдена, предоставьте руководство по исправлению для каждого пункта:

ПроверкаИсправление
ChromeУстановите Chrome или установите переменную окружения X_BROWSER_CHROME_PATH
Каталог профиляОбщий профиль в baoyu-skills/chrome-profile (см. раздел Chrome Profile в CLAUDE.md)
Среда выполнения Bunbrew install oven-sh/bun/bun (macOS) или npm install -g bun
Специальные возможности (macOS)Системные настройки → Конфиденциальность и безопасность → Специальные возможности → включите приложение терминала
Копирование в буфер обменаУбедитесь, что доступен Swift/AppKit (инструменты командной строки Xcode для macOS: xcode-select --install)
Нажатие клавиш вставки (macOS)То же исправление, что и для Специальных возможностей выше
Нажатие клавиш вставки (Linux)Установите xdotool (X11) или ydotool (Wayland)

Ссылки

  • Обычные посты: См. references/regular-posts.md для ручного рабочего процесса, устранения неполадок и технических деталей
  • X Статьи: См. references/articles.md для руководства по публикации длинных статей

Режим Chrome Computer Use

Используйте этот режим, когда пользователь явно запрашивает Chrome Computer Use или когда предпочтение плагина Chrome не указано, и Codex может управлять Google Chrome с помощью Computer Use. При этом используется существующее окно Chrome пользователя, файлы cookie, логин, расширения и сессия X.

Общие правила:

  • Начинайте каждый ход помощника, управляющий Chrome, с вызова get_app_state для Google Chrome.
  • Предпочитайте действия по индексу элемента, когда они доступны; используйте координаты только для выделения текста в редакторе или выделения перетаскиванием.
  • Не используйте встроенный браузер, плагин Chrome, Playwright или CDP для действий в интерфейсе X в этом режиме, если пользователь не одобрит смену режима.
  • Никогда не нажимайте Опубликовать, Твитнуть или любое внешне видимое действие отправки без явного окончательного подтверждения пользователя в текущем разговоре.

Обычные посты:

  1. Откройте или перейдите в Chrome по адресу https://x.com/compose/post.
  2. Введите текст поста в композер с помощью Computer Use.
  3. Для каждого изображения выполните:
    ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts image /absolute/path/to/image.png
    
  4. Вставьте с помощью Computer Use (super+v на macOS, control+v на Windows/Linux), затем подождите, пока X завершит загрузку медиа.
  5. Запросите подтверждение перед нажатием Твитнуть.

Видеопосты:

  1. Откройте или перейдите в Chrome по адресу https://x.com/compose/post.
  2. Введите текст поста в композер.
  3. Используйте видимый интерфейс загрузки медиа/выбора файла для прикрепления видео.
  4. Подождите завершения загрузки и обработки.
  5. Запросите подтверждение перед нажатием Твитнуть.

Цитирование твитов:

  1. Откройте URL твита в Chrome.
  2. Используйте видимый интерфейс цитирования/ретвита, чтобы выбрать Цитировать.
  3. Введите комментарий.
  4. Запросите подтверждение перед нажатием Твитнуть.

X Статьи:

  1. Конвертируйте Markdown и сохраните карту изображений:
    ${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json
    
  2. Прочитайте вывод JSON для получения title, coverImage и contentImages (placeholderlocalPath).
  3. В Chrome откройте https://x.com/compose/articles, создайте или откройте черновик, загрузите обложку, если она есть, и заполните заголовок.
  4. Скопируйте богатый HTML в буфер обмена:
    ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html
    
  5. Вставьте в тело статьи с помощью Computer Use.
  6. Для каждого элемента contentImages в порядке плейсхолдеров:
    • Найдите точно видимый текст плейсхолдера, например XIMGPH_3, и щелкните по нему, чтобы установить точку вставки.
    • Откройте выпадающее меню панели инструментов Вставка, выберите Медиа, затем нажмите кнопку значка модального окна с надписью Добавить фото или видео.
    • Используйте родной выбор файлов, чтобы выбрать localPath изображения.
    • Подождите, пока не появится блок изображения и завершится любая активность загрузки.
    • Если плейсхолдер остается над вставленным изображением, снова выделите точно этот текст плейсхолдера и сначала нажмите Delete. Используйте Backspace только если Delete не сработал и выделенный текст точно соответствует плейсхолдеру.
  7. Убедитесь, что не осталось плейсхолдеров XIMGPH_ и ожидаемые изображения отображаются.
  8. Откройте предварительный просмотр и проверьте заголовок, обложку, тело, ссылки и изображения.
  9. Запросите явное подтверждение перед нажатием Опубликовать.

Если управление выделением, загрузкой с панели инструментов или выбором файлов через Computer Use становится ненадежным, остановитесь и сообщите о препятствии, вместо того чтобы без предупреждения переключаться на плагин Chrome или CDP.


Режим CDP-скриптов (Запасной)

Используйте следующие разделы скриптов только в случае, когда выбранный режим управления браузером недоступен, ненадежен или явно не запрошен. Эти скрипты запускают или повторно используют реальный экземпляр Chrome через CDP и оставляют браузер открытым для проверки.

Не используйте режим CDP-скриптов, когда пользователь явно требует плагин Codex Chrome или Chrome Computer Use, если пользователь не одобрит запасной вариант после того, как вы объясните препятствие.


Выбор типа поста

Если пользователь явно не указывает тип поста:

  • Обычный текст + в пределах 10 000 символов → Обычный пост (участники Premium поддерживают до 10 000 символов, не-Premium: 280)
  • Markdown файл (.md) → X Статья

Обычные посты

${BUN_X} {baseDir}/scripts/x-browser.ts "Привет!" --image ./photo.png

Параметры:

ПараметрОписание
<text>Содержание поста (позиционный)
--image <path>Файл изображения (можно повторять, макс. 4)
--profile <dir>Пользовательский профиль Chrome

Примечание: Скрипт открывает браузер с предварительно заполненным содержимым. Пользователь проверяет и публикует вручную.

Примечание по режиму Codex: Если пользователь явно запросил плагин Codex Chrome, используйте Режим плагина Codex Chrome. В противном случае, если доступен Chrome Computer Use, используйте Режим Chrome Computer Use вместо запуска x-browser.ts.


Видеопосты

Текст + видеофайл.

${BUN_X} {baseDir}/scripts/x-video.ts "Только посмотри!" --video ./clip.mp4

Параметры:

ПараметрОписание
<text>Содержание поста (позиционный)
--video <path>Видеофайл (MP4, MOV, WebM)
--profile <dir>Пользовательский профиль Chrome

Примечание: Скрипт открывает браузер с предварительно заполненным содержимым. Пользователь проверяет и публикует вручную.

Примечание по режиму Codex: Если пользователь явно запросил плагин Codex Chrome, используйте Режим плагина Codex Chrome. В противном случае, если доступен Chrome Computer Use, используйте Режим Chrome Computer Use вместо запуска x-video.ts.

Лимиты: Обычные максимум 140 секунд, Premium максимум 60 минут. Обработка: 30-60 секунд.


Цитирование твитов

Цитирование существующего твита с комментарием.

${BUN_X} {baseDir}/scripts/x-quote.ts https://x.com/user/status/123 "Отличная мысль!"

Параметры:

ПараметрОписание
<tweet-url>URL для цитирования (позиционный)
<comment>Текст комментария (позиционный, опционально)
--profile <dir>Пользовательский профиль Chrome

Примечание: Скрипт открывает браузер с предварительно заполненным содержимым. Пользователь проверяет и публикует вручную.

Примечание по режиму Codex: Если пользователь явно запросил плагин Codex Chrome, используйте Режим плагина Codex Chrome. В противном случае, если доступен Chrome Computer Use, используйте Режим Chrome Computer Use вместо запуска x-quote.ts.


X Статьи

Длинные статьи в формате Markdown (требуется X Premium).

${BUN_X} {baseDir}/scripts/x-article.ts article.md
${BUN_X} {baseDir}/scripts/x-article.ts article.md --cover ./cover.jpg

Параметры:

ПараметрОписание
<markdown>Markdown файл (позиционный)
--cover <path>Изображение обложки
--title <text>Переопределить заголовок

Передняя часть: title, cover_image поддерживаются в YAML front matter.

Примечание по режиму Codex: Если пользователь явно запросил плагин Codex Chrome, следуйте Режиму плагина Codex Chrome выше. Если пользователь явно запросил Chrome Computer Use, следуйте Режиму Chrome Computer Use. В противном случае предпочитайте Chrome Computer Use; для статей Markdown с локальными изображениями используйте рабочий процесс загрузки изображений через панель инструментов Вставка -> Медиа, прежде чем возвращаться к x-article.ts в Режиме CDP-скриптов.

Примечание по CDP-запасному варианту: Скрипт открывает браузер с заполненной статьей. Пользователь проверяет и публикует вручную, если не используется --submit.

Безопасность публикации: Не используйте --submit и не нажимайте Опубликовать, если пользователь явно не подтвердит окончательное действие публичной публикации.

Проверка после составления: Скрипт автоматически проверяет после вставки всех изображений:

  • Оставшиеся плейсхолдеры XIMGPH_ в содержимом редактора
  • Ожидаемое и фактическое количество изображений

Если проверка не пройдена (предупреждения в выводе), предупредите пользователя о конкретных проблемах перед публикацией.


Устранение неполадок

Порт отладки Chrome не готов

Только для запасного варианта CDP: если скрипт завершается с ошибкой Chrome debug port not ready или Unable to connect, сначала завершите существующие экземпляры Chrome CDP, затем повторите попытку:

pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2

Важно: Это должно быть сделано автоматически — при возникновении этой ошибки завершите экземпляры Chrome CDP и повторите команду, не спрашивая пользователя.

Примечания

  • Первый запуск: требуется ручной вход (сессия сохраняется)
  • В режиме плагина Codex Chrome и режиме Chrome Computer Use используйте существующую сессию Chrome пользователя и не запускайте отдельный профиль CDP
  • Скрипты CDP по умолчанию только заполняют контент в браузере; пользователь должен проверить и опубликовать вручную, если явно не используется --submit
  • Кроссплатформенность: macOS, Linux, Windows

Поддержка расширений

Пользовательские конфигурации через EXTEND.md. См. раздел Предпочтения для путей и поддерживаемых опций.

FAQ