Bird CLI для Twitter/X
bird — быстрый CLI для работы с Twitter/X через GraphQL API с cookie-аутентификацией.
Аутентификация
bird использует cookies из браузера (Safari, Chrome, Firefox). По умолчанию автоматически находит cookies. Можно указать вручную:
bird --auth-token <token> --ct0 <token> <command>
Или через переменные окружения:
export AUTH_TOKEN=<token>
export CT0=<token>
bird <command>
Основные команды
Публикация твитов
# Простой твит
bird tweet "Текст твита"
# Твит с медиа
bird tweet "Текст" --media image.png --alt "Описание изображения"
# Ответ на твит
bird reply <tweet-id-or-url> "Текст ответа"
Чтение твитов
# Прочитать твит по ID или URL
bird read https://x.com/user/status/1234567890123456789
bird 1234567890123456789 --json
# Показать твит и все ответы (thread)
bird thread https://x.com/user/status/1234567890123456789
# Только ответы на твит
bird replies 1234567890123456789 --max-pages 3
Поиск и лента
# Поиск твитов
bird search "from:username" -n 10
bird search "query" --all --json
# Домашняя лента
bird home -n 20
bird home --following -n 20
# Упоминания
bird mentions -n 10
bird mentions --user @username -n 10
Профили пользователей
# Твиты пользователя
bird user-tweets @username -n 20 --json
# Информация об аккаунте
bird about @username --json
# Подписчики и подписки
bird following -n 20
bird followers --user @username -n 10
Закладки
# Список закладок
bird bookmarks -n 10
bird bookmarks --all --json
# Закладки из папки
bird bookmarks --folder-id 123456789123456789 -n 10
# Удалить закладку
bird unbookmark 1234567890123456789
bird unbookmark https://x.com/user/status/1234567890123456789
Лайки
# Список лайков
bird likes -n 10
bird likes --all --json
Новости и тренды
# Новости (AI-курируемые)
bird news -n 10
bird news --ai-only -n 20
# Новости из конкретных вкладок
bird news --sports -n 10
bird news --entertainment --ai-only -n 5
# С связанными твитами
bird news --with-tweets --tweets-per-item 3 -n 10
Списки
# Список списков
bird lists -n 10
# Лента списка
bird list-timeline 1234567890 -n 20
bird list-timeline https://x.com/i/lists/1234567890 --all --json
Полезные опции
Формат вывода
# JSON формат
bird read <tweet-id> --json
# Без эмодзи и цветов (для скриптов)
bird <command> --plain
# Без эмодзи
bird <command> --no-emoji
Пагинация
# Все результаты
bird search "query" --all
# Ограничить количество страниц
bird search "query" --max-pages 3
# Начать с курсора
bird search "query" --cursor <cursor-string>
Медиа
- До 4 изображений или 1 видео
- Поддерживаемые форматы: jpg, jpeg, png, webp, gif, mp4, mov
- Можно комбинировать изображения + 1 видео
bird tweet "Текст" --media img1.png --alt "Описание 1" --media img2.png --alt "Описание 2"
Утилиты
# Проверить текущий аккаунт
bird whoami
# Проверить доступные credentials
bird check
# Обновить GraphQL query IDs
bird query-ids --fresh
Использование как библиотека
import { TwitterClient, resolveCredentials } from '@steipete/bird';
const { cookies } = await resolveCredentials({ cookieSource: 'safari' });
const client = new TwitterClient({ cookies });
// Поиск
const searchResult = await client.search('from:username', 50);
// Новости
const newsResult = await client.getNews(10, { aiOnly: true });
Важные замечания
- Нестабильный API:
birdиспользует недокументированный GraphQL API Twitter/X, который может измениться в любой момент - Rate limiting: GraphQL может быть ограничен по частоте запросов (429)
- Query IDs: GraphQL query IDs ротируются; используй
bird query-ids --freshдля обновления - Автоматическое восстановление: При ошибке 404
birdавтоматически обновляет query IDs и повторяет запрос
Примеры использования
Публикация твита с изображением
bird tweet "Привет из CLI!" --media screenshot.png --alt "Скриншот интерфейса"
Поиск и сохранение результатов
bird search "python programming" -n 50 --json > tweets.json
Чтение thread с ответами
bird thread https://x.com/user/status/1234567890123456789 --all --json
Получение AI-новостей
bird news --ai-only --with-tweets --tweets-per-item 3 -n 10 --json
Управление закладками
# Просмотр всех закладок
bird bookmarks --all --json
# Удаление закладки
bird unbookmark 1234567890123456789
Конфигурация
Конфиг в JSON5 формате:
- Глобальный:
~/.config/bird/config.json5 - Проект:
./.birdrc.json5
Пример:
{
cookieSource: ["firefox", "safari"],
chromeProfileDir: "/path/to/Chrome/Profile",
timeoutMs: 20000,
quoteDepth: 1
}
Приоритет: CLI флаги > env vars > project config > global config.