OctoBot: a GPL-3.0 Python crypto trading bot with a visual interface
Free open source crypto trading bot to automate AI, Grid, DCA and TradingView strategies on Binance, Hyperliquid and 15+ exchanges, with a simple interface.
At a glance
- What is it?
- OctoBot automates grid, DCA, AI and TradingView strategies across Binance, Hyperliquid and other exchanges. The 3.0.0 beta changes the architecture, so the version you install decides what you get.
- Who is it for?
- Adopt OctoBot if you want a self-hosted Python bot whose strategies you configure in a browser, and you accept that the current beta is described as a work in progress. Skip it if you need a stable, unchanging API surface or you cannot read Python when a tentacle misbehaves.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 28, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What OctoBot solves, and for whom
Writing an exchange bot from scratch means solving the same problems repeatedly: authenticated order placement, websocket reconnection, position tracking, and a way to change strategy without editing code. OctoBot is a Python application that packages those layers and puts a browser interface in front of them. The README describes it as a free open source crypto trading bot with a visual user interface, written in Python and released as free software since 2018.
The intended user is a crypto investor who wants automation without building the plumbing. Strategies are configured rather than coded: grids, DCA, crypto baskets, AI connectors, TradingView signal automation, social indicators such as Google Trends and Reddit, and technical indicators including RSI, moving averages and MACD. Exchange coverage is listed as 15 or more integrations, with Binance, Coinbase, MEXC and Hyperliquid named explicitly.
That breadth is the pitch. It also means the project sits between two audiences. A discretionary trader who wants a dashboard gets one. A developer who wants a library to embed gets a full application instead, with the exchange layer and the strategy layer coupled through the same configuration system.
Node mode, the manual instance, and where your keys live
The 3.0.0 beta reorganizes OctoBot around node mode, which the README says is the default in the latest release. The node runs on your computer or server and acts as the backend for the new interface and mobile app. From that node you manage wallets, automations and multiple strategies in one dashboard, and you can also start a manual OctoBot instance for backtesting, Telegram, TradingView and what the README calls classic OctoBot workflows.
The split matters because it separates two operating models. A node holds several automations at once and reports to a remote front end. A manual instance is the older shape: one bot, its own built-in web interface, reachable when hosted on a cloud server.
The README states three pillars for the new design: multi-portfolio analysis and automation, self custody where your keys never leave your devices, and zero knowledge privacy with data end-to-end encrypted. Self custody is the claim worth reading literally. The node runs on hardware you control, and the exchange credentials stay there. The new interface and mobile app are hosted at octobot.cloud addresses, so the trust boundary is the node, not the browser tab.
The repository itself is polyglot. Python is the primary language, but package.json defines an npm workspace over packages/client/octobot_client_ts and packages/protocol/octobot_protocol_ts, and Cargo.toml declares a Rust workspace over packages/*/crates/*. The node and the new clients are not one language.
Installing OctoBot and running a first strategy
The README points to three distribution channels: PyPI, Docker Hub and a cloud option, with the install section titled installing OctoBot open source crypto trading bot. The project ships a Dockerfile, docker-compose.yml and a docker-compose.https.yml variant, plus start.py at the repository root.
For a local Python install, the package name on PyPI is OctoBot. The README does not spell out the exact pip invocation in the text available here, so treat the following as the shape of the command rather than a copied line, and check the PyPI page before running it:
pip install OctoBotThe Docker path is more explicit, since the repository carries the compose files. The image on Docker Hub is drakkarsoftware/octobot:
docker pull drakkarsoftware/octobot
docker compose up -dAfter the container starts, the classic web interface is served by the bot itself, and the README describes configuring strategy details, traded markets and exchanges from that graphic interface. The workflow it lays out has four steps: configure the strategy, test and optimize it with backtesting, live test it with paper money, then execute on a real exchange account where orders are sent automatically.
The backtesting and paper trading stages are the part to actually use. They are documented as built-in steps in the same interface, which means you can validate a grid or DCA configuration without exchange credentials. Telegram is a separate connection: the README describes turning OctoBot into a Telegram trading bot as an option on a manual instance.
The beta is the default, and the README says so
The most important constraint is version selection. The latest releases listed are 3.0.0-beta2 from 2026-08-06 and 3.0.0-beta1 from 2026-07-30, with 2.1.1 from 2026-03-30 as the most recent non-beta. The README states plainly that the new OctoBot beta is a work in progress and that you may hit bugs or incomplete features.
That is not a footnote. Node mode, the new interface and the mobile app are beta features. If you install the default release expecting the 2.x behaviour, you get a different product: a node backend that a hosted front end talks to, with manual instances as a secondary path. The README frames the beta as the largest OctoBot update ever, which is consistent with an architecture change rather than a feature addition.
A second limitation is inherent to the strategy list. Grid, DCA and basket strategies are mechanical; their results depend on market conditions and configuration, not on the bot. Nothing in the README makes a profitability claim, and it does not publish backtest results. The AI connectors trade using OpenAI or Ollama models, including custom models on an Ollama server, which puts model latency and prompt behaviour into your execution path.
Dependency pinning is a third practical issue. requirements.txt pins requests and aiohttp with the comment sync with ccxt, pins aiodns at 3.1.1 with a note that 3.2.0 is incompatible and fails CI, and pins setuptools at 79.0.1 with a warning that setuptools 80 or later breaks easy_install. Upgrading those by hand is likely to break the install.
OctoBot compared with Freqtrade
Freqtrade is the closest widely used alternative in the same category: an open source Python crypto trading bot. The difference is where the strategy lives. OctoBot's README describes configuration through a graphic interface, with strategies selected and parameterized in the browser. Freqtrade's model is a Python strategy file that you write and that the bot loads, which puts the logic in version control and makes the strategy itself reviewable code.
That distinction decides the choice more than any feature list. If you want to iterate on a strategy as a program, with your own indicators and entry conditions expressed in Python, the code-first approach fits better. If you want to assemble a grid or DCA configuration and watch it from a phone, OctoBot's interface is the point of the project.
The two also differ in scope. OctoBot ships AI connectors and TradingView signal automation as built-in strategy sources, so part of the trading logic can come from an external model or an indicator alert. Freqtrade does not present those as core features in the same way. On the other side, OctoBot's beta transition means its interface and node architecture are moving, while a code-first bot's strategy files stay yours.
Licensing differs too. OctoBot is GPL-3.0, stated in setup.py and the LICENSE file. If you plan to redistribute a modified OctoBot, or to embed its code in a service, read the licence before designing around it; this is not legal advice.
Maintenance, upgrade cost and the GPL-3.0 licence
The repository is not archived, and the last push was on 2026-09-19, so the project is being worked on. Release cadence is uneven: two betas three weeks apart in July and August 2026, then 2.1.1 in March 2026. That pattern suggests active development concentrated on the 3.0 line.
Upgrade cost is the real maintenance question. Moving from 2.1.1 to 3.0.0-beta2 is not a patch upgrade; it changes the default operating mode to node mode and moves part of the management surface to a hosted interface and mobile app. Anyone running a manual instance should expect to keep running it deliberately rather than drift into the new default. The README does not document a rollback path from node mode to a manual instance, and it does not describe a migration procedure for existing configurations.
On licensing, OctoBot is GPL-3.0. The practical implication is that distributing a modified version carries source disclosure obligations for the modified work. Running it yourself on your own server is a different situation from shipping it inside a product. The repository's setup.py excludes tentacles and tests from the packaged distribution, so the published wheel is not the entire tree. Check the licence text rather than relying on this summary.
Editorial conclusion
Adopt OctoBot if you want a self-hosted Python bot whose strategies you configure in a browser, and you accept that the current beta is described as a work in progress. Skip it if you need a stable, unchanging API surface or you cannot read Python when a tentacle misbehaves. Before committing funds, run the paper trading mode, check which release your install actually pulled, and confirm your exchange appears in the supported list.
Frequently asked questions
What does OctoBot do?
It is a free open source crypto trading bot that automates strategies such as grids, DCA, crypto baskets, AI connector trades and TradingView signals across 15 or more exchange integrations. It is configured and monitored through a visual interface, with optional Telegram control.
How does OctoBot work?
In the latest release it runs in node mode by default: your node acts as the backend for the OctoBot interface and mobile app, where you manage wallets, automations and strategies. A manual OctoBot instance can still be started for backtesting, Telegram and TradingView workflows.
How do I use OctoBot?
The README describes four steps: configure strategy details, traded markets and exchanges in the graphic interface, test and optimize with backtesting, live test with paper money, then execute on a real exchange account. It can be installed from PyPI or Docker Hub, or run on a cloud provider.
What is OctoBot?
OctoBot is an open source cryptocurrency trading robot written in Python and released under GPL-3.0, built as free software since 2018. It is designed for crypto investors who want to automate investment strategies rather than write exchange integration code.
What is a real alternative to OctoBot?
Freqtrade is the closest comparison in the same category of open source Python crypto trading bots. The main difference is strategy definition: OctoBot configures strategies through a graphic interface, while a code-first bot keeps the strategy in a Python file you maintain.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/drakkar-software-octobot)