opencli-reader について
opencli-reader は、opencli のアダプターレジストリを使って対応サイトやサービスの情報を取得する読み取り専用スキルです。コマンドの確認やアダプター要件の判定を支援し、専用スキルがあるソースではそちらを優先します。
主な機能
- 01読み取り専用のデータ取得
- 02登録コマンドの検索
- 03アダプター方式の確認
- 04JSON 出力の案内
- 05障害時の診断
活用シーン
- 01金融・ニュースソースの調査
- 02対応サイトの投稿の閲覧
- 03サイトのアダプター要件の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ himself65/ finance-skills --skill opencli-readerインストール後、Claude Code で/opencli-readerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/discovery.mdfinance-sources.md詳細
opencli Reader(汎用フォールバック、読み取り専用)
ホストが以下のシェルプローブをまだ実行していない場合(たとえば Codex)、セットアップ方法を選ぶ前に、シェルツールを使って ! ラッパー内のコマンドを実行してください。実際の出力を使用してください。シェルにアクセスできない場合は、その制限を伝えてください。
アダプターレジストリがサポートするあらゆるソース(100 以上のサイトに対応し、増加中)で使える汎用フォールバックです。このソースに対応する専用の finance-skill がない場合に限りこのスキルを使用してください。リクエストが該当する場合は、特化したスキル(twitter-reader、linkedin-reader、discord-reader、telegram-reader、yc-reader)を必ず優先してください。
このスキルは読み取り専用です。 opencli が公開する書き込みコマンド(post、like、comment、send、save、upvote、subscribe、follow、delete、reply-dm など)は実行しないでください。
ステップ 1:このスキルを使うか判断する
より具体的なスキルではリクエストに対応できない場合に限り、このスキルを使用してください。
| ユーザーが尋ねている内容… | 代わりに使用するスキル |
|---|---|
| Twitter/X | twitter-reader |
linkedin-reader | |
| Discord | discord-reader |
| Telegram | telegram-reader |
| Y Combinator | yc-reader |
| opencli がサポートするその他のもの(Yahoo Finance、Bloomberg、Reuters、Reddit、HackerNews、Eastmoney、Xueqiu、Substack、arXiv など) | このスキル |
ソースが opencli のレジストリにもない場合は、そこで中止し、リクエストには対応していないことをユーザーに伝えてください。場当たり的なスクレイピングで代用しないでください。
ステップ 2:opencli が使える状態であることを確認する
現在の環境の状態:
!`(command -v opencli && opencli doctor 2>&1 | head -5 && echo "READY" || echo "SETUP_NEEDED") 2>/dev/null || echo "NOT_INSTALLED"`
NOT_INSTALLED の場合:
npm install -g @jackwener/opencli
SETUP_NEEDED の場合は、Browser Bridge のセットアップを案内してください(COOKIE、HEADER、INTERCEPT、UI のいずれかの strategy を使用するアダプターでのみ必要です。PUBLIC と LOCAL のアダプターはブラウザーなしで動作します)。
- GitHub Releases ページから最新の
opencli-extension-v{version}.zipをダウンロードします - 解凍し、Chrome で
chrome://extensionsを開いて、デベロッパーモードを有効にします - パッケージ化されていない拡張機能を読み込むをクリックし、解凍したフォルダーを選択します
- Chrome で対象サイトにログインしていることを確認してから、
opencli doctorを再実行します
Node.js >= 20(または Bun >= 1.0)が必要です。
ステップ 3:適切なコマンドを見つける
コマンド名やフラグを推測しないでください。レジストリには 500 以上のコマンドがあり、毎週変更されます。代わりに、次の手順を実行してください。
# Full registry (grouped by site), machine-readable JSON
opencli list -f json
# Filter to a site
opencli list | grep -i <site>
# Site-level help (all commands + flags)
opencli <site> --help
# Command-level help (positional args + flags + defaults)
opencli <site> <command> --help
各コマンドの opencli list -f json エントリーには、次の情報が含まれます。
site— アダプターの名前空間(例:yahoo-finance)name— サブコマンド(例:quote)strategy—PUBLIC/COOKIE/HEADER/INTERCEPT/UI/LOCAL。ブラウザーへのログインが必要かどうかを示しますdescription、args、columns— 正式なメタデータ
情報源としては opencli list -f json を使用してください。記憶を頼りにサイトの一覧を計画へ貼り付けないでください。アダプターは毎週追加されています。
よく使われる金融/調査ソースの早見表
以下の表は主なものを抜粋したもので、網羅的ではありません。必ず opencli <site> --help で確認してください。
| ソース | サイトスラッグ | よく使われるコマンド |
|---|---|---|
| Yahoo Finance | yahoo-finance | quote |
| Bloomberg | bloomberg | markets、economics、industries、tech、politics、opinions、news、businessweek、feeds、main |
| Reuters | reuters | search |
| Eastmoney(东方财富) | eastmoney | quote、rank、kline、sectors、etf、holders、money-flow、northbound、longhu、kuaixun、convertible、index-board、announcement、hot-rank |
| Xueqiu(雪球) | xueqiu | stock、hot-stock、hot、feed、comments、watchlist、search、groups、fund-snapshot、fund-holdings、earnings-date、kline |
| Sinafinance | sinafinance | (--help を参照) |
| TDX / THS | tdx、ths | (--help を参照) |
| Barchart(オプション) | barchart | quote、options、flow、greeks |
reddit | hot、popular、frontpage、search、subreddit、read、user、user-posts、user-comments、saved | |
| HackerNews | hackernews | top、best、new、ask、show、jobs、user、search |
| Substack | substack | feed、publication、search |
| Medium | medium | (--help を参照) |
| arXiv | arxiv | (--help を参照) |
| Google Scholar | google-scholar | (--help を参照) |
weibo | (--help を参照) | |
| Bilibili | bilibili | hot、video など |
| Xiaohongshu(小红书) | xiaohongshu | (--help を参照) |
| Rednote(小红书の海外版) | rednote | (--help を参照。xiaohongshu のミラーです) |
| Zhihu | zhihu | (--help を参照) |
| Baidu Scholar | baidu-scholar | (--help を参照) |
| Wanfang | wanfang | (--help を参照) |
| 36kr | 36kr | (--help を参照) |
| Jike | jike | (--help を参照) |
| Bluesky | bluesky | (--help を参照) |
| Apple Podcasts | apple-podcasts | (--help を参照) |
| Xiaoyuzhou(ポッドキャスト) | xiaoyuzhou | (--help を参照) |
| Spotify | spotify | (--help を参照) |
| YouTube | youtube | (--help を参照) |
| Weixin Official Account | weixin | (--help を参照。drafts は読み取り、create-draft は書き込みです) |
| Toutiao | toutiao | articles |
| 政府の政策/法律 | gov-policy、gov-law | (--help を参照) |
| Web ダウンロード/リーダー | web | read、download |
一覧にないものについては、opencli list -f json を実行して絞り込んでください。
ステップ 4:実行前にアダプターの戦略を確認する
opencli list -f json(または opencli <site> <command> --help)を実行し、strategy フィールドを確認してください。
| 戦略 | 意味 | 前提条件 |
|---|---|---|
PUBLIC | HTTP のみ。ブラウザーは不要です | なし |
LOCAL | ローカルのエンドポイントと通信します | ローカルサービスが実行中であること |
COOKIE / HEADER | サイトへの Chrome ログイン状態を再利用します | Chrome でサイトにログイン済みで、Browser Bridge 拡張機能が読み込まれていること |
INTERCEPT | 自動化ウィンドウを開いて署名付きリクエストを取得します | COOKIE と同じです。数秒かかる場合があるため、しばらくお待ちください |
UI | DOM を全面的に操作します | COOKIE と同じです。最も時間がかかり、結果はサイトの現在のレイアウトに左右されます |
ユーザーがログインしておらず、アダプターの戦略が PUBLIC/LOCAL 以外の場合は、再試行する前に Chrome でサイトにログインする必要があることを伝えてください。
ステップ 5:コマンドを実行する
一般的な形式
opencli <site> <command> [positional-args] [flags] -f json
共通フラグ
| フラグ | 効果 |
|---|---|
-f json | 構造化 JSON。エージェントでの処理では常にこちらを優先してください |
-f yaml / -f csv / -f md / -f table / -f plain | その他の形式 |
-v | 詳細なログ出力(OPENCLI_VERBOSE=1 も設定します) |
--live | コマンドの実行後も自動化ウィンドウを開いたままにします(ブラウザーを使用するアダプターのみ) |
--focus | 自動化ウィンドウを前面に表示して開きます(ブラウザーを使用するアダプターのみ) |
コマンド固有のフラグ(--limit、--filter、--type など)は共通フラグではありません。必ず opencli <site> <command> --help で確認してください。
例
# Yahoo Finance quote (PUBLIC)
opencli yahoo-finance quote AAPL -f json
# Reddit hot posts in a subreddit (COOKIE or PUBLIC depending on subreddit)
opencli reddit subreddit wallstreetbets --limit 20 -f json
opencli reddit search "SPY options" --limit 15 -f json
# HackerNews top (PUBLIC)
opencli hackernews top --limit 20 -f json
# Eastmoney hot rank (PUBLIC)
opencli eastmoney hot-rank -f json
# Xueqiu hot stocks (PUBLIC or COOKIE)
opencli xueqiu hot-stock -f json
opencli xueqiu stock SH600519 -f json
# Bloomberg markets headlines (COOKIE)
opencli bloomberg markets -f json
# arXiv paper search (PUBLIC)
opencli arxiv search "volatility surface" --limit 10 -f json
# Substack feed
opencli substack feed --limit 20 -f json
# Web page → readable markdown (PUBLIC)
opencli web read "https://example.com/article" -f json
主なルール
- このセッションで実行していないコマンドを組み立てる前に、必ず
opencli <site> <command> --helpを使用してください。フラグ名を推測しないでください。 - プログラムによる処理には
-f jsonを使用してください。 - まず小さな
--limit(10~20)を指定し、データの形式を確認してから、さらに取得してください。 - ブラウザー経由のアダプターを実行する前に、
strategyを確認してください。ユーザーがログインしていない場合、COOKIE/UIアダプターは失敗します。 - 読み取り専用です。書き込みコマンドはスキップしてください。 アダプター間でよく使われる書き込みコマンド名は、
post、reply、comment、like、unlike、upvote、save、subscribe、unsubscribe、follow、unfollow、block、unblock、delete、bookmark、unbookmark、send、create-draft、reply-dm、acceptです。コマンドが読み取りか書き込みか判断できない場合は、opencli list -f jsonのdescriptionを確認してください。変更を加えるコマンドだと思われる場合は、スキップしてください。
ステップ 6:失敗への対処
コマンドが空の結果を返すか、エラーになる場合、サイトのセレクターや API が変更された可能性があります。opencli には、自己修復のループが組み込まれています。
# Re-run with diagnostic context
OPENCLI_DIAGNOSTIC=1 opencli <site> <command> <args>
これにより、失敗したアダプターのソースパスを特定する構造化された RepairContext が出力されます。対応方法は次のとおりです。
- ユーザーが
opencli-autofixスキルをインストールしている場合は、そのスキルを実行するよう伝えてください。 - インストールしていない場合は、
RepairContextの出力を添えて https://github.com/jackwener/opencli/issues にイシューを登録するよう提案してください。 - 独自のスクレイピングに黙って切り替えないでください。上流レジストリにバグがあることが隠れてしまいます。
対象サイトのレート制限によって空の結果が返されることもあります。その場合は、しばらく待ってから再試行してください。
ステップ 7:結果の提示
- 生の JSON をそのまま出力するのではなく、ユーザーの実際の質問に合わせてデータを要約してください。
- 出典を明記してください。可能な場合は、各項目にサイト名と URL を記載します。
- 市場データでは、価格、変化率、出来高、時価総額を示し、異常値があれば明記してください。
- ニュースや投稿では、見出し、タイムスタンプ、重要な引用を取り上げてください。
- 調査(arXiv、Scholar)では、タイトル、著者、概要、リンクを含めてください。
- ブラウザーセッションは非公開情報として扱ってください。CDP エンドポイント、Cookie、認証トークンを決して出力しないでください。
参考ファイル
references/discovery.md—opencli list、opencli <site> --helpの使い方と、レジストリエントリーの JSON スキーマreferences/finance-sources.md— 金融関連アダプター(Yahoo Finance、Bloomberg、Eastmoney、Xueqiu、Barchart、Reuters、Reddit、HackerNews)の詳細と、読み取りコマンド/書き込みコマンドの一覧
特定のサイトについて具体例が必要な場合や、専用リーダーで扱われていない機能をユーザーが求めている場合は、これらの参考ファイルを読んでください。