Skip to main content
Bots are Docker containers running Hummingbot instances for long-running automation tasks. They execute Scripts for simpler tasks or Controllers for algorithmic trading strategies.

Bots vs Executors

When to Use Bots

Bot Lifecycle

Creation

Create a bot via Telegram or API: Telegram:
API: Deploy a bot from existing controller config files (without .yml). Pass several configs to run multiple controllers in one bot:

Starting and Stopping

Telegram:
API: Start and stop take the bot name in the request body.

Monitoring

Telegram: /bots shows:
  • Bot status (running/stopped)
  • Uptime and resource usage
  • Recent P&L
  • Active orders and positions
API:
The Hummingbot API also records a snapshot of every running controller every 5 minutes, so you get a time series of P&L and volume rather than a single point. Query it with /bot-orchestration/controller-performance-history (see Monitoring Controllers), or view it in Condor under Bots → Runs. When a bot runs multiple controllers, Bots → Active charts their combined P&L with toggles to isolate each one.

Logs

Telegram:
Each bot runs in its own Docker container, so you can also read logs directly:

Container Isolation

Each bot runs in an isolated Docker container:
  • Separate filesystem
  • Independent network
  • Own log streams
  • Can be started/stopped individually

Integration with Agents

Agents can deploy and manage bots programmatically: The manage_bots MCP tool handles the full lifecycle through a single action parameter (deploy, status, logs, stop_bot, start_controllers, stop_controllers, get_config, update_config):