Releases: HKUDS/Vibe-Trading
v0.1.9 — Connectors + Research Goal + swarm retry/reconcile + robustness
pip install -U vibe-trading-ai · 36 MCP tools · 77 skills · 29 swarm presets
A roll-up release covering everything since 0.1.8.
Highlights
- Connector-first broker profiles (IBKR + Robinhood). Trading access starts from a selectable connector profile instead of separate broker/live entry points;
vibe-trading connector list/use/check/account/positions/orders/quote/historyand the MCPtrading_*tools share the selected profile, with paper/live as an attribute of the connector. IBKR is usable immediately as a local read-only TWS / IB Gateway profile; the official IBKR remote MCP path is seeded as an OAuthmcp.readprobe until stable read tool names ship. Robinhood Agentic Trading is a bounded connector behind OAuth, a committed mandate, an order guard, an audit ledger, and an instant halt switch. - Research Goal runtime. Long-running, research-only goals with auditable checklist criteria, budgets, and a
/goalCLI command, plus REST + MCP endpoints and a Web GoalDrawer. - Swarm pass. Live reconcile + MCP keepalive (#132), operator-configured external MCP tools in workers (#142), DAG gating when an upstream task fails (#145), a strict alpha-bench random control (#143), and a new
retry_runto relaunch failed/stale runs — 36 MCP tools now. - CLI package refactor (
agent/cli/) with a refreshed terminal UI, plus amootdxno-token A-share loader and CCXT proxy-env support.
Fixes
--versionno longer drifts (#156) — derives from package metadata, falling back topyproject.toml; no hardcoded constant left to forget on release.- Robustness pass: pre-flight validation for LLM-generated signal engines (#149), graceful agent-loop exit at the iteration budget (#148),
flush + fsyncsession writes that skip corrupted JSONL on read (#147), and IME Enter handling in the Web composer (#146). - Session running-status indicator survives reconnect / reload / sidebar nav; cross-browser Full Report links (#150); configurable SSE idle timeout via
VIBE_TRADING_SSE_TIMEOUT(#157); cross-market correlation timestamp alignment (#158).
Contributors
Thanks to this cycle's contributors:
- @toanalien — session JSONL hardening (#147), graceful loop exit (#148), signal-engine pre-flight validation (#149), cross-browser Full Report links (#150)
- @ai7eam-dev — cross-market correlation alignment (#158), session running indicator + swarm retry (#159 → #160)
- @shadowinlife — remote MCP over SSE/HTTP (#125), worker external MCP tools (#142)
- @DoubleSky123 — configurable SSE idle timeout (#157)
- @ArthurXi — IME Enter handling (#146)
- @omcdecor-cyber — swarm DAG gating on failed upstream (#145)
- @Soli22de — strict alpha-bench random control (#143)
- @ruok808 — CCXT proxy-env support (#126)
- @faizack — remote Ollama base-URL normalization (#129)
- @fightZy — agent session history loading fix (#136)
- @lcwSeven — short universe names in the alpha list endpoint (#137)
- @Teerapat-Vatpitak — resolved .env-source logging (#124)
- @warren618 / Haozhe Wu — connector profiles, Robinhood Agentic Trading channel, Research Goal runtime, swarm reconcile + retry_run, CLI refactor, mootdx loader, release integration
Full Changelog: v0.1.8...v0.1.9
v0.1.8 — Alpha Zoo v1 (452 alphas across 4 zoos)
🧬 v0.1.8 — Alpha Zoo v1 + research workflow polish
v0.1.8 is a major content release for Vibe-Trading. The headline is the Alpha Zoo: 452 pre-built quantitative alphas across four bundled libraries — qlib158, alpha101, gtja191, and academic — with a one-line CLI to bench any zoo on your universe, agent integration via two new tools, four new REST routes with SSE-streamed progress, and a browse/detail/bench Web UI at /alpha-zoo. The release also lands the long-running MCP client integration, a Trust Layer run card in the Web UI, the public wiki launch at vibetrading.wiki, the Hypothesis Registry MVP, and a substantial security + hardening pass driven by community PRs.
This release is available on PyPI, ClawHub, and GitHub Releases.
pip install -U vibe-trading-ai
# or
uv tool install --reinstall vibe-trading-aiHighlights
🧬 Alpha Zoo — 452 pre-built quant alphas across 4 zoos
Cross-sectional formulaic alphas with metadata, lookahead-banned at the operator layer, registry-validated, and reachable from CLI, agent, REST API, and Web UI:
- qlib158 — 154 alphas. Apache-2.0 port of Microsoft Qlib's
Alpha158feature handler, with the upstream commit SHA pinned in every adapted module's header and the upstream NOTICE bundled. - alpha101 — 101 alphas. Implementation of Kakushadze (2015) "101 Formulaic Alphas" (arXiv:1601.00991), written from the paper appendix. 19 industry-neutral alphas flag
requires_sector=Trueand skip cleanly on universes without sector tags. - gtja191 — 191 alphas. Implementation of Guotai Junan Securities' 2014 "191 Short-period Trading Alpha Factors" research report. Operator-mapping decisions (SMA / WMA / REGBETA / HIGHDAY interpretations) documented per alpha.
- academic — 6 factors. Fama-French 5 + Carhart momentum, shipped as honest price-based proxies (the canonical FF series need book-to-market / profitability / investment growth fundamentals we don't bundle). The nicknames carry a
[PRICE PROXY]prefix; Kenneth French's data library is referenced for users who need the canonical monthly returns.
Each alpha carries a __alpha_meta__ dict (formula LaTeX, theme, universe, columns_required, warmup, decay horizon, notes) validated by a pydantic extra="forbid" schema.
🖥️ One-line CLI
vibe-trading alpha list --zoo gtja191 --theme momentum --limit 10
vibe-trading alpha show gtja191_171
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20
vibe-trading alpha compare --all
vibe-trading alpha export-manifest --out wiki/alpha-library/manifest.jsonbench drives a Rich progress bar with live alpha-id + ETA banner, returns proper exit codes on failure, and silences scipy ConstantInputWarning noise. All five subcommands honour TTY hints and a --json mode for scripting.
🌐 Web UI at /alpha-zoo + 4 REST routes with SSE
Three views in the React Web UI: Browse (4 zoo cards, filter bar, paginated table), Detail (formula, metadata, source code), Bench (form → SSE-streamed progress → Alive/Reversed/Dead stat cards + Top-5-by-IR + Most-Reversed tables + by-theme bar chart). Auto-Vite route at /alpha-zoo, nav entry in the Layout.
GET /alpha/list?zoo=&theme=&universe=&limit=
GET /alpha/{alpha_id}
POST /alpha/bench (body: {zoo, universe, period, top}) → 202 + job_id
GET /alpha/bench/{job_id}/stream (SSE: progress / result / done / error)
Background bench jobs run via asyncio.to_thread with a 2-concurrent-job semaphore (429 on saturation), in-memory state with 1-hour TTL, 15-second heartbeat comment frames to keep proxies from closing idle streams, and sanitised error messages so unexpected exceptions don't leak server-side paths.
🤖 Agent integration
Two new auto-discovered tools (AlphaZooTool, AlphaBenchTool) plus a panel-style ZooSignalEngine.from_zoo(...) factory in the multi-factor skill that composes one or more alphas into a long-short signal compatible with the existing backtest engines. The legacy per-symbol example_signal_engine.py is preserved for backward compatibility.
🛡️ Safety floor
Quality gates that fire on every PR and vibe-trading alpha bench run:
- AST purity gate (
test_alpha_purity.py) — scans everyzoo/**/*.pymodule, allows onlypandas,numpy,scipy.*,src.factors.base,__future__,typing,math,dataclassesimports; bansos/sys/subprocess/socket/urllib/requests/httpx/pathlib/Path/open/eval/exec/compile/__import__plusbreakpoint/input/globals/locals/vars/__class__/__subclasses__/__mro__/__globals__/__builtins__, plus dunder-stringgetattraccess (including BinOp-concatenated dunders). - Lookahead sentinel test (
test_lookahead.py) — 300-row synthetic panel; corrupt rows past the probe; assert factor at probe unchanged within 1e-9. pytest-socketintegration — factors test suite runs network-disabled.- CI grep gates (
tools/ci_grep_gates.sh) — rejectsyaml.load(withoutsafe_load, the trademarked-name string in shipped artifacts, and any per-stock-code data leak inwiki/**/*.{json,csv,html}.
📡 MCP client integration (stdio v1)
The agent can now load tools from external MCP servers via ~/.vibe-trading/agent.json, opt-in per session via ALLOW_SESSION_MCP_SERVERS=1. Stdio transport only in v1; HTTP/SSE deferred. Tool-name collisions get a deterministic hash suffix; remote-tool failures normalise to error payloads instead of bubbling. Big thank-you to @shadowinlife (#83) for the end-to-end implementation and the security-conscious defaults.
🪪 Trust Layer run card in Web UI
The run detail page now renders run_card.json alongside metrics and artifacts, completing the UI half of the trust-layer work that landed earlier.
🧠 Hypothesis Registry (backend MVP)
create_hypothesis / update_hypothesis / link_backtest / search_hypotheses give research hypotheses a durable lifecycle, links to run cards, and invalidation notes. UI integration to follow.
🔬 Memory, swarm, and tooling hardening
A focused PR cycle from @Teerapat-Vatpitak strengthened the lower-level surfaces this release leans on:
PersistentMemory.add()hardened against length overflow, empty / whitespace-only names, and C0/C1 control bytes (#112)- Swarm error surfacing + output contract, Windows-safe store, path redaction (#119)
- MCP unresolved-symbol, finite options validation, row cap (#120)
- Bounded CCXT + OKX fetch with timeout / retry / budget (#121)
read_urlJina dependency disclosure + cache opt-out (#122)- API path-ID validation for run/session routes (#80, via @SJoon99)
Plus @hp083625 taught memory recall to treat underscores as token boundaries (#87) so mcp_wiring_test matches "mcp wiring", @voidborne-d kept the Vite dev proxy honoring VITE_API_URL and fixed CJK slug preservation (#82, #95), and @ykykj added the CLI startup preflight (#96).
🌐 Public wiki at vibetrading.wiki
The wiki ships its own Alpha Library renderer (wiki/scripts/build_alpha_library.py) that reads the manifest JSON and emits 452 per-alpha pages + 4 per-zoo overview pages, each with script-src 'none' CSP. The research-lab gains its first long-form post: "Which of the 191 GTJA alphas still work in 2026?" — aggregate IC, theme survival rates, and the top alphas that survive eight years of out-of-sample data on CSI 300 (2018-2025), with a survivorship-bias caveat.
Install / upgrade
| Channel | Command |
|---|---|
| PyPI | pip install -U vibe-trading-ai |
| uv tool | uv tool install --reinstall vibe-trading-ai |
| ClawHub (Claude Desktop / OpenClaw / MCP clients) | clawhub install vibe-trading or update the installed skill |
| Docker | docker compose pull && docker compose up -d |
Remote API/Web deployments should set API_AUTH_KEY and explicit trusted CORS origins. Local CLI and localhost Web UI workflows remain low-friction.
By the numbers
- 66 non-merge commits since
v0.1.6's successor branch (sincev0.1.7) - 452 pre-built quant alphas across 4 zoos
- 75 bundled finance skills (+ the
alpha-zooskill folder) - 31 default agent tools (was 29; +
alpha_zoo_tool, +alpha_bench_tool) - 29 swarm presets
- 6 data sources with auto-fallback: tushare, yfinance, okx, akshare, ccxt, futu
- 7 backtest engines + composite cross-market engine + options portfolio
- 22 MCP tools (alpha tools to be MCP-wrapped in
0.1.9) - 969 tests passing + 1 documented skip (
alpha101_096NaN-cascade on synthetic panel)
🙌 Credits
This release stands on the shoulders of giants. Heavy emphasis because the Alpha Zoo borrows mathematical content from decades of public research.
Code contributors this cycle
- @warren618 / Haozhe Wu — Alpha Zoo framework + 4 zoos, CLI, Web UI, REST + SSE API, bench runner, safety floor, wiki + research-lab post, multi-language READMEs, integration, release.
- @shadowinlife — MCP client integration (stdio, v1) (#83)
- @Teerapat-Vatpitak —
PersistentMemory.add()hardening (#112), swarm error surfacing + Windows-safe store + redaction (#119), MCP unresolved-symbol + options validation (#120), bounded CCXT + OKX fetch (#121),read_urlJina disclosure (#122) - @SJoon99 — API path-ID validation hardening (#80)
- @hp083625 — memory recall underscore tokenization (#87)
- @voidborne-d — CJK slug preservation in memory (#95), Vite dev proxy
VITE_API_URL(#82) - @ykykj — CLI startup preflight (#96)
- @mrbob-git — Tushare statement-field filtering (#76, #77)
- @Teerapat-Vatpitak (also) —
extend tokenizer + slug regex to Thai/Arabic/Hebrew/Cyrillic(#104)
Open-source software cited / bundled
- Microsoft Qlib team ([microsoft/qlib...
v0.1.7 — Security boundary hardening + research workflow polish
🛡️ v0.1.7 — Security boundary hardening + research workflow polish
v0.1.7 is a security-focused maintenance release for Vibe-Trading. It strengthens the default API, file, URL, generated-code, shell-tool, Docker, CLI/Web, and MCP/ClawHub boundaries while preserving the low-friction localhost workflow for normal CLI and Web UI users.
This release is available on PyPI, ClawHub, and GitHub Releases.
pip install -U vibe-trading-ai
# or
uv tool install --reinstall vibe-trading-aiHighlights
🛡️ Security boundary hardening
The main goal of this release is to make Vibe-Trading safer by default without turning local research workflows into configuration work.
- API authentication and read protection: non-local API use is now much stricter by default, and sensitive run/session/swarm read paths are protected consistently.
- Upload and local-file boundaries: upload handling and local file-reading tools now use tighter path/type boundaries, with regression tests covering the previously risky paths.
- Document and URL readers: local document reads and outbound URL reads now enforce stronger safety checks.
- Shell-capable tools: shell execution tools are gated by entry point / explicit opt-in, reducing accidental exposure in Web/API/Docker/MCP deployments.
- Generated strategy loading: generated backtest and Shadow Account strategy code is validated before execution/import.
- Docker baseline: the runtime image now runs as a non-root
vibeuser, and Docker Compose defaults are localhost-first. - Durability: the hardening is backed by regression tests across auth, upload, path safety, document reading, web reading, tool registry, backtest loading, and Shadow Account codegen.
Thanks to lemi9090 (S2W) for the coordinated security report and fast validation of the fix coverage before release.
⚙️ Web UI Settings
New Settings surfaces make provider/model, base URL, reasoning effort, and data-source credential state manageable from the Web UI, backed by local/auth-protected settings APIs and data-driven provider metadata. (#57)
🔥 Correlation heatmap
The new correlation dashboard/API computes rolling return correlations and renders an ECharts heatmap for portfolio and symbol analysis. Follow-up fixes aligned the frontend proxy and PR review blockers. (#64, #66)
🔐 OpenAI Codex OAuth provider
Vibe-Trading now supports the OpenAI Codex provider via ChatGPT OAuth login (vibe-trading provider login openai-codex), with Settings metadata and provider adapter tests. (#65)
🧭 A-share pre-ST filter skill
New ashare-pre-st-filter skill for A-share ST/*ST risk screening, with follow-up relevance filtering so securities-account list mentions do not inflate E2 penalty counts. (#63)
🖥️ Interactive CLI UX
Interactive mode now has a live bottom status bar for provider/model, session duration, last-run latency, and cumulative tool-call stats, plus prompt history navigation and cursor editing through prompt_toolkit. (#69)
🧩 Swarm preset inspection
vibe-trading --swarm-inspect <preset> and related plumbing make it easier to inspect swarm presets before running multi-agent workflows. (#73)
📈 Dividend analysis skill
Added the dividend-analysis bundled skill for income stocks, payout sustainability, dividend growth, shareholder yield, ex-dividend mechanics, and yield-trap checks.
🧰 Local dev workflow
Added a one-command local dev workflow through scripts/dev up|open|logs|stop, plus Codespaces support and frontend/backend dev ergonomics. This is intended to make clean local testing and demos much easier.
0.1.7 maintenance
- Release metadata: PyPI package, CLI banner, Web UI footer, Docker OCI labels, and ClawHub manifest are synced to
0.1.7. - CLI:
vibe-trading --versionnow reports the installed version. - ClawHub: manifest now reflects 74 bundled finance skills and the current MCP command surface.
- Frontend build deps: raised
vite,postcss, and related lockfile floors to audited patched versions. - Docs: README news was refreshed across all language variants before this release, while older entries remain collapsed.
- Tests: focused security, CLI, registry, packaging, and frontend build checks passed before publishing.
Install / upgrade
| Channel | Command |
|---|---|
| PyPI | pip install -U vibe-trading-ai |
| uv tool | uv tool install --reinstall vibe-trading-ai |
| ClawHub (Claude Desktop / OpenClaw / MCP clients) | clawhub install vibe-trading or update the installed skill |
| Docker | docker compose pull && docker compose up -d |
Remote API/Web deployments should set API_AUTH_KEY and explicit trusted CORS origins. Local CLI and localhost Web UI workflows remain low-friction.
By the numbers
- 26 commits since
v0.1.6 - 8 merged PRs
- 25 default agent tools, with 22 exposed through MCP
- 74 bundled finance skills (+ user-created skills)
- 29 swarm presets
- 6 data sources with auto-fallback: tushare, yfinance, okx, akshare, ccxt, futu
- 7 backtest engines + options portfolio
- 14 LLM providers
🙌 Contributors
Thanks to everyone who contributed code, docs, reports, review, and validation in this cycle:
- @GTC2080 / TaoMu — Web UI Settings and provider/data-source configuration APIs (#57)
- @BigNounce90 — validation CLI hardening for backtest
run_dirinput (#60) - @shadowinlife — A-share pre-ST filter skill (#63)
- @MB-Ndhlovu — correlation heatmap dashboard and review fixes (#64, #66)
- @ykykj — OpenAI Codex OAuth provider option (#65)
- @RuifengFu — interactive CLI live status bar and prompt editing (#69)
- @SiMinus — swarm preset inspection command (#73)
- @warren618 / Haozhe Wu — security hardening, release integration, docs, Docker, packaging, and local dev workflow
- lemi9090 (S2W) — coordinated security research, validation, and disclosure support
Changelog
Full changes: v0.1.6...v0.1.7
Merged PRs since v0.1.6 (8)
- #73 feat: add swarm preset inspection command — @SiMinus
- #69 feat(cli): add live streaming status indicator and arrow-key navigation to interactive mode — @RuifengFu
- #66 Feat/correlation heatmap — @MB-Ndhlovu
- #65 feat: add OpenAI OAuth provider option — @ykykj
- #64 Feat/correlation heatmap — @MB-Ndhlovu
- #63 feat(skill): add ashare-pre-st-filter — A股 ST/*ST 风险预测框架 — @shadowinlife
- #60 fix: validate backtest run_dir CLI input — @BigNounce90
- #57 feat: add model and data source settings UI — @GTC2080
All commits since v0.1.6 (26)
488abd9chore(release): prepare 0.1.7 — Haozhe Wud5558ebchore: add local dev workflow — Haozhe Wudfc5c14feat: add swarm preset inspection command (#73) — SiMinuse07cdc9Harden supplemental security boundaries — Haozhe Wu2cf19b6docs: collapse older readme news — Haozhe Wu292b673docs: refresh readme news for cli ux — Haozhe Wubb67dc7fix(tests): align CI path expectations — Haozhe Wu64da282Merge pull request #69 from RuifengFu/feat/cli-ux-improvements — Haozhe Wubf084b3Harden API and tool security defaults — Haozhe Wu3d171dcfeat(cli): add live status bar and arrow key navigation — RuifengFuf0c3eb6docs: refresh readme news and roadmap — Haozhe Wu9501baffeat(skills): add dividend analysis skill — Haozhe Wu7452610fix(frontend): proxy correlation endpoint — Haozhe Wueb5eda8Merge pull request #66 from MB-Ndhlovu/feat/correlation-heatmap — Haozhe Wub95bb41docs: sync multilingual news updates — Haozhe Wu0b95d68feat: add correlation heatmap dashboard (#64) — MB-Ndhlovudea99ecfeat: add OpenAI Codex OAuth provider option (#65) — ykj@hku3c9577ffix correlation PR review blockers — Malibongwe Ndhlovub22ca78fix(skill): harden ashare penalty relevance filtering — Haozhe Wu968b649feat(skill): add ashare pre-ST filter — shadowinlifebbbef46feat: cross-asset correlation heatmap dashboard — Malibongwe Ndhlovu8520bfefix(cli): remove broken rich.box import — Malibongwe Ndhlovu7259b42fix(cli): remove broken rich.box import — Malibongwe Ndhlovu3ccfa10docs: sync README updates for settings UI and validation CLI — Haozhe Wu282c881fix: validate backtest run_dir CLI input (#60) — BigNouncea015452feat: add model and data source settings UI (#57) — TaoMu
Validation before publishing
- PyPI upload completed and
vibe-trading-ai==0.1.7was installed from PyPI in a clean venv. - ClawHub
vibe-trading@0.1.7is published and marked latest. - Docker image label and runtime user were verified (
0.1.7, non-rootvibe). - Focused security and CLI/registry tests passed.
- Frontend production build passed.
npm audit --audit-level=moderatereturned 0 vulnerabilities.twine checkpassed for both wheel and sdist.
v0.1.6 — Swarm presets packaging fix
🚀 v0.1.6 — Critical packaging fix + community-driven features
If you installed vibe-trading-ai==0.1.5 via pip install or uv tool install, vibe-trading --swarm-presets returned No presets available and run_swarm was unusable. This release fixes that — please upgrade.
pip install -U vibe-trading-ai
# or
uv tool install --reinstall vibe-trading-aiHighlights
🐛 Swarm presets packaging fix (#55)
Preset YAMLs were declared via [tool.setuptools.data-files] in pyproject.toml, which lands them under <install-prefix>/.data/data/config/swarm/ rather than at <site-packages>/config/swarm/ where the loader looked. Editable installs (pip install -e .) happened to work because the source-tree path resolved correctly, so the bug only surfaced in published wheels — every pip install vibe-trading-ai==0.1.5 was broken on this code path.
Resolution: 29 preset YAMLs moved into agent/src/swarm/presets/ so they ship as ordinary package-data. Loader now resolves via Path(__file__).parent / "presets" — identical under editable installs and built wheels. Pinned by a 6-test packaging regression suite so this can't silently regress again.
Bug reported by @qxj — screenshots made it a 5-minute root cause hunt.
📊 Benchmark comparison panel
Backtest output now ships a benchmark comparison panel (ticker / benchmark return / excess return / information ratio) with yfinance-backed resolution for SPY, CSI 300, and other major indices. Contributed by @MB-Ndhlovu (#48).
🛡️ /upload streaming + size limits
The /upload endpoint streams the request body in 1 MB chunks and aborts past MAX_UPLOAD_SIZE with partial-file cleanup. The 50 MB cap is now actually enforced under malicious / oversized clients. Pinned by 4 regression tests. Contributed by @genoshide (#53).
📈 Futu data loader (HK + A-share)
6th data source — Futu OpenAPI integration for Hong Kong and A-share equities, with broker-grade real-time quotes. Contributed by @hamza-mobeen (#47).
🔧 vnpy CtaTemplate export skill
72nd skill — vnpy-export generates ready-to-run CtaTemplate strategy code for the vnpy backtest framework. Contributed by @hamza-mobeen (#46).
0.1.6 maintenance
- Loader: AKShare loader correctly routes ETFs (
510300.SH) and forex (USDCNH) to the right endpoints with hardened registry fallback - Workspace: Relative
run_dirnormalized to active run dir — fixes empty/relative paths in tool calls (#43, @Mothilal-M) - Security: Path containment enforced in
safe_path+ sandboxing for journal / shadow account tools - Build:
MANIFEST.inships.env.example/ tests / Docker files in sdist - Frontend: Route-level lazy loading shrinks initial bundle 688 KB → 262 KB
- Docs: README usage examples (#45, @hamza-mobeen)
- SKILL manifest: synced to 22 MCP tools / 72 skills / 6 data sources / 29 swarm presets
Install / upgrade
| Channel | Command |
|---|---|
| PyPI | pip install -U vibe-trading-ai |
| uv tool | uv tool install --reinstall vibe-trading-ai |
| ClawHub (Claude Desktop / OpenClaw) | clawhub install vibe-trading |
| Docker | docker compose pull && docker compose up -d |
By the numbers
- 27 agent tools (22 exposed via MCP)
- 72 bundled skills (+ user-created via full CRUD)
- 6 data sources with auto-fallback: tushare, yfinance, okx, akshare, ccxt, futu (new)
- 29 swarm presets, 7 backtest engines + options portfolio
- 13 LLM providers
🙌 New contributors
Huge thanks to everyone who opened a PR in this cycle — all 4 are first-time contributions to Vibe-Trading:
- @hamza-mobeen — Futu data loader (#47), vnpy CtaTemplate export skill (#46), README usage examples (#45) — three first-time PRs in one cycle 👏
- @MB-Ndhlovu — backtest benchmark comparison panel (#48)
- @genoshide —
/uploadstreaming + size limits (#53) - @Mothilal-M —
_normalize_tool_run_dirworkspace fix (#43)
Issue reporters who kept the surface area honest: thanks to @qxj for the high-quality #55 reproduction and to @myrassel for the OAuth feature suggestion (#49) we are tracking for a future release.
Changelog
Full changes: v0.1.5...v0.1.6
Merged PRs since v0.1.5 (6)
- #53 fix: stream uploads while enforcing API size limit — @genoshide
- #48 feat(cli): add benchmark comparison to backtest output — @MB-Ndhlovu
- #47 feat: add Futu data loader for HK and A-share equities — @hamza-mobeen
- #46 feat: add vnpy export skill for CtaTemplate strategies — @hamza-mobeen
- #45 docs: add usage examples to README — @hamza-mobeen
- #43 feat(loop): add _normalize_tool_run_dir function and corresponding tests — @Mothilal-M
v0.1.5 — Shadow Account + Trade Journal Analyzer
Highlights
Two new hero loops on top of the research agent — extract your own strategy from your broker journal, then backtest the shadow of how you should have traded.
👥 Shadow Account (new)
Upload a broker journal → LLM extracts your rules → run the rulebook across markets → 8-section HTML/PDF report showing exactly how much P&L you leave on the table to discipline breakdowns (rule violations, early exits, missed entries, counterfactual trades). 4 new tools (extract_shadow_strategy, run_shadow_backtest, render_shadow_report, scan_shadow_signals) + 1 skill.
📊 Trade Journal Analyzer (new)
analyze_trade_journal ingests 同花顺 / 东方财富 / 富途 / generic CSV exports → full trading profile (holding days, win rate, PnL ratio, drawdown) + 4 behavior diagnostics (disposition effect, overtrading, chasing momentum, anchoring).
📄 Universal File Reader (new)
read_document dispatches PDF, Word, Excel, PowerPoint, images (OCR), and 40+ text formats behind one unified envelope. read_url via Jina for web.
🧠 Agent Harness v2
- Persistent cross-session memory (
~/.vibe-trading/memory/) - SQLite FTS5 session search
- Self-evolving skills — full CRUD (save / patch / delete / skill_file)
- 5-layer context compression
- Read/write tool batching
- 107 new tests
0.1.5 maintenance
- Security:
python-multipart >= 0.0.18(CVSS 7.5 CVE floor) - MCP: 5 new tools exposed (trade journal + shadow account family), fixed
pattern_recognition→patternregistry name mismatch (was returning 404) - Docker parity: 9 runtime deps added to
requirements.txt(openpyxl, python-docx, python-pptx, pypdfium2, Pillow, ddgs, jinja2, matplotlib, weasyprint) — Docker image was silently missing these - CLI: banner version bumped to 0.1.5 (was stuck at 0.1.0)
- Frontend: sidebar + package.json version bumped to 0.1.5
- Tests:
test_skills.pyno longer leaks into~/.vibe-trading/skills/user/ - SKILL manifest: synced to 22 MCP tools / 71 skills / 29 swarm presets
Install / upgrade
pip install -U vibe-trading-ai==0.1.5Docker:
docker compose pull && docker compose up -dBy the numbers
- 32 tools (27 registry + 5 new)
- 22 MCP tools exposed
- 71 bundled skills (+ user-created)
- 7 backtest engines + options portfolio
- 13 LLM providers, 5 data sources with auto-fallback
- 29 swarm presets
🙌 New contributors
Huge thanks to everyone who opened a PR in this cycle — most of these are first-time contributions to Vibe-Trading:
- @Matheus083 — Docker Compose profile for frontend-only dev (#18)
- @trinhchien — Interactive
vibe-trading init.env bootstrap (#19) - @yule153604 — Chinese, Japanese, and Korean README translations (#21)
- @SoufianoDev — Arabic README translation + RTL layout (#24)
- @octo-patch — MiniMax provider config fix +
temperature=0clamp (#33) - @jiakeboge — Z.ai coding platform provider (#35)
Issue reporters who kept the surface area honest: thanks to everyone who filed #32, #30, #22, #20, #34 — your reports are what shipped this release.
Changelog
Full changes: v0.1.4...v0.1.5
Merged PRs since v0.1.4 (6)
- #35 feat: support Z.ai coding platform — @jiakeboge
- #33 fix: update MiniMax provider config and fix temperature=0 API error — @octo-patch
- #24 docs: add Arabic README translation — @SoufianoDev
- #21 docs: add Chinese, Japanese and Korean README translations — @yule153604
- #19 feat(cli): add interactive init env bootstrap — @trinhchien
- #18 feat: add docker-compose profile for frontend-only dev — @Matheus083
All commits since v0.1.4 (29)
2ef5cabfix: harden backtest engine with data validation and error isolation52c6f45fix: add runtime fallback when primary data source returns emptyfd6c3f4docs: reorganize .env.example and add missing variables71fff97fix: inject current date and time into agent and swarm system prompts7a9921fdocs: add 2026-04-11 news to all README translations7885600feat: multi-platform indicator export (TradingView + TDX + MT5)2adeed4docs: add Arabic README translation and update language linkse194144Merge pull request #24 from SoufianoDev/mainb17aeecfix: add ddgs to dependencies for web_search tool668a610docs: add CODE_OF_CONDUCT and SECURITY policy26d2374feat: cross-market composite backtest engine with shared capital poolcb93d7dfix: swarm template variable fallback and frontend timeout reset7cf8f0efix: backtest MCP tool Connection closed on stdio transport (#32)2f41f37docs: condense README news section and add 2026-04-14 entry00f2708fix: update MiniMax provider config and clamp temperature=0 to 0.01 (#33)eb969e7feat: support Z.ai coding platform (#35)feef692fix: update cli init test for Z.ai provider insertion067a0f3docs: add 2026-04-15 news for Z.ai and MiniMax PRsb64a399feat: harness trading — persistent memory, session search, skill CRUD, 5-layer compression, tool batchinga471668docs: update all READMEs for harness trading releasebca4049docs: add recommended models section to all READMEs1717ad1feat: universal file reader — pdf/docx/xlsx/pptx/images/text67fb90efeat: trade journal analyzer — profile + behavior diagnosticsd626cbadocs: add 2026-04-17 news entry; collapse older entries behind details3b29677feat: shadow account — extract/backtest/render/scan + HTML report + skill148e8c1feat(ux): surface shadow account + trade journal in CLI, web, READMEd5fbd2cchore: bump to 0.1.5 + CVE floore90402fdocs: update skill counts + v0.1.5 news33ec7a9test: isolate user_skills_dir in test_skills
Closed issues in this cycle
- #32 backtest MCP tool "Connection closed" on stdio transport
- #30 Swarm Agent mode cannot execute
- #22 System prompt missing current date awareness
- #20 SSL certificate verification errors
- #34 Feature request: Z.ai coding platform
Full contributor graph: https://github.com/HKUDS/Vibe-Trading/graphs/contributors
v0.1.4
🚀 Vibe-Trading v0.1.4 is here — first public release, 22 PRs merged, 3 new contributors
Vibe-Trading is a natural-language finance research AI agent. Ask questions in plain language, get institutional-grade analysis with backtesting, multi-market data, and collaborative AI swarms.
This is the first official release — the full stack from agent engine to web UI, packaged and ready to use.
Highlights
- ReAct Agent Engine — 21 tools + 68 skills across 7 categories, natural language → structured finance research
- Multi-Provider LLM — 11 providers (OpenRouter, DeepSeek, Groq, Gemini, Ollama, etc.) with hot-swap via
.env - 6 Backtest Engines — ChinaA, GlobalEquity, Crypto, ChinaFutures, GlobalFutures, Forex + options portfolio (#7, #8)
- Statistical Validation — Monte Carlo permutation, Bootstrap Sharpe CI, Walk-Forward analysis with 15 metrics + benchmark comparison
- 5 Data Sources with Auto-Fallback — tushare / okx / yfinance / akshare / ccxt, cross-market
source="auto" - Swarm Intelligence — 29 team presets (investment committee, quant desk, risk committee), DAG execution with real-time SSE dashboard
- Pine Script v6 Export — Generate TradingView-compatible strategies from backtest results
- MCP Server — 17 tools for Claude Desktop / Cursor / OpenClaw integration
- Frontend — Vite + React 19 chat interface with real-time swarm streaming
- Docker — Full-stack + frontend-only profiles (#18)
- Interactive Init —
vibe-trading initfor guided.envbootstrap (#19) - Startup Preflight — Auto-check LLM connectivity and data source availability before first query
- 236 Unit Tests + CI — pytest integration with GitHub Actions
- Multi-language README — English, 中文, 日本語, 한국어 (#21)
Community
Welcome to our first contributors!
- @yule153604 — Chinese, Japanese, Korean README translations (#21)
- @trinhchien — Interactive
initenv bootstrap (#19) - @Matheus083 — Docker frontend-only dev profile (#18)
This release isn't just about features — it's about making Vibe-Trading accessible to everyone. Zero-config data for all markets, one-line install, and documentation in 4 languages.
Full Changelog: 34eae37...v0.1.4