by edinetdb
日本株の自律型リサーチAIエージェント|AI agent for deep financial research on Japanese listed companies. Powered by EDINET DB + J-Quants.
# Add to your Claude Code skills
git clone https://github.com/edinetdb/dexter-jpLast scanned: 5/30/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@babel/plugin-transform-modules-systemjs: @babel/plugin-transform-modules-systemjs generates arbitrary code when compiling malicious input",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@langchain/ollama: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@protobufjs/utf8: protobufjs has overlong UTF-8 decoding",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@whiskeysockets/baileys: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@whiskeysockets/libsignal-node: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "brace-expansion: brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "file-type: file-type affected by infinite loop in ASF parser on malformed input with zero-size sub-header",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "handlebars: Handlebars.js has JavaScript Injection via AST Type Confusion by tampering @partial-block",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "langsmith: LangSmith Client SDKs has Prototype Pollution in langsmith-sdk via Incomplete `__proto__` Guard in Internal lodash `set()`",
"severity": "high"
},
{
"type": "npm-audit",
"message": "minimatch: minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"severity": "high"
},
{
"type": "npm-audit",
"message": "music-metadata: music-metadata has an infinite loop vulnerability in ASF parser",
"severity": "high"
},
{
"type": "npm-audit",
"message": "picomatch: Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
"severity": "high"
},
{
"type": "npm-audit",
"message": "protobufjs: Arbitrary code execution in protobufjs",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "uuid: uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "ws: ws: Uninitialized memory disclosure",
"severity": "medium"
}
],
"status": "FAILED",
"scannedAt": "2026-05-30T15:17:27.867Z",
"npmAuditRan": true,
"pipAuditRan": true
}See how dexter-jp compares with popular alternatives.
dexter-jp is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by edinetdb. 日本株の自律型リサーチAIエージェント|AI agent for deep financial research on Japanese listed companies. Powered by EDINET DB + J-Quants. It has 310 GitHub stars.
dexter-jp failed SkillsLLM's automated security scan, which flagged one or more high-severity issues. Review the Security Report section carefully before using it.
Clone the repository with "git clone https://github.com/edinetdb/dexter-jp" and add it to your Claude Code skills directory (see the Installation section above).
dexter-jp is primarily written in TypeScript. It is open-source under edinetdb on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh dexter-jp against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
聞くだけで、勝手に計画を立てて、複数のデータソースを横断して、自分で検証しながらレポートまで仕上げる。
EDINET DB + J-Quants で動く、日本株特化の金融AIエージェント。 virattt/dexter(米国株版)をフォークし、日本市場向けに全面改修。

