> ## Documentation Index
> Fetch the complete documentation index at: https://condor.hummingbot.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Learning Paths

> Find the setup and reading order that matches your experience level and use case.

New to Condor, or picking up where you left off? Use the tables below to find the fastest route to what you actually want to do—no need to read every page in order.

## By experience level

| Level                 | Goal                                                                                                                                                                      | Reading path                                                                                                                                                                                                                                                    | Time        |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| **Beginner**          | Get Condor running on your own machine with no Telegram account, and build one Trading Agent from the browser                                                             | [Installing → Local](/getting-started/installing#local) → [Web Dashboard](/getting-started/web-dashboard) → [Credentials](/getting-started/credentials) → [First Agent](/getting-started/first-agent)                                                           | \~30–45 min |
| **Intermediate**      | Attach Telegram so agents can reach your phone with alerts and approval requests, add real exchange keys, understand Bots/Executors/Routines, and manage running sessions | [Add Telegram alerts](/getting-started/installing#add-telegram-to-a-local-install) → [Telegram](/getting-started/telegram) → [Bots](/bots/overview) → [Executors](/executors/overview) → [Routines](/routines/overview) → [Sessions](/getting-started/sessions) | \~1–2 hrs   |
| **Advanced (Server)** | Deploy to a VPS behind Tailscale, understand the multi-agent architecture, and build custom agents                                                                        | [Installing → Server](/getting-started/installing#server) → [Trading Agents Architecture](/trading-agents/architecture) → [Agent Builder](/condor-agent/agent-builder) → [Servers](/webui/settings#servers)                                                     | \~2–4 hrs   |

## Which install do you want?

The installer asks how you will drive Condor, and where it runs. Three paths, all running the same agents, bots, routines and dashboard.

|                                 | **Local**                                                           | **Local + Telegram alerts**           | **Server**                                         |
| ------------------------------- | ------------------------------------------------------------------- | ------------------------------------- | -------------------------------------------------- |
| **Runs on**                     | Your machine                                                        | Your machine                          | A VPS, 24/7                                        |
| **You need**                    | Nothing extra                                                       | A bot token and your Telegram user id | The above, plus [Tailscale](#do-i-need-tailscale)  |
| **How you drive it**            | Dashboard at `localhost:8088`                                       | Telegram commands, plus `/web`        | Telegram from anywhere; dashboard over the tailnet |
| **Login**                       | **None at all** — whoever reaches the port has full trading control | Telegram authenticates you            | Same, with the tailnet as the outer boundary       |
| **Alerts and approvals**        | Only while the dashboard is open                                    | Pushed to your phone                  | Pushed to your phone                               |
| **Survives closing the laptop** | No                                                                  | No                                    | Yes                                                |
| **Best for**                    | Trying it out                                                       | Most people                           | Anything holding real capital                      |

<Warning>
  **Local mode has no login.** It binds `127.0.0.1` so only that machine can
  reach it. Exposing it (setting `WEB_HOST=0.0.0.0`) puts full trading control
  in reach of anyone who can hit the port—only do that behind something that
  authenticates, such as [Tailscale](#do-i-need-tailscale), an SSH tunnel, or
  an authenticating reverse proxy.
</Warning>

You are not locked in: the usual route is Local first, Telegram alerts when
you want your phone in the loop, and a server once real capital is involved —
re-running `make setup` switches mode any time. Configured servers are shared
and carry across; switching Telegram → Local keeps your id and with it your
preferences and agent history, while a Local-only install that adds Telegram
moves from id `1` to your Telegram id, so per-user history stays behind — make
that hop early. Steps for each hop:
[Start local, grow later](/getting-started/installing#start-local-grow-later).

## What do you want Condor to do?

Condor gives you four ways to execute a trade, from fully autonomous to fully manual. Most users end up combining more than one.

|                    | Trading Agent                                  | Bot                                                            | Executor                                   | Routine                                          |
| ------------------ | ---------------------------------------------- | -------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------ |
| **Decision maker** | LLM, reasons every tick                        | Script/Controller, fixed logic                                 | You, or an Agent (one-shot)                | Deterministic Python                             |
| **Lifecycle**      | Long-running, adaptive                         | Long-running, fixed                                            | Short-lived, single operation              | Scheduled or triggered                           |
| **Best for**       | AI-assisted strategy that adapts to conditions | Always-on market making or grid trading without AI in the loop | A single trade, or a stop-loss/take-profit | Reports, alerts, and indicators without LLM cost |
| **Learn more**     | [Trading Agents](/trading-agents/overview)     | [Bots](/bots/overview)                                         | [Executors](/executors/overview)           | [Routines](/routines/overview)                   |

## Key features

What Condor actually does, and where each is documented. Most people arrive wanting one of these.

| Feature                | What it does                                                                                             | Docs                                                      |
| ---------------------- | -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| **Trading Agents**     | LLM-driven agents that observe markets, reason about strategy, and execute through Hummingbot API        | [Overview](/trading-agents/overview)                      |
| **Agent Builder**      | Build a custom agent — its playbooks, tools and risk limits — without writing the harness                | [Agent Builder](/condor-agent/agent-builder)              |
| **Hummingbot bots**    | Always-on market making, grid and directional strategies via controllers and scripts, no LLM in the loop | [Bots](/bots/overview) · [Controllers](/bots/controllers) |
| **Backtesting**        | Replay a controller config against historical candles before it touches capital                          | [Backtesting](/bots/backtesting)                          |
| **Executors**          | Single operations — a trade, a stop-loss, a TWAP, an LP position — driven by you or an agent             | [Executors](/executors/overview)                          |
| **Routines**           | Deterministic Python on a schedule or trigger: indicators, alerts, rebalances. No LLM cost               | [Routines](/routines/overview)                            |
| **Reports**            | Build and schedule HTML reports with charts, tables and KPIs, then read them in the dashboard            | [Reports](/routines/reports)                              |
| **Research**           | Ask an agent about markets, positions or a strategy, with your live portfolio as context                 | [MCP Tools](/trading-agents/mcp-tools)                    |
| **Portfolio**          | Unified balances, positions and P\&L across every connected exchange and chain                           | [Portfolio](/webui/portfolio)                             |
| **Manual trading**     | Place and cancel orders yourself, on CEX or DEX, from Telegram or the dashboard                          | [Trade](/webui/trade)                                     |
| **DEX and liquidity**  | Swaps and concentrated-liquidity positions through Gateway                                               | [DEX](/webui/dex) · [Gateway](/webui/settings#gateway)    |
| **Web dashboard**      | Browser UI for bots, agents, portfolio and a live trade panel covering CEX and DEX                       | [Web Dashboard](/getting-started/web-dashboard)           |
| **Agent sessions**     | Inspect, steer and stop running agents; see what each one decided and why                                | [Sessions](/getting-started/sessions)                     |
| **Multiple servers**   | Drive several Hummingbot API instances — separate accounts, venues or strategies — from one Condor       | [Servers](/webui/settings#servers)                        |
| **Your choice of LLM** | Claude, Gemini, Codex, Copilot, OpenRouter, or a local model via Ollama/LM Studio                        | [LLM Integration](/llm-integration)                       |

## By use case

<AccordionGroup>
  <Accordion title="Let AI manage a strategy for me">
    [Trading Agents Overview](/trading-agents/overview) → [LLM Integration](/llm-integration) → [Build Your First Agent](/getting-started/first-agent) → [Managing Sessions](/getting-started/sessions) → [Agent Builder](/condor-agent/agent-builder)
  </Accordion>

  <Accordion title="Run an always-on bot without AI micromanagement">
    [Bots Overview](/bots/overview) → [Controllers](/bots/controllers) or [Scripts](/bots/scripts) → [Backtesting](/bots/backtesting)
  </Accordion>

  <Accordion title="Place a single trade, or set a stop-loss/take-profit">
    [Executors Overview](/executors/overview) → [Order Executor](/executors/order-executor) → [Position Executor](/executors/position-executor)
  </Accordion>

  <Accordion title="Automate reports or alerts on a schedule">
    [Routines Overview](/routines/overview) → [Creating Routines](/routines/creating-routines) → [Reports](/routines/reports)
  </Accordion>

  <Accordion title="Test everything locally before risking capital">
    [Installing](/getting-started/installing) (local install—**Tailscale not required**; **Local mode** skips Telegram entirely) → [Credentials](/getting-started/credentials) → dry-run an agent in [Build Your First Agent](/getting-started/first-agent)
  </Accordion>

  <Accordion title="Run Condor without a Telegram account">
    [Installing → Local](/getting-started/installing#local) → [Web Dashboard](/getting-started/web-dashboard) → [Credentials](/getting-started/credentials) → [Build Your First Agent](/getting-started/first-agent)
  </Accordion>

  <Accordion title="Deploy for 24/7 production on a server">
    [Installing](/getting-started/installing#secure-remote-access-with-tailscale) (remote install—**Tailscale required**) → [Servers](/webui/settings#servers) → [Managing Sessions](/getting-started/sessions)
  </Accordion>

  <Accordion title="Manage many agents or bots as a team or fund">
    [Trading Agents Architecture](/trading-agents/architecture) (multi-agent via `controller_id`) → [Global Routines](/routines/global-routines) → [Servers](/webui/settings#servers)
  </Accordion>
</AccordionGroup>

## Do I need Tailscale?

| Situation                                                | Tailscale needed?                                                                                   |
| -------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| Testing locally—Condor and Hummingbot API on one machine | No                                                                                                  |
| Same VPS, both services together                         | **No** — the API binds `127.0.0.1` by default; still worth it if anything ever needs off-box access |
| Different machines (for example, laptop + VPS)           | **Yes**                                                                                             |
| A team or multiple devices need access                   | **Yes**                                                                                             |

<Warning>
  **Installed before the API's port lockdown? Check it.** Hummingbot API used to publish port **8000 on every interface**, including a VPS's public IP. It now binds `127.0.0.1` by default (`${API_BIND:-127.0.0.1}` in `docker-compose.yml`), and so do Postgres and the EMQX broker — but an existing stack keeps its old bindings until the containers are recreated. Run `make deploy` in `hummingbot-api`, then `make doctor`, which flags any of those ports still sitting on a public interface.

  If you *do* need the API reachable off-box, widen it deliberately with `API_BIND` in `hummingbot-api/.env` — prefer a specific interface over `0.0.0.0`, and with the Tailscale overlay `API_BIND=<your-tailscale-ip>` keeps MagicDNS working without publishing anything to the internet. Note that Docker's published ports are *not* blocked by `ufw`: its rules are evaluated before ufw's, so `ufw deny 8000` leaves a widened port reachable unless you write `DOCKER-USER` rules yourself. Close the port in your cloud provider's firewall instead — that is enforced off-host.
</Warning>

See [Installing](/getting-started/installing#secure-remote-access-with-tailscale) for the full setup, or the [Tailscale security walkthrough](https://hummingbot.org/blog/securing-condor-and-hummingbot-api-with-tailscale/) for a deeper guide.

## Something not working?

Run `make doctor` from the Condor directory. It re-checks dependencies, your
`.env` and `config.yml`, the AI model, whether the dashboard is on a public
interface, Tailscale, and whether every configured Hummingbot API server is
actually reachable and authenticating—and names the fix for each thing it
finds. It is read-only and safe to run at any time.

On the API host, `docker compose ps` (are the containers up) and
`make tailscale-status` (is the tailnet node connected) from the
`hummingbot-api` directory cover the execution layer, and
`curl -u USER:PASS http://localhost:8000/` confirms the API answers an
authenticated request.

## Next steps

<CardGroup cols={2}>
  <Card title="Introduction" icon="circle-info" href="/introduction">
    What Condor is and who it's for
  </Card>

  <Card title="Motivation" icon="lightbulb" href="/motivation">
    Why Condor is architected this way
  </Card>

  <Card title="GitHub" icon="github" href="https://github.com/hummingbot/condor">
    Source code and issues
  </Card>

  <Card title="Give Feedback" icon="clipboard-list" href="/feedback">
    2-minute survey that shapes the roadmap
  </Card>
</CardGroup>

<Card title="Help shape Condor" icon="clipboard-list" href="https://forms.gle/7NpG3RtgfLrmpUNY8" cta="Take the 2-minute survey" type="tip">
  What's working? What's confusing? What do you wish Condor could do? Your answers go straight to the Hummingbot Foundation team and directly shape what we build next.
</Card>
