# Lumibot

One strategy class for backtest and live, plus a built-in LLM agent runtime.

*https://stockmarketstack.com/tools/lumibot · Backtesting Frameworks & Algo Trading Libraries*

## Also covered on

- [Lumibot on CryptoMarkets.tools](https://cryptomarkets.tools/tools/lumibot.md) — the CCXT brokers and Bitunix perpetuals, and what the GPL means for a bot you sell

## Facts

### At a glance

| Field | Value |
| --- | --- |
| Vendor | Lumiwealth |
| Category | Backtesting Frameworks & Algo Trading Libraries |
| Job | live_trading |
| Website | https://lumibot.lumiwealth.com |
| Pricing model | subscription |
| Free tier | true |
| Open source | true |
| Licence | GPL-3.0-only |
| Self-hosted | true |
| Tested hands-on | false |
| Last updated | 2026-09-14 |

### Pricing

| Tier | USD | Period |
| --- | --- | --- |
| Lumibot | 0 USD | month |
| BotSpot Light | 24.5 USD | month |
| BotSpot Starter | 49.5 USD | month |
| BotSpot Pro | 199 USD | month |
| BotSpot All Access | 399 USD | month |
| BotSpot Business | on request | month |

### Coverage

| Field | Value |
| --- | --- |
| Asset classes | stocks, etf, options, futures, forex, crypto, indices |
| Markets | us, global |
| Works outside the US | true |
| Data latency | none |
| Platforms | library |
| AI features | recommendations |

### Interfaces

| Field | Value |
| --- | --- |
| API | false |
| Webhooks | false |
| Scripting | Python |
| Python | true |
| Spreadsheet add-in | false |
| MCP server | false |
| Export | csv, parquet |

### Capabilities

Yes: backtesting, automation, live_trading, paper_trading, alerts, options_analysis

No: charting, screening, scanning, portfolio_tracking, broker_import, tax_reporting, news

*Verified: pricing 2026-09-14; capabilities 2026-09-14; coverage 2026-09-14.*

## 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](https://stockmarketstack.com/tools/nautilus-trader) makes, and it is
what separates both of them from [Backtrader](https://stockmarketstack.com/tools/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 lumibot` pulls 50 required dependencies and offers one extra.** Among them
  `pytest`, `Flask`, `psycopg2-binary`, `boto3`, `google-adk`, `ccxt`, `databento`, `duckdb`,
  `polars` and `ibapi`, plus `litellm` pinned 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=False` per 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](https://stockmarketstack.com/tools/nautilus-trader) 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](https://stockmarketstack.com/tools/quantconnect) LEAN for the hosted version of the same idea with data and
execution attached. [VectorBT](https://stockmarketstack.com/tools/vectorbt) or [Backtesting.py](https://stockmarketstack.com/tools/backtesting-py) if you
are sweeping parameters and never intend to route an order. [Backtrader](https://stockmarketstack.com/tools/backtrader) only
for the documentation and the indicator library — it has not shipped since April 2023.

The rest are in the [backtesting frameworks category](https://stockmarketstack.com/categories/backtesting-frameworks).

## 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.

## Also worth comparing

- [NautilusTrader](https://stockmarketstack.com/tools/nautilus-trader.md) — Rust core, Python API, one strategy that backtests and trades live unchanged.
- [StockSharp](https://stockmarketstack.com/tools/stocksharp.md) — C#/.NET algo stack with 384 connectors; source is published but no longer open source.
- [ib_async](https://stockmarketstack.com/tools/ib-async.md) — The community continuation of ib_insync — same API, new maintainers, TWS still required.
- [Composer](https://stockmarketstack.com/tools/composer.md) — No-code rule-based stock and ETF strategies, backtested and then traded for real.
- [QuantConnect](https://stockmarketstack.com/tools/quantconnect.md) — The open-source LEAN engine, plus a hosted cloud that runs it against real brokers.
- [QuantRocket](https://stockmarketstack.com/tools/quantrocket.md) — Zipline and Moonshot in Docker on your own hardware, wired to Interactive Brokers.