本プロジェクトは教育・娯楽・情報提供のみを目的としています。実際の取引や投資判断のために使用することは意図していません。
本ソフトウェアを利用することにより、学習・情報提供の目的のみに使用することに同意し、利用に伴う一切のリスクを受け入れたものとします。
自分の仮説を、その会社の有価証券報告書の段落に 1 本ずつ当てて、「裏付ける」「食い違う」「無関係」を出典つきで返します。会社自身が何と書いたかを並べるだけで、売買の判断はしません。
/check 9983 中国事業は回復していると会社は説明している
仮説を主張に分け(原文と並べて見せます)、有報の対象節を段落に切り、段落ごとに主張を当てます。段落から確かめられなければ「判定不能」で止めます。モデルに埋めさせません。
パネルには、仮説の原文、分けた主張、判定の根拠になった会社自身の段落(doc_id・提出者・書類種別・節つき)、検査した範囲と未検査数が出ます。
DEXTER_SKIP_BROWSER=1 bun install
bun run demo
bun run demo は記録済みの実行を再生します。鍵は要りません。外部への通信もありません。画面に「録画の再生」と出ます。
DEXTER_SKIP_BROWSER=1 は Chromium(130MB 超)のダウンロードを飛ばします。browser ツールを使うときだけ入れ直してください。
| 鍵 | できること | |
|---|---|---|
| 1 | なし | bun run demo(録画の再生) |
| 2 | EDINETDB_API_KEY + TYPESAFE_API_KEY |
/check が動く |
EDINET DB の鍵はこちらから無料で取れます(会員登録が要ります)。
/check は TYPESAFE_API_KEY が無いと動きません。 手元の LLM にラベルだけ代行させる構成でも動くようにはしていません。理由は測った結果です。
/check の入口には、売買や株価の水準についての助言を求める入力を判定に進めない検査があります。この検査は「決まった語彙と言い回しの検査」と「判定層の票」の 2 つでできていて、片方だけでは足りません。実装も語彙リストも見せずに別のモデルに書かせた 30 本の助言入力で測ると、こうなりました。
| 検査 | 素通りした数 | 正常な 20 本の誤検知 |
|---|---|---|
| 決まった語彙と言い回しだけ | 12/30 | 0/20 |
| 判定層(Jev)の票だけ | 1/30 | 0/20 |
| 2 つを合わせたもの(実装の形) | 0/30 | 0/20 |
| 決まった語彙 + 手元の LLM の票 | 8/30 | 0/20 |
手元の LLM で代行すると 30 本のうち 8 本が素通りします。素通りさせたまま動かすより、止まる方を選びました。鍵を入れる前に何が返るかは bun run demo で見てください。
/check と /watch は、売買の指示・目標株価・建玉の大きさを出力しません/check の記録は端末内の .dexter/checks/ に残ります。消したいときはこのディレクトリを消してください| 送信先 | 何が送られるか | いつ | 誰の鍵・契約 | 既定 |
|---|---|---|---|---|
| EDINET DB | 銘柄コードと API の要求(有価証券報告書の本文・財務データ・開示イベントの取得) | EDINETDB_API_KEY | あなたの EDINET DB の鍵 | 有効 |
| 選択中の LLM プロバイダ | あなたの仮説の文、有価証券報告書の段落、会話の内容(分解・要約・自由質問) | 選んだプロバイダの鍵(/model で切り替え) | あなたの鍵・契約 | 有効 |
| TypeSafe(Jev、米国) | あなたの仮説から分けた主張と、有価証券報告書の段落(1 段落ずつ) | TYPESAFE_API_KEY | あなたの TypeSafe の鍵 | 無効 |
| 会話履歴の埋め込み(OpenAI → Gemini → Ollama の順で自動選択) | 会話の全文(あなたの入力とエージェントの応答)。選択中の LLM とは独立に決まります — /model で Claude を選んでいても、OPENAI_API_KEY があれば OpenAI に送られます | 既定で有効。OPENAI_API_KEY / GOOGLE_API_KEY / OLLAMA_BASE_URL のいずれか | あなたの鍵 | 有効 |
| LangSmith | LangChain のプロンプトとツールの結果(トレース) | LANGSMITH_TRACING=1 | あなたの LangSmith の鍵 | 無効 |
| J-Quants | 銘柄コードと日付(株価の取得) | JQUANTS_API_KEY | あなたの J-Quants の契約 | 無効 |
| Web 検索プロバイダ(Tavily / Exa / Perplexity / LangSearch) | 検索語(/search で選んだプロバイダにだけ送られます) | 選んだプロバイダの鍵 | あなたの鍵 | 無効 |
| X(旧 Twitter) | 検索語(あなたが入力した、またはエージェントが組み立てた検索の語句) | X_BEARER_TOKEN | あなたの鍵 | 無効 |
| Ollama(既定では手元、設定すれば別のホスト) | 会話の内容・埋め込みの対象テキスト | OLLAMA_BASE_URL / OLLAMA_CLOUD_API_KEY | —(手元で動かす場合は外に出ません) | 無効 |
| OpenRouter | 会話の内容(OpenRouter 経由のモデルを選んだ場合) | OPENROUTER_API_KEY | あなたの鍵 | 無効 |
| Moonshot | 会話の内容(Kimi を選んだ場合) | MOONSHOT_API_KEY | あなたの鍵 | 無効 |
| DeepSeek | 会話の内容(DeepSeek のモデルを選んだ場合) | DEEPSEEK_API_KEY | あなたの鍵 | 無効 |
| メッセージングのゲートウェイ(Slack / Discord / WhatsApp / LINE) | エージェントの応答(ゲートウェイを起動した場合のみ) | それぞれのゲートウェイを起動したとき | あなたのトークン | 無効 |
TypeSafe(Jev)について、「保存しない」とは書きません。同社は入力を学習データに含めない旨を規約で定めていますが、Telemetry の生成・不正対策・法令対応のための処理権を留保しています。各サービスの規約はご自身でご確認ください。
会話履歴の埋め込みは既定で有効で、選択中の LLM とは独立に送信先が決まります。/model で Claude を選んでいても、.env に OPENAI_API_KEY があれば会話は OpenAI に送られます。起動時に、.env に設定された鍵から、そのセッションで外へ出うる先の一覧が出ます(一覧への掲載は実際の送信を意味しません。送信の条件は機能ごとに異なり、会話履歴の埋め込み先は自動で選ばれます)。
bun run demo が再生する段落は、有価証券報告書の本文です。同梱データ(src/data/materials/)の段落と一字一句同じで(テストで照合しています)、そちらの 1 件ずつに書類管理番号・提出者・書類種別・箇所・取得日・出典表記・編集加工の主体を持たせています。
出典:EDINET閲覧(提出)サイト(https://disclosure2.edinet-fsa.go.jp/)、PDL1.0(https://www.digital.go.jp/resources/open_data/public_data_license_v1.0)
このデータは MIT ライセンスの対象外です。 利用条件は LICENSE-DATA に別に書いてあります。提出会社から差し替え・削除の要請があった場合の手順も同ファイルにあります。
このツールの出力を第三者に提供する形(公開のボットなど)で使う場合、あなた自身が金融商品取引法その他の規制を受ける可能性があります。
/check。分解と要約を SDK の単発呼び出しで回せるかを確かめていないので、この版では未対応です/watch は開示の取得と並べ替えまで実装済みですが、コマンドとしての配線は次の版です/check にまだ配線していないので、この版の /check は文章の主張だけを段落に当てます有価証券報告書の全文で回すと、セグメントや地域ごとの増益の段落を、連結の減益と食い違うと読み、判定が割れることがあります。トヨタ自動車の第122期の有報(MD&A・事業等のリスク・経営方針の 103 段落)で「営業利益が減ったのは為替の影響が主因だと会社は説明している」を回すと、3 つの主張とも「判定が割れている」になりました(減益は裏付け 12 / 食い違い 3)。bun run demo の録画は、同じ有報から選んだ 10 段落で回したものです。
よくある金融ツールは「スクリーニングできます」「財務データ見れます」で終わる。Dexter JPは違う。
「ソニーと任天堂、投資先としてどちらが優れているか分析して」 と聞くと:
これを1回の質問で、人間が介在せずにやる。ツールを1つ呼ぶだけの「データ取得」ではなく、複数のデータソースを横断した「分析」が自動で走る。
.envに設定するもの:
# === 必須 ===
# LLM(いずれか1つ。複数設定してもOK、CLI上で切替可能)
OPENAI_API_KEY=sk-... # OpenAI(デフォルト)
ANTHROPIC_API_KEY=sk-ant-... # Claude
GOOGLE_API_KEY=... # Gemini
XAI_API_KEY=... # Grok
OPENROUTER_API_KEY=... # OpenRouter(複数モデル利用可)
# 日本株データ
EDINETDB_API_KEY=edb_... # edinetdb.jp で取得(無料枠あり)
# === オプション ===
# 株価データ(設定すると get_stock_price ツールが有効化)
JQUANTS_API_KEY=... # jpx-jquants.com で取得(無料、期限なし)
# Web検索(設定すると web_search ツールが有効化。優先順: Exa → Perplexity → Tavily)
EXASEARCH_API_KEY=...
PERPLEXITY_API_KEY=...
TAVILY_API_KEY=...
# X/Twitter検索
X_BEARER_TOKEN=...
# ローカルLLM
OLLAMA_BASE_URL=http://127.0.0.1:11434
git clone https://github.com/edinetdb/dexter-jp.git
cd dexter-jp
bun install
cp env.example .env # 編集してAPIキーを設定
bun run start
複雑な問いを投げると、Dexterが自分で計画を立て、複数のデータソースを横断し、レポートを仕上げる:
トヨタの競争力を総合分析して。財務データ、有報のリスク要因、最新決算を踏まえてレポートにまとめて
ソニーと任天堂、投資先としてどちらが優れているか。財務健全性・収益性・成長性・リスクを比較して結論を出して
高ROE・高配当の割安銘柄を探して、トップ3の財務健全性と事業リスクを深掘り分析して
キーエンスのDCFバリュエーションをして。現在の株価水準が割高か割安か判断して
トヨタの直近5年の財務推移を見せて
ROE15%以上、自己資本比率50%以上の企業をスクリーニングして
任天堂の有報のリスク要因を読んで
配当利回り4%以上の高配当銘柄を探して
Analyze Toyota's competitiveness. Cover financials, risk factors from the annual report, and latest earnings.
Compare Sony vs Nintendo as investment targets with a final recommendation.
ユーザーの質問
↓
エージェントループ(LangChain)
↓ 計画 → ツール選択 → 実行 → 検証 → 繰り返し
↓
┌─────────────────────────────────────────┐
│ get_financials(メタツール) │
│ → get_financial_statements │
│ → get_company_info │
│ → get_key_ratios │
│ → get_analysis │
│ → get_earnings │
├─────────────────────────────────────────┤
│ read_filings │
│ → text-blocks(有報テキスト) │
│ → shareholders(大量保有報告書) │
├─────────────────────────────────────────┤
│ company_screener(100+ 指標) │
├─────────────────────────────────────────┤
│ get_stock_price(J-Quants V2) │
├─────────────────────────────────────────┤
│ web_search / browser / skills │
└─────────────────────────────────────────┘
↓
構造化されたレポート出力
get_financialsは単なるAPIラッパーではない。内部にLLMを持つルーティングエージェント:
「ソニーとトヨタの利益率を比較して」→ 内部で4つのAPI呼び出しが自動で走る。
複雑な多段階ワークフローはSKILL.mdで定義。DCFバリュエーションスキルを内蔵:
.dexter/RULES.md)自分の投資スタイルや分析方針をMarkdownで定義できる。設定した内容がシステムプロンプトに自動で反映され、Dexterの行動指針になる。
mkdir -p .dexter
cp RULES.md.example .dexter/RULES.md
# 自分のルールに書き換える
CLIで /rules と入力すると現在のルールを確認できる。
設定例:
長時間のリサーチセッションで大量のデータを取得した場合、高速LLMが自動的にデータをサマリに圧縮してコンテキストを節約する。単純なデータ削除ではなく、重要な数値・結論を保持した要約を生成するため、セッションを通じた分析の整合性が保たれる。
セッション間で記憶を保持。投資方針、ポートフォリオ情報、過去の分析結果を覚える。
/modelコマンドでCLI上から切替可能:
@anthropic-ai/claude-agent-sdk 経由で動く実行モード。エージェントのループを SDK に委譲し、認証は SDK が解決する(Dexter は認証フローを実装しない)。
/model で Claude Agent SDK プロバイダを選び、モデル(claude-fable-5 / claude-opus-4-8 / claude-sonnet-4-6)を選ぶだけで使える。API キーの入力は求められない。CLAUDE_CODE_OAUTH_TOKEN、ANTHROPIC_API_KEY のいずれでも動作する。どれが使われるかは SDK が環境から判断する。ANTHROPIC_API_KEY や CLAUDE_CODE_USE_BEDROCK / CLAUDE_CODE_USE_VERTEX など従量課金の資格情報が環境にある場合、起動時に検出結果を表示し、意図しない課金経路で走らないよう停止する(fail-loud)。その経路で実行したい場合は DEXTER_AGENT_SDK_ALLOW_METERED=1 を設定して再実行する。DEXTER_AGENT_SDK_MAX_BUDGET_USD(USD)を設定する。SDK 側の見積りがこの値に達すると停止する。