The C# engine supports Python strategies and .NET 10 builds
LEAN is an event-driven trading engine for backtests and live execution. Strategy authors can use C# or Python, while the engine itself is a large C#/.NET system. The README's source instructions currently call for .NET 10 on macOS and Linux, with Visual Studio on Windows. This architecture suits a team that wants explicit models for securities, orders, portfolios, data feeds, and brokerages. It is much more machinery than a researcher needs for a moving-average experiment in a notebook.
Four local CLI jobs depend on Docker
The README recommends the prebuilt Lean CLI for most users and installs it with pip install lean. Its local research, backtest, optimize, and live commands all use Docker. Project creation happens from the same terminal workflow. That is convenient when Docker is already standard on developer machines because it keeps the engine environment repeatable. A locked-down desktop, remote notebook service, or build worker that prohibits Docker needs the direct source path or a different framework.
Direct builds clone the repository, restore the solution, and run the launcher from its output directory. macOS and Linux instructions use dotnet build, while Windows points developers to Visual Studio and F5. The main README's Python section refers readers to an Algorithm.Python README that returned 404 during our check. Python strategy support remains documented elsewhere, but that dead repository path is exactly the sort of friction a new Python user meets before writing an algorithm.
What happened when we ran it
Our sandbox cloned commit 6eb3890 into an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The 6,302-file checkout occupied 286.3 MB and contained about 789,699 lines of source. Installation succeeded in 15 seconds, adding 35 packages and 37 MB on disk. The build then succeeded in 5 seconds. Those figures describe repository setup in the supplied Python 3.12 image, not the time or storage needed for market data, Docker images, brokerage tools, or a backtest.
The harness found no tests script or target and skipped the test step. It also found no tests directory, while the repository contained 9 CI workflow files and a Dockerfile. The README displays build and regression workflow badges, so the skipped step should be read narrowly: our generic sandbox could not discover a supported test entry point. Pip-audit reported 0 known vulnerabilities in the installed Python packages. That audit does not inspect every .NET component in this C# engine.
The 286.3 MB checkout behaves like a platform
LEAN models many asset types, lets users replace major engine components, and carries paths for backtesting, paper trading, and live brokerages. It also leaves a large surface to understand when results look wrong. The 37 MB installed Python set from our run is a small edge of a checkout with roughly 789,699 source lines. Teams evaluating LEAN should budget time for the engine model and the data conventions, even though the 15-second install and 5-second build were short.
Dependency review also has two layers. Our Python audit returned 0 known vulnerabilities, but open issue 8795 concerns DotNetZip in the .NET compression project and cites a high-severity advisory. The issue remained open and was updated in August 2026. That does not contradict pip-audit because the tools inspect different ecosystems. A production review should scan the solution's NuGet graph as well as the Python environment, especially if external ZIP data enters the system.
A reported 17 percent history shortfall needs a regression case
Open issue 9784 reports that a daily History(barCount) request for a lunch-break market returned about 17 percent fewer bars when called while the algorithm clock sat inside the break. The reporter reproduced it on LEAN 2.5.0.0.18057 and traced the result to session-window alignment. The report was still open on September 12, 2026. Anyone trading markets with split sessions should pin a fixed history case and assert the first date, last date, and count before trusting a warmed indicator.
Option portfolios need the same skepticism. Issue 9775 reports a zero-order unequal-wing iron condor probe where native maintenance was $10,000 against a calculated $32,000 gross expiration loss. Issue 9648 separately reports process-dependent option grouping for identical holdings, with margin changing across runs in its reproducer. These are issue reports rather than findings from our sandbox. They are specific enough to justify regression fixtures for the strategies and broker models your desk will run.
Live mode starts with data rights and broker secrets
LEAN's launcher configuration includes a local data folder, QuantConnect access fields, live data endpoints, and broker-specific account or API settings. The exact requirements depend on the chosen environment. A local backtest still needs correctly formatted historical data and market metadata. Live mode adds credentials, connectivity, account reconciliation, and the behavior of the selected brokerage handler. The engine gives those concerns named interfaces; it does not make them disappear after lean live.
September activity outweighs the 2017 release tag
GitHub's latest listed release is v2.4.0.1 from August 2017, which is a poor guide to current maintenance. The repository was pushed on September 11, 2026 and had 21,590 stars with 247 combined open issues and pull requests when fetched. Issue 9784 was created on September 9 and updated through September 12. Current commits and issue discussion show active development even though formal GitHub releases do not track it.
Choose LEAN when one engine must cover research and live execution across several markets. The 15-second install and 5-second build make evaluation cheap, while the skipped test step and current correctness reports keep the acceptance bar high. Backtesting.py is a cleaner choice for contained Python research. NautilusTrader is the closer comparison for another compiled, event-driven live stack. Adoption should wait until your own data, session, fee, margin, and brokerage cases agree with independent calculations.

