Install

Python 3.11+, or the image. One dependency set, no runtime downloads, nothing fetched the first time you run it.

From PyPI

# uv (recommended)
uv tool install ci-doctorr

# pip
pip install ci-doctorr

# or the self-contained image, for air-gapped runners
docker run --rm ci-doctor:latest --version

uv tool install gives you an isolated ci-doctor on your PATH without touching a project environment, which is what you usually want for a CLI.

On GitHub Actions

Don't. The action installs the analyzer itself, pinned to the ref you chose:

# GitHub Actions — nothing to install at all
- uses: fennet82/ci-doctor@master

It is a composite action rather than a Docker one, so the action version and the analyzer version cannot drift. Full reference onGitHub Actions .

Optional extras

The base install covers the openai LLM backend, which is what Ollama, vLLM, llama.cpp and most gateways already speak. Only the cloud providers with their own auth need more:

# litellm backend (Bedrock, Vertex, Azure — the clouds OpenAI's shape can't reach)
pip install "ci-doctorr[litellm]"

litellm may pull tiktoken, which fetches its vocabulary at runtime — so it is unfit for a strict air gap. The backends are compared onConfiguration .

Air-gapped? Build an image or a wheel bundle where thereisinternet and carry it in — see Local & air-gapped .

Installed? Run it on a real failure →