mcpField
R
rdt-cli

rdt-cli

github.com/public-clisその他546225 回インストール32 週間前に更新
リポジトリ

rdt-cli について

rdt-cli は Reddit の閲覧、検索、投稿の読解や操作に使うコマンドラインツールです。Agent のワークフロー向けに構造化された簡潔な出力を提供し、認証が必要な操作にはブラウザーの Cookie を使います。

主な機能

  1. 01フィード、サブレディット、プロフィールの閲覧
  2. 02投稿の検索と結果のエクスポート
  3. 03投稿とコメントスレッドの読解
  4. 04投票、保存、購読、コメント
  5. 05JSON または YAML 出力

活用シーン

  1. 01購読中のサブレディットのフィード監視
  2. 02Reddit のユーザーや投稿の調査
  3. 03分析用の検索結果のエクスポート

MCP 対応

入力ではコマンドラインスキルとして説明されており、MCP との接続については記載されていません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/public-clis/rdt-cli --skill rdt-cli

インストール後、Claude Code で/rdt-cliを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
pyproject.toml
SCHEMA.md
README.md
.github/workflows/
publish.yml
ci.yml
rdt_cli/
auth.py
__init__.py
__main__.py
cli.py
client.py
config.py
constants.py
exceptions.py
fingerprint.py
index_cache.py
session.py
models.py
transports.py
parser.py
rdt_cli/commands/
__init__.py
auth.py
post.py
search.py
social.py
browse.py
_common.py
tests/
__init__.py
tests/fixtures/
morechildren.json
listing.json

詳細

rdt-cli — Reddit CLI ツール

バイナリ: rdt 認証情報: ブラウザーの Cookie(browser-cookie3 で自動抽出)

セットアップ

# Install (requires Python 3.10+)
uv tool install rdt-cli
# Or: pip install rdt-cli

# Upgrade
uv tool upgrade rdt-cli

認証

エージェントへの重要な注意: 認証が必要な rdt コマンドを実行する前に、認証情報が存在するか必ず確認してください。

ステップ 0:認証済みかどうかを確認する
rdt status --json 2>/dev/null | jq -r '.data.authenticated' | grep -q true && echo "AUTH_OK" || echo "AUTH_NEEDED"

AUTH_OK の場合は、コマンドリファレンスに進んでください。 AUTH_NEEDED の場合は、ステップ 1 に進んでください。

ステップ 1:ユーザーに認証を案内する

ユーザーが対応ブラウザー(Chrome、Firefox、Edge、Brave、Arc、Chromium、Opera、Vivaldi、Safari、LibreWolf)で reddit.com にログインしていることを確認してください。次に、以下を実行します。

rdt login

以下で確認します。

rdt status
rdt whoami --json | jq '.data.name // .data._session.username'
ステップ 2:よくある認証問題への対処
症状エージェントの対応
No Reddit cookies foundブラウザーで reddit.com にログインするようユーザーに案内する
Session expiredrdt logout && rdt login を実行する
database is lockedブラウザーを閉じてから再試行する

エージェントの既定設定

すべての機械可読出力は、SCHEMA.md に記載されているエンベロープを使用します。 ペイロードは .data の下に格納されます。

  • 非 TTY の標準出力 → YAML を自動選択
  • --json / --yaml → 出力形式を明示
  • --compact → フィールド数を削減(エージェントのトークン効率を向上)
  • --output file.json → 構造化出力をファイルに保存
  • リッチ出力 → 標準エラー出力(パイプでも安全:rdt search X --json | jq .data)
  • ほとんどの読み取りコマンドは認証なしで動作します(公開 Reddit JSON API)
  • 書き込み操作(アップボート、保存、登録)には認証と組み込みの 1.5〜4 秒の待機時間が必要です

コマンドリファレンス

閲覧
コマンド説明例
rdt feedホームフィードを閲覧(ログインが必要)rdt feed -n 10 --json
rdt feed --subs-only登録先のみのフィード(アルゴリズムなし、時間順)rdt feed --subs-only -n 5 --json
rdt popular/r/popular を閲覧rdt popular -n 5 --json
rdt all/r/all を閲覧rdt all -n 10 --compact --json
rdt sub <name>サブレディットを閲覧rdt sub python -s top -t week
rdt sub-info <name>サブレディット情報を表示rdt sub-info rust --json
rdt user <name>ユーザープロフィールを表示rdt user spez --json
rdt user-posts <name>ユーザーの投稿を表示rdt user-posts spez -n 5 --json
rdt user-comments <name>ユーザーのコメントを表示rdt user-comments spez -n 5 --json
rdt saved保存したアイテムを表示rdt saved -n 10 --json
rdt upvotedアップボートした投稿を表示rdt upvoted -n 10 --json
rdt open <id_or_index>投稿をブラウザーで開くrdt open 3
読み取り
コマンド説明例
rdt read <post_id>投稿とコメントを読むrdt read 1abc123 --json
rdt read <post_id> --expand-moreトップレベルの more comments を展開rdt read 1abc123 --expand-more --json
rdt show <index>短縮インデックスで読むrdt show 3
rdt show <index> --expand-moreキャッシュされた結果から more comments を展開rdt show 3 --expand-more --json
rdt whoami自分のプロフィールを表示(カルマ、アカウント年齢)rdt whoami --json
検索とエクスポート
コマンド説明例
rdt search <query>投稿を検索rdt search "python async" -s top -t year
rdt search <query> -r <sub>サブレディット内を検索rdt search "error" -r rust --json
rdt search <query> -o f.json検索してファイルに保存rdt search "ML" -n 50 -o results.json
rdt export <query>CSV/JSON にエクスポートrdt export "ML" -n 50 -o results.csv
操作(認証が必要)
コマンド説明例
rdt upvote <id_or_index>賛成票を投じるrdt upvote 3
rdt upvote <id> --down反対票を投じるrdt upvote 3 --down
rdt upvote <id> --undo投票を取り消すrdt upvote 3 --undo
rdt save <id_or_index>投稿を保存するrdt save 3
rdt save <id> --undo保存を解除するrdt save 3 --undo
rdt subscribe <sub>購読するrdt subscribe python
rdt subscribe <sub> --undo購読を解除するrdt subscribe python --undo
rdt comment <id> <text>コメントを投稿するrdt comment 3 "Great post!"
アカウント
コマンド説明
rdt loginブラウザーから Cookie を抽出する
rdt logoutキャッシュされた Cookie を消去する
rdt status認証状態を確認する
rdt whoamiプロフィールの詳細情報を表示する

