# Bird CLI

> Bird CLI для Twitter/X

- Skill: `matperez/bird-cli` (Agent Skill)
- Install (CLI): `npx skillmds@latest add matperez/bird-cli`
- Raw SKILL.md: https://api.skillmd.com/api/skills/matperez/bird-cli/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: matperez (https://skillmd.com/u/matperez)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/matperez/bird-cli

---


# Bird CLI для Twitter/X

`bird` — быстрый CLI для работы с Twitter/X через GraphQL API с cookie-аутентификацией.

## Аутентификация

`bird` использует cookies из браузера (Safari, Chrome, Firefox). По умолчанию автоматически находит cookies. Можно указать вручную:

```bash
bird --auth-token <token> --ct0 <token> <command>
```

Или через переменные окружения:
```bash
export AUTH_TOKEN=<token>
export CT0=<token>
bird <command>
```

## Основные команды

### Публикация твитов

```bash
# Простой твит
bird tweet "Текст твита"

# Твит с медиа
bird tweet "Текст" --media image.png --alt "Описание изображения"

# Ответ на твит
bird reply <tweet-id-or-url> "Текст ответа"
```

### Чтение твитов

```bash
# Прочитать твит по 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
```

### Поиск и лента

```bash
# Поиск твитов
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
```

### Профили пользователей

```bash
# Твиты пользователя
bird user-tweets @username -n 20 --json

# Информация об аккаунте
bird about @username --json

# Подписчики и подписки
bird following -n 20
bird followers --user @username -n 10
```

### Закладки

```bash
# Список закладок
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
```

### Лайки

```bash
# Список лайков
bird likes -n 10
bird likes --all --json
```

### Новости и тренды

```bash
# Новости (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
```

### Списки

```bash
# Список списков
bird lists -n 10

# Лента списка
bird list-timeline 1234567890 -n 20
bird list-timeline https://x.com/i/lists/1234567890 --all --json
```

## Полезные опции

### Формат вывода

```bash
# JSON формат
bird read <tweet-id> --json

# Без эмодзи и цветов (для скриптов)
bird <command> --plain

# Без эмодзи
bird <command> --no-emoji
```

### Пагинация

```bash
# Все результаты
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 видео

```bash
bird tweet "Текст" --media img1.png --alt "Описание 1" --media img2.png --alt "Описание 2"
```

## Утилиты

```bash
# Проверить текущий аккаунт
bird whoami

# Проверить доступные credentials
bird check

# Обновить GraphQL query IDs
bird query-ids --fresh
```

## Использование как библиотека

```javascript
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 });
```

## Важные замечания

1. **Нестабильный API**: `bird` использует недокументированный GraphQL API Twitter/X, который может измениться в любой момент
2. **Rate limiting**: GraphQL может быть ограничен по частоте запросов (429)
3. **Query IDs**: GraphQL query IDs ротируются; используй `bird query-ids --fresh` для обновления
4. **Автоматическое восстановление**: При ошибке 404 `bird` автоматически обновляет query IDs и повторяет запрос

## Примеры использования

### Публикация твита с изображением
```bash
bird tweet "Привет из CLI!" --media screenshot.png --alt "Скриншот интерфейса"
```

### Поиск и сохранение результатов
```bash
bird search "python programming" -n 50 --json > tweets.json
```

### Чтение thread с ответами
```bash
bird thread https://x.com/user/status/1234567890123456789 --all --json
```

### Получение AI-новостей
```bash
bird news --ai-only --with-tweets --tweets-per-item 3 -n 10 --json
```

### Управление закладками
```bash
# Просмотр всех закладок
bird bookmarks --all --json

# Удаление закладки
bird unbookmark 1234567890123456789
```

## Конфигурация

Конфиг в JSON5 формате:
- Глобальный: `~/.config/bird/config.json5`
- Проект: `./.birdrc.json5`

Пример:
```json5
{
  cookieSource: ["firefox", "safari"],
  chromeProfileDir: "/path/to/Chrome/Profile",
  timeoutMs: 20000,
  quoteDepth: 1
}
```

Приоритет: CLI флаги > env vars > project config > global config.

