Vibe-Research: Personal AI Investment Research Dashboard
An open personal AI investment research agent for China A-shares (plus US/HK stocks) — aggregates market data and plugs into your own AI model for analysis.
- Source repo
- simonlin1212/Vibe-Research
- Stars
- ★ 2.7k
- Last updated
- 1d ago
- License
- MIT
- Primary language
- TypeScript
- FA score
- 59/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code · OpenAI API · Claude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- Daily market review for individual investors: use the 'Daily Review' page to see indices, global markets, short-term sentiment, capital flows, and generate an AI summary.
- Not a fit if
- Users who don't want to configure their own AI model or API key
- Traders wanting buy/sell recommendations or stock picks
- Source review
- 59/100 · Major gaps
What does this agent do, and when should you use it?
Vibe-Research is an open-source 'personal AI investment research dashboard' focused on China A-shares while supporting US and HK stocks. It combines market quotes, research reports, valuations, financials, announcements, capital flows, and news from public sources into a clean interface, and offers multiple ways to connect your own AI model (subscription CLI, API key, MCP) for tasks like daily review, Q&A, and bull/bear debates. The project consists of a FastAPI backend (port 8900) and a React frontend (port 5899), with bundled data engines: a-stock-data (v3.6.0), global-stock-data (v2.0.3), and investment-news. It runs out-of-the-box after cloning. The core design emphasizes objective data presentation without stock recommendations or predictions; all analytical conclusions are generated by your own AI.
Vibe-Research runs a FastAPI backend (backend/, port 8900) and a React frontend (frontend/, port 5899). The backend uses astock.py, gstock.py, newsradar.py to provide A-share, US/HK stock data, and news aggregation, with a tools layer (tools.py) exposing 23 data tools. Users can connect AI in three ways: 1) Subscription CLI (cli_runtime.py) calls locally logged-in CLIs like Claude Code or Codex using the user's subscription; 2) API integration (chat.py) supports OpenAI-compatible endpoints with function-calling to auto-invoke data tools; 3) MCP server (mcp_server.py) for agents like Claude Code. Key features include daily review (global indices, short-term sentiment, capital flows), news radar (108 RSS sources), stock detail (valuation, financials, capital flows), and bull/bear debate (debate.py): first fetch 13 objective data points as a fact base, then bull and bear researchers argue based on the same data, with a neutral moderator summarizing consensus and divergences — deliberately no buy/sell conclusion. Reflection audit (reflection.py) reviews existing analyses. Portfolio, watchlist, and report uploads are stored locally in ~/.vibe-research/ and never uploaded.
- Daily market review for individual investors: use the 'Daily Review' page to see indices, global markets, short-term sentiment, capital flows, and generate an AI summary.
- Fundamental research on individual stocks: enter a ticker (A-share, AAPL, 00700) in 'Stock Detail' to view valuation, financials, capital flows, reports, and ask AI for five-dimension analysis.
- News intelligence gathering: use the 'News Radar' page to extract today's key points from 108 public RSS sources, filtered by your watchlist.
- Bull/bear debate: initiate a debate on a stock to get structured arguments from both sides based on the same objective fact base, highlighting agreements, disagreements, and verification checklists.
- Portfolio management: log holdings and closed positions in 'My Portfolio' to track real-time P&L; upload your own research reports (PDF/Word) auto-categorized by industry, stored locally.
- Reflection and audit: send previous AI analyses to the 'Reflection Audit' to detect unsupported claims and identify weak points in reasoning.
How do you install or deploy this agent?
- Clone the repo: git clone https://github.com/simonlin1212/Vibe-Research
- Backend: cd backend && python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
- Frontend: cd frontend && npm install
- Start backend: cd backend && .venv/bin/python -m uvicorn app:app --host 127.0.0.1 --port 8900
- Start frontend: cd frontend && npm run dev
- Open http://localhost:5899
No API key needed for data features; AI features require configuration in the 'AI Setup' page (CLI or API key).
How do you use this agent?
- After starting both servers, open the frontend.
- Configure AI in the 'AI Setup' page: choose Subscription CLI (requires a locally logged-in CLI) or API integration (paste key, baseURL auto-filled).
- On the 'Daily Review' page, view market data and click 'AI Daily Review' for a generated summary.
- On the 'Stock Detail' page, enter a ticker (e.g., 600519, AAPL, 00700) to view data and click 'Ask AI' for analysis.
- On the 'Watchlist' page, paste codes in bulk to add, toggle real-time quotes for auto-refresh.
- On the 'Bull/Bear Debate' page, select a stock and start a debate (~100 seconds), then review the consensus and disagreements.
- Log holdings in 'My Portfolio' and upload reports in 'My Reports' — all stored locally.
What are this agent's strengths and limitations?
- Comprehensive data out-of-the-box: bundled A-share, US/HK stock, and news data sources work immediately without extra setup; snapshots ensure reliability.
- Flexible AI integration: supports subscription CLI (claude-code, codex), API key (DeepSeek, OpenAI, etc.), and MCP, giving users control over model choice and cost.
- Innovative multi-agent debate: the bull/bear debate uses an objective fact base and deliberately avoids buy/sell conclusions, helping users see divergences and verification checklists instead of making decisions for them.
- Strong local privacy: portfolio, watchlist, reports, and API keys are stored locally only, never uploaded, and survive redeployment.
- Clear compliance stance: no stock recommendations, no predictions, only objective data presentation — suitable for compliance-conscious users.
- Bull/bear debate is resource-heavy: one round takes ~100 seconds and 3 model calls, double for two rounds, adding latency and token costs.
- Requires users to bring their own AI model: without a subscription CLI or API key, core AI analysis is unavailable, requiring additional setup.
- Data sources are rate-limited: built-in throttling may still hit upstream limits during heavy use.
- Frontend uses React 19 and modern tooling; older Node.js environments may face compatibility issues.
How does this agent compare with similar options?
Compared to open-source multi-agent financial frameworks like TradingAgents or ai-hedge-fund, Vibe-Research deliberately omits a trader/portfolio-manager role that outputs buy/sell/position-size decisions. Instead its multi-agent endpoint is divergence and verification checklists, positioning it as a research tool rather than an auto-trader.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Vibe-Research: Personal AI Investment Research Dashboard This agent | 59 · Major gaps | Self-hosted serviceFree + model costs | ★ 2.7k | 1d ago | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
| FinnewsHunter Financial Intelligence | 29 · Major gaps | Self-hosted serviceFree + model costs | ★ 1.5k | 3mo ago | Python | OpenAI API |
| Agentic Company Researcher | 0 · Major gaps | Self-hosted serviceFree + model costs | ★ 2.3k | 3d ago | Python | OpenAI API |
| MindSearch Deep Search | 42 · Major gaps | Self-hosted serviceFree + model costs | ★ 6.9k | 1y ago | JavaScript | — |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows: README explicitly states API keys are stored only in local browser and not uploaded; holdings/reports are stored only in local user directory; there is a VR_API_KEY auth middleware (tested in test_fixes.py). However, no user confirmation mechanism (e.g., before deletion/overwrite) is found; data flow transparency (e.g., what data is sent to AI) is not detailed. Dependency security: no vulnerability scanning or lock files (requirements.txt exists but not reviewed). External effects (e.g., network requests) are not explicitly restricted. Rollback: data migration exists but no version rollback mechanism. Source attribution: data sources are clearly labeled (Eastmoney, Tencent, etc.), but no data licensing evidence.
Evidence shows: tests cover tool layer, debate, reflection, API validation, and test comments indicate fixes for multiple issues (e.g., dirty data, timeouts). Dependency availability: tiered dependency design (akshare/mootdx lazy import) and degradation handling (test_fixes.py) show service does not crash when dependencies missing. Failure messages: tests show errors return error field or 400/404 status codes, and CLI timeout has clear message.
Evidence shows: README clearly defines target users (individual investors) and scenarios (A-share/US/HK investment research), capability boundaries (no stock recommendations, no predictions), trigger precision (e.g., code format validation) tested, environment fit (local deployment, CLI/API/MCP integration) detailed.
Evidence shows: README structure clear, install steps explicit, naming stable (version number single source), examples (quick start, AI integration), known limitations (e.g., CLI does not support multi-turn tool calls) stated, MIT license, CHANGELOG present, maintenance responsibility (author Simon) clear.
Evidence shows: output usability (dashboard, reports, debate results) well designed, marginal value (multi-agent debate, reflection audit) distinctive, cost-benefit (debate cost table) explained.
Evidence shows: README claims correspond to test code (e.g., debate flow, data gap handling), but cross-source corroboration insufficient (no evidence of multiple independent data sources cross-validated), fact-inference separation (dossier first, no speculation) clearly designed.
- No user confirmation mechanism found; delete/overwrite operations may be without prompt.
- Dependency security lacks vulnerability scanning or lock files; recommend reviewing requirements.txt and pinning versions.
- Data flow transparency insufficient; what data is sent to AI models is not detailed.
- External network requests not explicitly restricted; may access third-party data sources.
- Rollback mechanism missing; may not be able to revert after version upgrade.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
修 Windows 上的几个问题。界面和使用方式没有变化。闪窗口的修复来自社区 PR #53(感谢 @ruijh);其余是从 [Vibe AStock v2.1.1](https://github.com/simonlin1212/vibe-astock/releases/tag/v2.1.1) 搬回来的底座修复,其中前 4 个提交来自 vibe-astock PR #22(感谢 @Boomyuan,提交保留原作者署名)。 修复 - Windows 上深度研究时不停闪黑窗口(#53):复算、取数、计算库版本探测、体检、批量模式、压测、本机 Agent 账号探针和启动这几处子进程,启动时没声明隐藏窗口。复算是每条计算单独起一个进程,一次研究要起几十到上百次,所以看起来一直在闪。现在都隐藏窗口,其他系统不受影响。 - Windows 上没以管理员身份运行时,可能报「无法收紧 Windows 文件权限」、启动不了:私密文件原来用 PowerShell 的 Set-Acl 收紧,普通用户没有它需要的权限。现在改用系统自带的 icacls:断开继承,只给当前用户(按 SID)完全控制,别的账户单独挂的授权、文件上的拒绝规则都删掉,所有者不是当前用户时改回当前用户;收紧后马上复查,没收紧到位就报错。 …View on GitHub ↗ -
Release notes excerpt
修 v2.2.0 新加的报告数字核对和回测输出里的 4 个问题,都是 [Vibe AStock](https://github.com/simonlin1212/vibe-astock) 合并 v2.2.0 时的发版审计发现的;修复本身又做了一次独立复核,补了复核找到的 6 处。界面和使用方式没有变化,建议 v2.2.0 用户升级。 修复 - 引了用户资料或知识档案的数字,按位数和单位核对:v2.2.0 在资料片段、档案引文里找出处时会退回只比裸数字,资料写 120.5 亿元、报告写 120.5 万元(差一万倍)也不遮。现在按写出来的位数和单位换算后比对,正负号也要对;资料里写「百万港元」「billion」「个百分点」的按写的量级读,资料里的区间「31.2%-35.8%」右端不当负数;引了证据编号的行引档案旧值也按单位核对。 - 区间共用单位:「31.2-35.8 亿元」「31.3 至 35.8 亿元」左端没写单位时用右端写的单位,有出处的不再被遮;「999-1,500 亿元」这类整数左端借到单位后也要核对(原来按计数跳过)。 - 算式「≈」:结果只有一位有效数字时放得太宽,「30 ÷ 49 ≈ 100%」(实为 61%)也判对。现在放宽不超过结果的 5%,但不低于个位的半格,「≈ 2200」「≈ 58%」「10 ÷ 3 ≈ 3 倍」照旧算对。 …View on GitHub ↗ -
Release notes excerpt
把 [Vibe AStock](https://github.com/simonlin1212/vibe-astock) 改造时审计出的通用问题修回来,并定下上一版留着的三条取舍。界面和使用方式没有变化。 三条取舍 - 报告里找不到出处的数字遮掉:没引证据或计算编号的数字,交付前在本次取到的数据和计算里找出处(数据原文里有,或按写出来的位数和单位能对上,都算有出处;同一行引了本次用到的用户资料的,资料片段里有也算)。找不到的只把数字换成「〔未核实〕」,报告开头说明有几处,运行状态记为「不完整」。日期、编号、写明「假设 / 如果 / 情景」的行和表格、「数据缺口」一节不查;「31.2%-35.8%」这类区间按两个正数查。上线前拿本机 9 份历史报告试过:一处都没遮。 - 回测最后一天卖不出去的不再编一笔卖出:能卖的照旧按收盘价平仓;最后一天没有行情、A 股最后一天才买进的部分(T+1;最后一天加仓的只留加的那部分)、A 股收盘封在跌停的,按收盘价计入期末净值、不扣卖出费用,报告的口径披露里写明是哪几只、为什么,并说明胜率等按平仓记录算的指标不含它们。 - 持仓收益率里没填费用的买卖按 0 算并写明几笔,提示「费用合计偏少,收益率可能偏高」。明确填了 0 的不算。 主要修复 …View on GitHub ↗