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
}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 279 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!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
聞くだけで、勝手に計画を立てて、複数のデータソースを横断して、自分で検証しながらレポートまで仕上げる。
EDINET DB + J-Quants で動く、日本株特化の金融AIエージェント。 virattt/dexter(米国株版)をフォークし、日本市場向けに全面改修。

よくある金融ツールは「スクリーニングできます」「財務データ見れます」で終わる。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上から切替可能:
CLIだけでなく、Slack・Discord経由でも使える。bun run gateway で起動:
| チャネル | 方式 | 公開URL | 環境変数 |
|---|---|---|---|
| Slack | Socket Mode (WebSocket) | 不要 | SLACK_BOT_TOKEN + SLACK_APP_TOKEN |
| Discord | Gateway (WebSocket) | 不要 | DISCORD_BOT_TOKEN |
| LINE | Webhook (HTTP) | 必要 | LINE_CHANNEL_SECRET + LINE_CHANNEL_ACCESS_TOKEN |
| Baileys (WebSocket) | 不要 | QRコードでログイン |
設定された環境変数に応じて、対応するチャネルだけが起動する。複数チャネル同時稼働可能。
xapp-で始まるトークン)chat:write, im:history, im:read, app_mentions:readmessage.im(DM受信), app_mention(メンション受信)xoxb-で始まる)をコピー.env に設定:
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
サーバー内ではスレッド返信、DMでは直接返信。
botSend Messages, Read Message History, Send Messages in Threads.env に設定:
DISCORD_BOT_TOKEN=MTQ4...
サーバー内では @Bot名 メンションでスレッド返信、DMでは直接返信。
LINEはWebhook方式のため、外部からアクセス可能なURLが必要(Slack/Discordとは異なる)。
https://{your-domain}/webhook/line を設定.env に設定:
LINE_CHANNEL_SECRET=your-channel-secret
LINE_CHANNEL_ACCESS_TOKEN=your-channel-access-token
WEBHOOK_PORT=3000 # デフォルト
公開URL(Webhook)の用意:
ngrok http 3000 → 生成されたURL + /webhook/line をWebhook URLに設定bun run gateway # 設定済みの全チャネルが同時に起動
| ソース | 内容 | 必須? |
|---|---|---|
| EDINET DB | 財務データ、有報テキスト、スクリーニング、AI分析(~3,800社) | 必須 |
| J-Quants | 株価OHLC(東証公式) | オプション |
| Web検索 | Exa / Perplexity / Tavily | オプション |
| Original (US) | JP Version | |
|---|---|---|
| データソース | Financial Datasets API | EDINET DB API |
| 市場 | 米国株 | 日本株(~3,800社) |
| 開示書類 | SEC 10-K/10-Q/8-K | 有価証券報告書 (EDINET) |
| 決算 | 8-K earnings | TDNet 決算短信 |
| 株主情報 | SEC Form 4(インサイダー) | 大量保有報告書(5%超) |
| 株価 | Financial Datasets | J-Quants V2(TSE公式) |
| スクリーニング | GICS分類 | 33業種、100+指標 |
| DCF | 米国金利(~4%) | 日本国債(~1%) |
| 言語 | 英語 | 日本語 + 英語 |
MIT