Install keel — From Source or GitHub Releases

Try it in five minutes — from source

Everything in this path is read-only and paper-side: no funds, and nothing here can place an order. You need uv and a free, read-only Coinbase Developer Platform (CDP) API key — candle history is fetched through the authenticated client, so keel fetch without a key fails with an AuthenticationError. Said upfront so step four is not a surprise.

  • uv (the Python package manager)
  • Any Python 3.11+ (the repo develops on 3.14)
  • A free, read-only CDP API key — market data only
git clone https://github.com/CodeGateSoftware/keel.git && cd keel
uv sync --all-extras --dev        # any Python 3.11+ (the repo develops on 3.14)
cp .env.example .env              # put the read-only CDP key/secret in it — market data only
uv run keel rules seed            # register the rule families as candidates
uv run keel fetch                 # pull candle history for the default allowlist
uv run keel simulate --years 1 --skip-within-cap

What you should expect

keel simulate replays the real rules deterministically over the fetched history, compares against a DCA benchmark, and writes a GO-LIVE / TRAIN-MORE report. On the default rules it will very likely tell you TRAIN MORE and name the gates that fail — that is the engine working, not broken; the honesty is the feature.

The next steps — promoting a rule through the gate, running the paper agent, a supervised first live order — are in the go-live runbook. →

Install a release

Releases ship as wheel sets on GitHub Releases. The buttons below link directly to GitHub — this site never mirrors binaries.

  1. Download all wheels into one directory

    Grab every wheel from the latest release page into a single directory (the buttons below link there — never a mirror).

  2. Install keel_trader by path

    pip install --find-links . ./keel_trader-<version>-py3-none-any.whl — the exact command for the current release is in the panel above.

    pip install --find-links . ./keel_trader-0.10.0-py3-none-any.whl
  3. Check with keel versions — not --version

    keel versions reports every keel distribution in the venv and exits non-zero if a sibling was left behind at an older version, which --version cannot see.

Never install by bare name. The distribution is keel-trader; the name keel on PyPI belongs to an unrelated project, so pip install keel fetches someone else's package. A build reporting DIRTY or [checkout] is not a release and must not be run against live funds.