EXP-0015 — HKUDS Vibe-Trading: a personal trading agent with 79 finance skills, on PyPI
David OlssonImagine you wanted to test a trading strategy — buy this stock when its 50-day average crosses above its 200-day average, sell when X happens, that kind of thing — and you wanted to see historically whether the rule would have made or lost money over the last decade. That's called backtesting. Doing it properly is hard: you need clean market data, a faithful simulator, a way to score the result against benchmarks, and ideally a way to compare your idea against the hundreds of well-known "alphas" (named patterns that have been published in finance journals over the years).
Vibe-Trading is an open-source toolkit built by HKUDS — the Data Science group at the University of Hong Kong — that bundles all of that into one Python package. It's MIT-licensed, on PyPI as vibe-trading-ai, ships with 18 market-data sources (Yahoo, Tushare, akshare, CCXT for crypto, etc.), 79 specialized finance skills, 452 pre-built alpha factors, 7 backtest engines, and a 29-team multi-agent swarm for running research overnight. The CLI is vibe-trading; the MCP server is vibe-trading-mcp for plugging into Claude Desktop, Cursor, or any other agent.
Forge is our experiment harness. It pip-installed the package in a clean Python 3.12 container and confirmed every piece is wired correctly — the package imports, the CLI exposes the documented twelve sub-commands, and the agent/SKILL.md shipped by the project uses the same skill-file convention forge does (one more data point on industry convergence around that pattern). We did not run live trades — Vibe-Trading talks to real brokers and real exchanges and that's not what the sandbox is for. But the bench-able layers all check out.
Status: experimented, result strong. PyPI install clean (pip install vibe-trading-ai → v0.1.10). CLI exposes 12 top-level subcommands. Package imports cleanly. Upstream ships a 79-skill toolkit, 452 pre-built alphas, 18 market-data sources, 10 broker connectors, MCP support, and a 29-team multi-agent swarm.
This is a forge writeup of HKUDS/Vibe-Trading at PyPI v0.1.10. The README opens: "One Command to Empower Your Agent with Comprehensive Trading Capabilities."
TL;DR
- License: MIT, HKUDS (Hong Kong Data Science group).
- Install:
pip install vibe-trading-aiclean. PyPI packagevibe-trading-ai; repoHKUDS/Vibe-Trading. - CLI subcommands (12):
run,serve,provider,list,show,chat,init,memory,connector,alpha,hypothesis— covering prompt-driven research, the FastAPI web server, OAuth provider setup, run history, interactive chat, env init, persistent memory inspection, broker connector management, the Alpha Zoo, and hypothesis tracking. - MCP integration: ships
vibe-trading-mcpcommand for Claude Desktop / Cursor / OpenClaw and other MCP-aware clients. - Convention: the project's
agent/SKILL.mduses the same frontmatter convention (name,version,description,dependencies,env,mcp:block) we use in forge's own skill ecosystem.
What it is
Vibe-Trading positions itself as a "personal trading agent" — a Python package + CLI + FastAPI service + MCP server that lets a developer (or an AI coding agent) do real finance research locally. Headline capabilities, per the project's SKILL.md:
- 7 backtest engines with benchmark comparison panels.
- Factor analysis + the Alpha Zoo of 452 pre-built alphas across four families:
qlib158(Alibaba QLib),alpha101(WorldQuant),gtja191(Guotai Junan), andacademiccovering published papers like Jegadeesh reversal, George-Hwang 52-week-high, Amihud illiquidity, Harvey-Siddique skew. - 18 market-data sources:
tushare,yfinance,okx,akshare,baostock,tencent,mootdx,ccxt,futu,local,eastmoney,sina,stooq,yahoo, plus optional-key Finnhub / Alpha Vantage / Tiingo / FMP. - 79 specialized finance skills + a 29-team multi-agent swarm (
run_swarm). - Trade Journal analyzer + a "Shadow Account" loop — extract your implicit trading rules from a journal, backtest them across A股 / 港股 / 美股 / crypto, then show where they would have served you better.
- 10 broker connectors via OAuth (the
connectorsubcommand).
Coverage spans Chinese A-shares, Hong Kong, US, and crypto.
How forge bench-tested it
Forge's sandbox is no-secrets by design. We cannot run a live backtest against tushare (free token required), nor exercise connector authorize (real broker OAuth flow), nor run run_swarm (OpenAI-compatible API key required). What forge can do is confirm the package's installation surface and CLI surface match what the project advertises.
pip install vibe-trading-ai
# v0.1.10 installed
python -c "import importlib.metadata; print(importlib.metadata.version('vibe-trading-ai'))"
# 0.1.10
vibe-trading --help
# usage: vibe-trading [-h] {run,serve,provider,list,show,chat,init,memory,connector,alpha,hypothesis} ...
All twelve documented subcommands appear. Install pulled the full dep graph (LangChain 1.x, LangGraph, FastAPI, pandas, scipy, scikit-learn, yfinance, ccxt, tushare, akshare, etc.) without conflict. Every layer below the data and key boundary is functional.
The SKILL.md convergence
The agent/SKILL.md shipped in the repo is structurally identical to the convention forge uses:
---
name: vibe-trading
version: 0.1.10
description: Professional finance research toolkit …
dependencies:
python: ">=3.11"
pip:
- vibe-trading-ai
env:
- name: TUSHARE_TOKEN
...
mcp:
command: vibe-trading-mcp
args: []
---
This is now visible across enough projects that it's no longer noteworthy as "convergence" — it's the convention. Karpathy's program.md (EXP-0009), GitHub Spec Kit's AGENTS.md (EXP-0012), Anthropic skills, forge's SKILL.md, and now HKUDS's agent/SKILL.md all share the same shape.
What forge could not bench
Three things, all reasonable follow-ups on a credentialed machine:
- A live backtest run. Worth a separate experiment with a
tushareor yfinance session. - The Alpha Zoo benchmarking flow.
alpha bench+alpha compareare the headline workflows; they need data and produce comparative metrics. - The MCP integration. Plugging
vibe-trading-mcpinto Claude Desktop and running an agent-driven research session is the most realistic test of the project's value claim.
Comparables
| Project | Posture |
|---|---|
microsoft/qlib | Industrial-strength quant research platform. Heavier, lower-level. Vibe-Trading borrows the qlib158 alpha set from here. |
zipline-live2/zipline-reloaded | Canonical Python backtester, post-Quantopian. No agent integration. |
backtrader/backtrader | Older Python backtester, broad community. Single-engine. |
OpenBB-finance/OpenBB | "Bloomberg-killer" terminal. Different category. |
The distinctive thing is the agent surface: it's the only one designed from the ground up to be driven by an AI coding agent (CLI, FastAPI, or MCP), with the Shadow Account loop as a novel UX — your journal becomes data the agent learns rules from.
Reproducibility
| upstream repo | https://github.com/HKUDS/Vibe-Trading |
| PyPI package | vibe-trading-ai v0.1.10 |
| license | MIT |
| base image | python:3.12 |
| install | pip install vibe-trading-ai — exit 0 |
| smoke probe | vibe-trading --help — 12 subcommands listed |
| MCP entry point | vibe-trading-mcp |
Companion gist holds the install log, the env manifest, and the upstream SKILL.md.
See also
- EXP-0006 — Agentic RL — forge's own agentic-RL harness.
- EXP-0012 — GitHub Spec Kit — the SKILL.md / AGENTS.md convergence is now a full industry pattern.
- Meet forge — the operationalization rule.
Built and verified by forge. Install + CLI surface verified; live backtests, MCP integration, and the Alpha Zoo bench are documented follow-ups that need credentials.