Vibe-Trading
CLI ToolHKUDS/Vibe-Trading
AI-powered personal trading agent with one-command setup and multi-broker support.
Overview
Vibe-Trading is an AI-driven personal trading agent that integrates LLMs, multi-agent orchestration, and broker connectors for automated trading. It supports backtesting, real-time market data, and safety controls. Provides CLI, REST API, MCP, and web interface. Enables users to deploy trading strategies with one command.
README Preview
\n English | 中文 | 日本語 | 한국어 | العربية\n\n\n\n \n\n\nVibe-Trading: Your Personal Trading Agent\n\n\n One Command to Empower Your Agent with Comprehensive Trading Capabilities\n\n\n\n \n\n\n\n \n \n \n \n \n \n \n \n \n\n\n\n Website · \n Docs · \n News · \n Features · \n Shadow Account · \n Demo · \n Quick Start · \n Examples · \n API / MCP · \n Roadmap · \n Contributing\n\n\n\n \n\n\n---\n\n## 📰 News\n\n- **2026-06-03** 🧹 **Community triage + trace correlation**: Tool-call trace entries now carry the originating `call_id`, so a `tool_result` can be matched back to its `tool_call` when replaying a run trace — arg previews stay truncated to keep trace files small ([#168](https://github.com/HKUDS/Vibe-Trading/pull/168), thanks @zwrong). Source comments no longer point at an internal-only docs path that external contributors couldn't find ([#166](https://github.com/HKUDS/Vibe-Trading/issues/166), thanks @jaleelpersonal). Also clarified that the `langchain-community` resolver warning on install is a harmless leftover-package notice, not a failure ([#167](https://github.com/HKUDS/Vibe-Trading/issues/167)), and scoped Gemini 2.5/3.0 `thoughtSignature` round-tripping for function calls as a `help wanted` task with a full fix plan ([#170](https://github.com/HKUDS/Vibe-Trading/issues/170), thanks @jliu6789).\n- **2026-06-02** 🔌 **Six new broker connectors (Tiger / Longbridge / Alpaca / OKX / Binance / Futu)**: The connector-first trading layer gains a direct-SDK transport alongside IBKR (local) and Robinhood (MCP). Each connector exposes read-only account / positions / orders / quote / history **plus paper-account order placement** — test your strategies across these broker paper accounts. Five of them (Tiger, Alpaca, OKX, Binance, Futu) also support **bounded, mandate-ga
FAQ (4)
TroubleshootingWhy does vibe-trading return a 401 error when using DeepSeek v4 pro API key?
The 401 error means the LLM provider is not configured correctly. Ensure .env (preferably ~/.vibe-trading/.env) contains:
LANGCHAIN_PROVIDER=deepseek
LANGCHAIN_MODEL_NAME=deepseek-v4-pro
DEEPSEEK_API_KEY=sk-your-deepseek-official-api-key
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
TIMEOUT_SECONDS=2400
Important:
- LANGCHAIN_PROVIDER must be deepseek, not openrouter.
- Do not mix OpenRouter and DeepSeek keys.
- Vibe-trading reads ~/.vibe-trading/.env first; if that file exists, update it instead of agent/.env.
TroubleshootingWhy does Vibe-Trading CLI swarm fail with '429 billing_not_active' error?
The swarm workers use their own LLM provider configuration, separate from the one used by Codex or single-task runs. The CLI swarm command starts the workflow but internal workers fail because the provider account configured via environment variables (e.g., LANGCHAIN_PROVIDER, LANGCHAIN_MODEL_NAME, DEEPSEEK_API_KEY in agent/.env or shell) is not active or has no billing setup. To resolve, check the agent/.env file, ensure the correct API key is set and that the provider account is active and billing is enabled. Then re-run the swarm command.
TroubleshootingWhy does Vibe-Trading show 'Execution failed: unknown' when the agent reaches max iterations?
This is a known bug (issue #114) where the session chat does not display the actual failure reason when the agent loop exhausts max_iterations. The true error is saved in the run's state.json file. Workaround: Locate the run directory (e.g., under data/runs/<run_id>/) and check the reason field in state.json: grep reason data/runs/*/state.json. The permanent fix is pending; track the repository for updates.
How-toHow to add mootdx as a data source in FinRL for A-share backtesting?
FinRL does not yet include built-in mootdx support (planned for next release). Temporary workaround: (1) Navigate to agent/backtest/loaders/, (2) Copy akshare.py to mootdx.py, (3) Adapt the loader to fetch data via mootdx library (TCP direct connection, no authentication, no IP blocking). Example: use mootdx to get K-line data by calling market.get_k_data(). For MCP-based integration, extend the agent to call mootdx via MCP server. Full official integration is tracked in this issue.