x-tweet-fetcher — скилл
Читает твиты, ответы, ленты, списки и статьи X без входа и ключей API через команду xtf, три источника с автоматической подменой при сбое
- 991 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Утилита ходит в сторонние шлюзы FxTwitter и Nitter и в браузер
- Ключ `--ledger` пишет базу SQLite на диск, а монитор хранит кэш в домашней папке
- Для списков и статей запускается браузерный драйвер, а для ленты может понадобиться контейнер Docker
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/x-tweet-fetcherОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Утилита ходит в сторонние шлюзы FxTwitter и Nitter и в браузер
- Ключ `--ledger` пишет базу SQLite на диск, а монитор хранит кэш в домашней папке
- Для списков и статей запускается браузерный драйвер, а для ленты может понадобиться контейнер Docker
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
x-tweet-fetcher позволяет агенту получать содержимое X, бывшего Twitter, когда у платформы нет бесплатного API. Утилита `xtf` выбирает один из трех источников. FxTwitter отдает отдельные твиты и профили без зависимостей. Nitter, ваш или публичный, дает ленты, поиск и ответы. Браузерный драйвер Camofox или Playwright добавляет списки и полные статьи X. Автоматический режим сначала пробует Nitter и переходит на браузер, если не вышло. Все ответы приводятся к одной схеме `Tweet`, `Reply`, `Profile` и `Article`, поэтому агенту хватает одного описания формата. У ошибок есть код: `invalid_input`, `not_found`, `rate_limited`, `upstream_down`, `backend_unavailable`, `all_backends_failed`. Режим `--monitor` следит за упоминаниями аккаунта и подходит для cron, а ключ `--ledger` складывает результаты в локальную базу SQLite без дублей и позволяет искать по архиву офлайн. Одиночный твит работает сразу после установки, для остального нужен Nitter или браузер.
Для кого. Для исследователей, маркетологов и разработчиков агентов, которым нужны данные X для мониторинга упоминаний, анализа обсуждений и архивирования без платного API.
Подходит, если
- Агент должен прочитать твит по ссылке вместе со статистикой, медиа и цитатами, и вставлять текст вручную не хочется
- Надо снять ленту аккаунта или поиск по теме и сохранить результат в SQLite без повторов
- Нужен мониторинг упоминаний бренда по расписанию: код выхода 1 сообщает о новых
- Требуется текст статьи X или содержимое списка, для чего нужен браузерный драйвер
- Нужны единые поля для разных источников, чтобы агенту хватало одного описания формата
Не подходит, если
- Нужна публикация или любые действия от аккаунта: утилита только читает
- Нужны гарантии работы без перебоев: публичные экземпляры Nitter часто недоступны, а для надежности рекомендуют свой
- Нужен полный текст статьи X без входа: без авторизации приходит заголовок и публичный фрагмент, поле `is_partial` равно `true`
- Нужна аналитика и разбор китайских площадок: эти скрипты переехали в отдельные репозитории
Пример запроса к агенту
Возьми через `xtf` последние 20 твитов @elonmusk, сохрани их в ~/tweets.db и покажи самые обсуждаемые по просмотрамОграничения
Нужен Python 3.10 или новее. Для лент, поиска и ответов нужен экземпляр Nitter, адрес задается переменной `XTF_NITTER`, несколько через запятую. Публичные экземпляры ненадежны, автор советует запускать свой в Docker. Списки и статьи требуют браузер: по умолчанию Camofox на порту 9377, либо Playwright через `XTF_BROWSER`.
Полный текст статей X доступен только после входа в X. Сообщения утилиты по умолчанию на китайском, язык меняет `XTF_LANG=en`. Схема поиска в версии 2 изменилась относительно первой, детали в `MIGRATION.md`. Доступность X из России в репозитории не описана.
Как отключить. Выполните `pip uninstall` для пакета `xtf`, удалите папку скилла из каталога скиллов агента и остановите контейнер `nitter`, если запускали его. Кэш монитора лежит в ~/.x-tweet-fetcher, базы `--ledger` создаются там, куда вы их указали.
Частые вопросы
Как поставить x-tweet-fetcher?
Склонируйте репозиторий, перейдите в папку и выполните `pip install .` Затем `xtf` `--url` с адресом твита сразу вернет JSON. Без установки можно запустить `python3 scripts/fetch_tweet.py` с теми же флагами.
Нужен ли доступ к X или ключ API?
Нет, ни вход, ни ключи не нужны. Это относится к твитам, лентам, поиску и спискам. Полный текст статьи X без входа в X не отдается: приходит заголовок и публичный фрагмент.
Чем отличаются три источника?
`fxtwitter` без зависимостей берет твиты и профили. `nitter` нужен для лент, поиска, ответов и упоминаний. Браузерный драйвер добавляет списки и статьи X. В режиме `auto` сначала идет Nitter, затем браузер.
Как запустить свой Nitter?
Командой `docker run -d -p 8788:8080 --name nitter zedeus/nitter:latest`, затем `export XTF_NITTER=http://127.0.0.1:8788`. Несколько адресов через запятую включают переключение при сбое.
Чем x-tweet-fetcher отличается от Agent-Reach?
Agent-Reach читает много площадок сразу. x-tweet-fetcher занимается только X, но дает ленты, списки, мониторинг упоминаний и локальный архив в SQLite.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыCLI для Twitter/X со скиллом для агентов: ленты, закладки, поиск и профили в терминале, плюс публикация, ответы и лайки без ключей API
CLI и скилл, через которые агент читает и ищет в Twitter, Reddit, YouTube, GitHub, Bilibili и Xiaohongshu без платных API
Скилл news-extractor достает из ссылки заголовок, текст, картинки и метаданные статьи с 12 новостных площадок и отдает JSON или Markdown без браузера
Скилл веб-поиска, поиска по X и чтения страниц для моделей без выхода в сеть: без регистрации и ключа, ответ в JSON со ссылками на источники
CLI и MCP-сервер, через которые агент управляет вашим настоящим Chrome с сохраненными входами: 103 команды к 36 сайтам и автоматизация браузера
Скилл собирает обсуждения темы за последние 30 дней из Reddit, X, YouTube, HN, Polymarket и GitHub и сводит их в бриф
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| x-tweet-fetcher (эта запись) | нет | 991 | |
| Agent Reach | нет | 100 672 | читает Twitter, Reddit, YouTube, GitHub и другие площадки одним набором, без архива и мониторинга упоминаний |
| OpenCLI | нет | 30 510 | превращает любой сайт в команду через ваш залогиненный браузер, без специализации на X |
Коротко о README
Проект исходит из того, что у X нет бесплатного API, а скрапинг блокируют. Решение — маршрутизация по трем источникам с автоматической подменой. Далее быстрый старт, таблица возможностей и кодов выхода, раздел про локальную базу твитов, примеры на Python, переменные окружения, запуск своего Nitter и структура проекта.
Бейдж для README
Исходный SKILL.md
--- name: x-tweet-fetcher description: > Fetch tweets, replies, timelines, search results, X Lists, and X Articles from X/Twitter without login or API keys. Single tweets: zero dependencies (FxTwitter). Timelines/search/replies: a Nitter instance (XTF_NITTER). Lists/Articles: a browser driver (Camofox or Playwright). Unified JSON schema across all backends; machine-readable error_code for agent branching. Field reports and agent-use questions: Agent Waystation #22 Teahouse: https://github.com/ythx-101/openclaw-qa/discussions/22 --- # X Tweet Fetcher Fetch tweets from X/Twitter without authentication. For agent-use stories, failures, and field reports, start from **[#22 Teahouse / 茶座](https://github.com/ythx-101/openclaw-qa/discussions/22)**. ## Feature Overview | Feature | Command | Dependencies | |---------|---------|-------------| | Single tweet | `xtf --url <tweet_url>` | None (zero deps) | | Reply threads | `xtf --url <tweet_url> --replies` | Nitter or browser | | User timeline | `xtf --user <username> --limit 50` | Nitter or browser | | Search | `xtf --search "<query>"` | Nitter | | User profile | `xtf --user-info <username>` | None (zero deps) | | X List | `xtf --list <list_url_or_id>` | Browser (Camofox/Playwright) | | X Article | `xtf --article <url_or_id>` | Browser (Camofox/Playwright) | | Mentions monitor | `xtf --monitor @<username>` | Nitter or browser | `python3 scripts/fetch_tweet.py` accepts the same flags (v1-compatible entry point). ## Basic Usage (Zero Dependencies) ```bash # JSON output (default) xtf --url https://x.com/user/status/1234567890 # Human-readable xtf --url https://x.com/user/status/1234567890 --text-only # Output covers: text, author, stats (likes/retweets/views), media URLs, # quoted tweets, and full article text for tweet-embedded articles. ``` ## Timeline / Search / Replies (Nitter) ```bash export XTF_NITTER=http://127.0.0.1:8788 # your instance; comma-separate for failover xtf --user elonmusk --limit 20 xtf --search "openclaw" --limit 10