agent-deck
Управление сессиями AI агентов через agent-deck CLI. Триггеры (RU): "запусти агента", "запусти саб-агента", "создай сессию",…
Reddit: чтение постов и комментариев без ключей через веб-инструмент агента, RSS и публичный JSON; API для пользователей, сабреддитов и поиска. OAuth2, кеш, автоматический переход на RSS при отказе авторизации, опциональные write-операции с двойным предохранителем
$ npx -y skills add artwist-polyakov/polyakov-claude-skills --skill reddit-skill --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/reddit-skillContext preview
The summary Claude sees to decide when to auto-load this skill.
Reddit: чтение постов и комментариев без ключей через веб-инструмент агента, RSS и публичный JSON; API для пользователей, сабреддитов и поиска. OAuth2, кеш, автоматический переход на RSS при отказе авторизации, опциональные write-операции с двойным предохранителем
name: reddit-skill description: | Reddit: чтение постов и комментариев без ключей через веб-инструмент агента, RSS и публичный JSON; API для пользователей, сабреддитов и поиска. OAuth2, кеш, автоматический переход на RSS при отказе авторизации, опциональные write-операции с двойным предохранителем (REDDIT_ENABLE_WRITE=1 + --confirm). Triggers: reddit, reddit api, reddit subreddit, reddit user, reddit post, reddit search, парсинг reddit, посты reddit, комментарии reddit, реддит.
Чтение публичных списков через RSS, постов и комментариев через `.json` без ключей, а также прямой доступ к Reddit API через OAuth2 без PRAW. Порт MCP-сервера [Arindam200/reddit-mcp](https://github.com/Arindam200/reddit-mcp) на shell-скрипты по образцу yandex-metrika / yandex-search-api.
Для публичного чтения по пользовательским подпискам, в том числе RSS-мониторинга, бери список из [config/subscriptions.txt](config/subscriptions.txt): одно название сабреддита на строку, без `r/`. Сабреддиты, явно заданные в запросе, имеют приоритет над сохранённым списком. Не ищи подписки в `.env` или аккаунте и не подключай браузерную сессию для получения этого списка. Если файл отсутствует или пуст, уточни сабреддиты у пользователя.
Если пользователь не указал способ, для публичного чтения сначала используй доступный встроенный инструмент чтения URL (`fetch`, `WebFetch`, `open` или аналог). Открывай конкретный адрес; результаты поиска сами по себе не заменяют содержимое:
`.json` к пути поста перед параметрами запроса, например `https://www.reddit.com/r/Python/comments/abc123/title/.json?limit=100&raw_json=1`.
например `https://www.reddit.com/r/Python/top.rss?t=day&limit=25`.
Для этого способа не запускай `auth_check.sh` и не запрашивай ключи приложения. Список подписок хранится отдельно от `.env`; наличие или исправность ключей не является условием публичного чтения. При повторном мониторинге запрашивай свежие данные, если инструмент это позволяет; иначе укажи ограничение свежести.
Если инструмента нет, он не поддерживает формат, не вернул нужное содержимое или задача требует скрипта и локального кеша, используй команды ниже. Для чтения без ключей передавай `REDDIT_RSS_MODE=1`. Ошибка одного способа не доказывает недоступность другого.
Веб-инструмент может возвращать сокращённый текст вместо исходного JSON или RSS. Не выдавай такой ответ за полный файл и не обещай все комментарии: учитывай усечение, параметр `limit` и элементы `more`. Локальный кеш описан ниже только для скриптов; при чтении веб-инструментом не сообщай о сохранении файла, если он не был сохранён.
Для мониторинга постов ключи приложения не нужны. Включить RSS явно:
REDDIT_RSS_MODE=1 sh scripts/subreddit_top.sh --subreddit singularity --time day --limit 25
`REDDIT_RSS_MODE=1` можно сохранить в `config/.env`. При передаче через окружение скрипт не читает `.env`. Для списка из `config/subscriptions.txt` передавай каждый сабреддит явно через `--subreddit`: скрипты сами список подписок не загружают. Для RSS есть стандартный User-Agent; его можно заменить через `REDDIT_USER_AGENT`.
Для полного доступа через API зарегистрировать **script-app** на https://www.reddit.com/prefs/apps и заполнить `config/.env`:
Подробная инструкция: [config/README.md](config/README.md).
Для write/me дополнительно:
1. **Cache-first** — токен, юзеры, сабреддиты, листинги кешируются по детерминированному ключу. 2. **Context window hygiene** — stdout ≤ 30 строк, полный JSON в `cache/listings/<hash>.json`. 3. **Выбор режима** — `REDDIT_RSS_MODE=1` включает RSS. Без ключей поддерживаемые команды чтения также используют RSS. С ключами выбирается user mode при наличии `REDDIT_USERNAME`+`REDDIT_PASSWORD`, иначе app-only. При отказе авторизации чтение постов автоматически переходит на RSS в текущем запуске; настройки на диске не меняются. 4. **Двойная защита write** — два уровня:
5. **Rate-limit от заголовков** — читаем `x-ratelimit-remaining`, `x-ratelimit-reset`, `Retry-After`. На 429 один retry если ожидание ≤ 60s.
1. **Если выбран скрипт, запускай нужную команду чтения сразу.** Если нужно проверить доступ отдельно:
sh scripts/auth_check.sh
Успех: `OK: RSS feed works`, `OK: app-only token works` или `OK: user token works`. Для RSS не запрашивай файл с ключами и не требуй регистрации приложения.
2. **Если нужна write-операция:**
(без `REDDIT_ENABLE_WRITE=1` команда сразу падает с ошибкой — это намеренно)
3. **Имя сабреддита/юзера** можно передавать с префиксом или без: `r/python` ≡ `python`, `u/spez` ≡ `spez`.
RSS поддерживают `subreddit_top.sh`, `search.sh`, `user_posts.sh` и `auth_check.sh`. Параметры поиска, сортировки, периода и количества передаются в публичную ленту. `submission.sh` в этом же режиме читает `https://www.reddit.com/comments/{id}.json` без токена. Можно передать обычную ссылку поста, ссылку с `.
Управление сессиями AI агентов через agent-deck CLI. Триггеры (RU): "запусти агента", "запусти саб-агента", "создай сессию",…
Workflow кросс-агентного ревью с Codex. Triggers (RU): "кодекс ревью". Triggers (EN): "with codex review", "codex review…
SEO-краулер сайтов на базе Crawl4AI. Полный аудит страниц: title, meta, H1, canonical, breadcrumbs, навигация, внутренние ссылки.…
Fill Word document templates (contracts, forms) with structured data using docxtpl. Use when user uploads a .docx template with…
Generate/edit images via fal.ai. Supports Google Nano Banana Pro and OpenAI GPT Image 2 selected from config/.env. Supports…
Анализирует генетические данные пользователя из VCF файла. Используй когда пользователь спрашивает о своей генетике,…