一覧表示オプション

すべての一覧表示コマンド(feed、popular、all、sub、user-posts、user-comments、saved、upvoted、search)で、以下のオプションを使用できます。

フラグ説明
--jsonJSON 出力(SCHEMA エンベロープ付き)
--yamlYAML 出力(SCHEMA エンベロープ付き)
-o, --output FILE構造化出力をファイルに保存する
--full-text省略せずにタイトル全体を表示する
-c, --compactエージェント向けの簡潔な出力(フィールド数を削減)
フィード固有のオプション
フラグ説明
--subs-only購読中のサブレディットの投稿のみを表示する(時間順。アルゴリズムによる並べ替えなし)
--max-subs N取得する購読数の上限(デフォルト:20)

エージェントのワークフロー例

閲覧 → 読む → 賛成票を投じるパイプライン
rdt sub python -s top -t week -n 5
rdt show 1 --expand-more
rdt upvote 1
検索 → エクスポートのパイプライン(構造化)
rdt search "machine learning" -s top --compact --json | jq '.data'
rdt export "machine learning" -n 100 -o ml_posts.csv
検索 → ファイルに保存
rdt search "rust async" -n 50 -o results.json
rdt search "python tips" -n 20 --compact -o tips.json
ユーザー調査
rdt user spez --json | jq '.data | {name, link_karma, comment_karma}'
rdt user-posts spez -n 10 --compact --json
rdt user-comments spez -n 10 --compact --json
保存済み/賛成票を投じた投稿の確認
rdt saved -n 20 --compact --json
rdt upvoted -n 20 --compact --json
購読中のサブレディットのみをモニタリング
rdt feed --subs-only -n 5 --compact --json
rdt feed --subs-only --max-subs 10 -o subs_feed.json
サブレディットの検索
rdt sub-info python --json | jq '.data | {subscribers, accounts_active}'
rdt sub python -s top -t month -n 5 --full-text

並べ替えオプション

  • 一覧の並べ替え:hot、new、top、rising、controversial、best
  • 検索の並べ替え:relevance、hot、top、new、comments
  • 期間フィルター(top/controversial 用):hour、day、week、month、year、all
  • コメントの並べ替え:best、top、new、controversial、old、qa

エラーコード

error.code フィールドで返される構造化エラーコード(SCHEMA.md を参照):

  • not_authenticated — Cookie の期限切れ、または Cookie がありません
  • rate_limited — リクエストが多すぎます
  • not_found — サブレディット、ユーザー、投稿が存在しません
  • forbidden — 非公開のサブレディット、またはブロックされたユーザーです
  • api_error — 上流の Reddit API エラーです
  • unknown_error — 想定外のエラーです

制限事項

  • DM には非対応 — プライベートメッセージにはアクセスできません
  • ライブ/ストリーミングには非対応 — ライブ機能はサポートされていません
  • メディアのダウンロードには非対応 — 画像や動画をダウンロードできません
  • 単一アカウント — 一度に使用できる Cookie セットは1つです
  • レート制限あり — リクエスト間に組み込みのガウスジッター(約1秒)があります
  • 公開 API のみ — OAuth エンドポイントではなく、.json サフィックスの API を使用します

エージェント向けの検出回避に関する注意事項

  • リクエストを並列化しないでください — 組み込みのレート制限による遅延は、アカウントを保護するためのものです
  • 書き込み操作後の遅延:各書き込み操作(賛成票/保存/購読/コメント)の後に、1.5~4秒のランダムな遅延が入ります
  • バッチ操作:一括処理を行う場合は、CLI 呼び出しの間に遅延を追加してください
  • Chrome 133 のフィンガープリント:すべてのリクエストで一貫したブラウザー ID を使用します
  • 指数バックオフ:429/5xx エラーはバックオフを行って自動的に再試行されます

安全に関する注意事項

  • チャットログで生の Cookie 値を共有するようユーザーに求めないでください
  • 手動でシークレットをコピー&ペーストするより、ブラウザーから Cookie を抽出する方法を優先してください
  • 認証に失敗した場合は、rdt login で再ログインするようユーザーに案内してください
  • 組み込みのレート制限による遅延はアカウントを保護します。回避しないでください

コメント