OctoBot GitHub repository
OctoBot code lives in a single Python monorepo, hosted under the Drakkar-Software organisation on GitHub: github.com/Drakkar-Software/OctoBot (dev branch for development, master branch for the stable version).
The repository root holds the main program initialization and community data management. Everything else is
split into packages, each dedicated to a different aspect of the software, in its own folder under packages.
Packages are built with Pants and
declared in the root_patterns of the pants.toml file at the root of the repository.
Each of these packages used to be a separate GitHub repository. Those repositories are now archived and read only, all the development happens in the monorepo.
- packages/trading for everything trading and exchange related: exchange connections, exchange data fetch and update, orders, trades and portfolios management.
- packages/evaluators for everything related to evaluators and strategies.
- packages/services for everything related to interfaces: graphic (web) and text(telegram), notifications push and social analysis data management: update engine to handle new data from an external feed (ex: reddit) when it gets available.
- packages/backtesting for the backtesting engine and scheduling as well as historical data collection unified storage management.
- packages/tentacles tentacles: evaluators, strategies, trading
modes, interfaces, notifiers, external data feeds (reddit, telegram etc),
backtesting data formats management and exchange specific behaviors. This is the source of the
tentacles, the
tentaclesfolder used by a running OctoBot is generated from it. - packages/tentacles_manager for tentacles installation, updates and interactions: get a tentacle documentation, configuration or it’s dependencies.
- packages/commons for common tools and constants used across each other package.
- packages/async_channel which is used by OctoBot as a base framework for every data transfer within the bot. This allows a highly optimized and scalable architecture that adapts to any system while using a very low amount of CPU and RAM.
- packages/agents for the AI agents of OctoBot: individual agents, agent teams and their storage.
- packages/copy for copy trading: order mirroring and portfolio rebalancing to replicate a followed account.
- packages/flow for the OctoBot automations runner: the jobs, parsers and logic behind automations.
- packages/node for OctoBot Node, which allows running any OctoBot anywhere as a remotely managed service.
- packages/protocol for the data shapes shared across OctoBot runtimes (accounts, orders, trades, automations and their enums). They are generated from an OpenAPI document into Python, TypeScript and Rust models.
- packages/sync for the server component that lets OctoBot nodes act as personal sync endpoints, including its wallet based authentication and encrypted user data collections.
- packages/binary to create and upload the Windows, Linux and MacOS binaries of each OctoBot release.