Skip to content

Releases: HKUDS/Vibe-Trading

v0.1.9 — Connectors + Research Goal + swarm retry/reconcile + robustness

01 Jun 15:07

Choose a tag to compare

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/history and the MCP trading_* 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 OAuth mcp.read probe 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 /goal CLI 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_run to relaunch failed/stale runs — 36 MCP tools now.
  • CLI package refactor (agent/cli/) with a refreshed terminal UI, plus a mootdx no-token A-share loader and CCXT proxy-env support.

Fixes

  • --version no longer drifts (#156) — derives from package metadata, falling back to pyproject.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 + fsync session 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:

Full Changelog: v0.1.8...v0.1.9

v0.1.8 — Alpha Zoo v1 (452 alphas across 4 zoos)

17 May 12:28

Choose a tag to compare

🧬 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-ai

Highlights

🧬 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 Alpha158 feature 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=True and 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.json

bench 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 every zoo/**/*.py module, allows only pandas, numpy, scipy.*, src.factors.base, __future__, typing, math, dataclasses imports; bans os / sys / subprocess / socket / urllib / requests / httpx / pathlib / Path / open / eval / exec / compile / __import__ plus breakpoint / input / globals / locals / vars / __class__ / __subclasses__ / __mro__ / __globals__ / __builtins__, plus dunder-string getattr access (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-socket integration — factors test suite runs network-disabled.
  • CI grep gates (tools/ci_grep_gates.sh) — rejects yaml.load( without safe_load, the trademarked-name string in shipped artifacts, and any per-stock-code data leak in wiki/**/*.{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_url Jina 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 (since v0.1.7)
  • 452 pre-built quant alphas across 4 zoos
  • 75 bundled finance skills (+ the alpha-zoo skill 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_096 NaN-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-VatpitakPersistentMemory.add() hardening (#112), swarm error surfacing + Windows-safe store + redaction (#119), MCP unresolved-symbol + options validation (#120), bounded CCXT + OKX fetch (#121), read_url Jina 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...
Read more

v0.1.7 — Security boundary hardening + research workflow polish

06 May 12:11

Choose a tag to compare

🛡️ 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-ai

Highlights

🛡️ 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 vibe user, 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 --version now 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_dir input (#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)
  • 488abd9 chore(release): prepare 0.1.7 — Haozhe Wu
  • d5558eb chore: add local dev workflow — Haozhe Wu
  • dfc5c14 feat: add swarm preset inspection command (#73) — SiMinus
  • e07cdc9 Harden supplemental security boundaries — Haozhe Wu
  • 2cf19b6 docs: collapse older readme news — Haozhe Wu
  • 292b673 docs: refresh readme news for cli ux — Haozhe Wu
  • bb67dc7 fix(tests): align CI path expectations — Haozhe Wu
  • 64da282 Merge pull request #69 from RuifengFu/feat/cli-ux-improvements — Haozhe Wu
  • bf084b3 Harden API and tool security defaults — Haozhe Wu
  • 3d171dc feat(cli): add live status bar and arrow key navigation — RuifengFu
  • f0c3eb6 docs: refresh readme news and roadmap — Haozhe Wu
  • 9501baf feat(skills): add dividend analysis skill — Haozhe Wu
  • 7452610 fix(frontend): proxy correlation endpoint — Haozhe Wu
  • eb5eda8 Merge pull request #66 from MB-Ndhlovu/feat/correlation-heatmap — Haozhe Wu
  • b95bb41 docs: sync multilingual news updates — Haozhe Wu
  • 0b95d68 feat: add correlation heatmap dashboard (#64) — MB-Ndhlovu
  • dea99ec feat: add OpenAI Codex OAuth provider option (#65) — ykj@hku
  • 3c9577f fix correlation PR review blockers — Malibongwe Ndhlovu
  • b22ca78 fix(skill): harden ashare penalty relevance filtering — Haozhe Wu
  • 968b649 feat(skill): add ashare pre-ST filter — shadowinlife
  • bbbef46 feat: cross-asset correlation heatmap dashboard — Malibongwe Ndhlovu
  • 8520bfe fix(cli): remove broken rich.box import — Malibongwe Ndhlovu
  • 7259b42 fix(cli): remove broken rich.box import — Malibongwe Ndhlovu
  • 3ccfa10 docs: sync README updates for settings UI and validation CLI — Haozhe Wu
  • 282c881 fix: validate backtest run_dir CLI input (#60) — BigNounce
  • a015452 feat: add model and data source settings UI (#57) — TaoMu

Validation before publishing

  • PyPI upload completed and vibe-trading-ai==0.1.7 was installed from PyPI in a clean venv.
  • ClawHub vibe-trading@0.1.7 is published and marked latest.
  • Docker image label and runtime user were verified (0.1.7, non-root vibe).
  • Focused security and CLI/registry tests passed.
  • Frontend production build passed.
  • npm audit --audit-level=moderate returned 0 vulnerabilities.
  • twine check passed for both wheel and sdist.

v0.1.6 — Swarm presets packaging fix

28 Apr 09:49

Choose a tag to compare

🚀 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-ai

Highlights

🐛 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_dir normalized 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.in ships .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/upload streaming + size limits (#53)
  • @Mothilal-M_normalize_tool_run_dir workspace 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

19 Apr 03:20

Choose a tag to compare

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_recognitionpattern registry 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.py no 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.5

Docker:

docker compose pull && docker compose up -d

By 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:

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)
  • 2ef5cab fix: harden backtest engine with data validation and error isolation
  • 52c6f45 fix: add runtime fallback when primary data source returns empty
  • fd6c3f4 docs: reorganize .env.example and add missing variables
  • 71fff97 fix: inject current date and time into agent and swarm system prompts
  • 7a9921f docs: add 2026-04-11 news to all README translations
  • 7885600 feat: multi-platform indicator export (TradingView + TDX + MT5)
  • 2adeed4 docs: add Arabic README translation and update language links
  • e194144 Merge pull request #24 from SoufianoDev/main
  • b17aeec fix: add ddgs to dependencies for web_search tool
  • 668a610 docs: add CODE_OF_CONDUCT and SECURITY policy
  • 26d2374 feat: cross-market composite backtest engine with shared capital pool
  • cb93d7d fix: swarm template variable fallback and frontend timeout reset
  • 7cf8f0e fix: backtest MCP tool Connection closed on stdio transport (#32)
  • 2f41f37 docs: condense README news section and add 2026-04-14 entry
  • 00f2708 fix: update MiniMax provider config and clamp temperature=0 to 0.01 (#33)
  • eb969e7 feat: support Z.ai coding platform (#35)
  • feef692 fix: update cli init test for Z.ai provider insertion
  • 067a0f3 docs: add 2026-04-15 news for Z.ai and MiniMax PRs
  • b64a399 feat: harness trading — persistent memory, session search, skill CRUD, 5-layer compression, tool batching
  • a471668 docs: update all READMEs for harness trading release
  • bca4049 docs: add recommended models section to all READMEs
  • 1717ad1 feat: universal file reader — pdf/docx/xlsx/pptx/images/text
  • 67fb90e feat: trade journal analyzer — profile + behavior diagnostics
  • d626cba docs: add 2026-04-17 news entry; collapse older entries behind details
  • 3b29677 feat: shadow account — extract/backtest/render/scan + HTML report + skill
  • 148e8c1 feat(ux): surface shadow account + trade journal in CLI, web, README
  • d5fbd2c chore: bump to 0.1.5 + CVE floor
  • e90402f docs: update skill counts + v0.1.5 news
  • 33ec7a9 test: 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

11 Apr 03:20

Choose a tag to compare

🚀 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 Initvibe-trading init for guided .env bootstrap (#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!

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