Lumibot
One strategy class for backtest and live, plus a built-in LLM agent runtime.
by Lumiwealth
Last updated
What it is
An event-driven Python trading framework. You subclass Strategy, implement
on_trading_iteration(), and hand the same class either a backtesting data source or a live
broker: MyStrategy.backtest(YahooDataBacktesting, start, end) for the simulation,
MyStrategy(broker=Alpaca(config)) passed to a Trader for paper or live. Nothing in the
strategy body changes between the two, and self.is_backtesting exists for the cases where you
want it to. That is the same promise NautilusTrader makes, and it is
what separates both of them from Backtrader, whose live stores rest on
dependencies that stopped moving in 2017.
Where Lumibot genuinely differs is the shape of the venue list and the presence of an LLM agent
runtime. Options are first-class on the Strategy object — get_chain, get_chains,
get_strikes, get_greeks, get_expiration and get_multiplier are methods, not something you
assemble — and Polymarket prediction contracts can be both backtested and traded. Since 2026 the
package also ships an agent runtime: self.agents.create(name=..., model=..., allow_trading=...)
builds LLM agents that call market, order, options, SEC-filing, FRED and memory tools, and an
agent created with allow_trading=True submits orders through the same loop a Python strategy
uses. Agent decisions replay inside a backtest without a second model call.
The project moves fast: 4.5.91 shipped on 6 September 2026, the last commit to the default dev
branch is the same day, and 120 of its 640 PyPI releases landed during 2026. Not archived, 2,061
stars, 66 open issues. Python 3.10 or newer, with classifiers that stop at 3.12.
Pricing
The library is free and complete — every broker, every data backend and the agent runtime are in the package. BotSpot is the managed cloud the same company sells around it, and it has no free tier: Light is 24.50 USD a month and Starter 49.50, both halved from 49 and 99 list on 14 September 2026, then 199 and 399 for Pro and All Access, with capacity measured in live bots, backtesting hours, AI credits and strategy revisions. Education is priced separately and is not part of this catalogue — a self-paced bootcamp at 499 USD (from 997) and a five-week live cohort at 2,999 USD, both on the same pricing page, with the repository's own README carrying the bootcamp banner.
Data & coverage
None of its own, like everything else in this category. Fourteen backtesting classes are exported
from lumibot.backtesting, covering ten sources — Yahoo, Alpaca, Alpha Vantage, Polygon,
ThetaData, DataBento, Interactive Brokers REST, Polymarket, CCXT and a Pandas/CSV loader — plus a
router that sends each asset type to a different provider. The README's own table is blunt about
the difference that matters — only Yahoo and the Pandas loader carry dividends and
dividend-adjusted returns; Alpaca, Polygon
and Tradier are split-adjusted only. Yahoo is the free default and the reason a first backtest
runs without an account.
Integrations
Ten broker classes: Alpaca, Interactive Brokers, Interactive Brokers REST, Tradier, Schwab,
Tradovate, ProjectX for TopstepX futures, Bitunix, Polymarket and a CCXT client with
auto-detected credentials for Coinbase, Kraken and WEEX and documented manual setup for KuCoin,
Binance and BitMEX. The project explicitly declines to claim blanket CCXT support. A running
strategy can push messages, account summaries and spark charts to a Discord webhook, and agents
notify over Telegram through notify_user. Lumibot mounts external MCP servers as a client; it
does not ship one — the MCP server is BotSpot's, and it is sold.
Limitations
- The licence on the tin is not the licence in the file. LICENSE has held the full GPL-3.0 text
since 12 January 2021, while the README badge,
license="MIT"in setup.py and the PyPI classifier all say MIT. Anyone embedding this in a closed product is relying on a label that five years of commits have not made true. pip install lumibotpulls 50 required dependencies and offers one extra. Among thempytest,Flask,psycopg2-binary,boto3,google-adk,ccxt,databento,duckdb,polarsandibapi, pluslitellmpinned to a seven-patch window (>=1.83.7,<=1.83.14) that will fight anything else using it. Only ThetaData is optional, so a Yahoo-only backtest still installs the whole agent stack and a Postgres driver.- There is no stable line to pin to. A version roughly every three days, logged as deploy markers rather than curated releases. No LTS branch, and no separation between a feature drop and a fix.
- The open library is the top of a paid funnel, and it is not subtle. UTM-tagged BotSpot calls to action at seven points in the README, a bootcamp banner, and a ThetaData affiliate promo code with its own disclosure. That does not make the code worse, but it is the incentive keeping it maintained.
- The agent runtime emits an order. Told to, an agent reads filings, macro series and prices,
then submits a trade on your broker account.
allow_trading=Falseper agent and a Python gate around it are real controls — and so is what happens without them. - No screener, no charting, no portfolio accounting outside a run's tearsheet, and no CLI runner: the package installs no console scripts.
Alternatives
NautilusTrader for the same backtest-to-live parity with a Rust core and far better crypto venue coverage, if you do not need Schwab, Tradier or an agent runtime. QuantConnect LEAN for the hosted version of the same idea with data and execution attached. VectorBT or Backtesting.py if you are sweeping parameters and never intend to route an order. Backtrader only for the documentation and the indicator library — it has not shipped since April 2023.
The rest are in the backtesting frameworks category.
Specs
- Interfaces
- Python, Python
- Export
- CSV, Parquet
- Asset classes
- Stocks, ETF, Options, Futures, Forex, Crypto, Indices
- Markets
- US, Global
- Platforms
- Library
- AI features
- Recommendations
- Capabilities
- Backtesting, Automation, Live trading, Paper trading, Alerts, Options analysis
- Pricing verified
- Capabilities verified
- Coverage verified
Also worth comparing
- NautilusTrader — Rust core, Python API, one strategy that backtests and trades live unchanged.
- StockSharp — C#/.NET algo stack with 384 connectors; source is published but no longer open source.
- ib_async — The community continuation of ib_insync — same API, new maintainers, TWS still required.
- Composer — No-code rule-based stock and ETF strategies, backtested and then traded for real.
- QuantConnect — The open-source LEAN engine, plus a hosted cloud that runs it against real brokers.
- QuantRocket — Zipline and Moonshot in Docker on your own hardware, wired to Interactive Brokers.
FAQ
What licence is Lumibot actually under?
GPL-3.0. The LICENSE file has held the full GNU GPL v3 text since 12 January 2021, and nothing else in the project agrees with it — the README badge, the README's own licence section, the comparison table it prints against Backtrader, the license="MIT" argument in setup.py and the OSI MIT classifier on PyPI all say MIT. The file is what a court reads. If you intend to ship Lumibot inside a closed-source product, get that resolved with the maintainers in writing before you start.
Is Lumibot actively maintained?
Yes, and at an unusual rate. Version 4.5.91 was released on 6 September 2026 and the last commit to the default dev branch is the same day. There have been 640 PyPI releases since 0.0.1 on 12 January 2021, 120 of them in 2026 alone. The repository is not archived and carries 2,061 stars, 66 open issues and 25 open pull requests.
Does the same strategy code run in a backtest and against a live broker?
Yes. You subclass Strategy once. A backtest is MyStrategy.backtest(YahooDataBacktesting, start, end); live or paper is MyStrategy(broker=Alpaca(config)) handed to a Trader. The strategy body does not change, and self.is_backtesting is there for the cases where you want it to.
Which brokers can it actually trade through?
Ten broker classes ship in lumibot.brokers — Alpaca, Interactive Brokers, Interactive Brokers REST, Tradier, Schwab, Tradovate, ProjectX (TopstepX futures), Bitunix, Polymarket and a generic CCXT client for crypto. That is the widest retail-broker coverage in this category; Backtrader's three stores are all dead and NautilusTrader routes cash equities through Interactive Brokers or nothing.
Do I have to pay for BotSpot to use Lumibot?
No. BotSpot is a separate managed-cloud product from the same company, Lumiwealth, Inc., and the library runs fine on your own machine with your own broker keys. What is worth knowing is that BotSpot has no free tier — its pricing page states in its own words that BotSpot "does not offer a free core SaaS plan" — and that the README, the docs navigation and the release notes all route towards it and towards paid bootcamps.