Installation¶
ThinkLess needs Python 3.10 or newer and runs on Linux, macOS and Windows.
Pick what you need¶
The core install is small: pydantic, httpx, rich and typer. Everything
that brings in heavy dependencies is an extra.
| You want | Install | Pulls in |
|---|---|---|
| Rules, tracing, the CLI, Jev or any System One server | pip install thinkless |
nothing heavy |
| Hosted LLMs through OpenRouter, OpenAI, Ollama or vLLM | pip install "thinkless[openai]" |
openai |
| Claude through the Anthropic SDK | pip install "thinkless[anthropic]" |
anthropic |
| GLiNER 2.5 | pip install "thinkless[gliner]" |
gliner2, transformers<5, torch |
| Laya | pip install "thinkless[laya]" |
laya, transformers<5, torch |
| A local LLM or any Hugging Face classifier | pip install "thinkless[local-llm]" |
transformers<5, accelerate, torch |
| All local models | pip install "thinkless[local]" |
the three above |
| OpenTelemetry export | pip install "thinkless[otel]" |
opentelemetry-sdk and the OTLP exporter |
| The public dataset benchmarks | pip install "thinkless[bench]" |
datasets |
| The LangGraph adapter | pip install "thinkless[langgraph]" |
langgraph |
| The OpenAI Agents SDK adapter | pip install "thinkless[openai-agents]" |
openai-agents |
The decision server (thinkless serve) |
pip install "thinkless[server]" |
fastapi, uvicorn |
MCP tools (thinkless mcp) |
pip install "thinkless[mcp]" |
mcp |
| Everything | pip install "thinkless[all]" |
all of the above |
Extras combine: pip install "thinkless[gliner,laya,openai]".
Local models: install PyTorch first¶
pip cannot choose the right PyTorch build for your GPU, so the local extras
take whatever torch it finds, and on Windows and macOS that is the CPU build.
Everything still works, only slower. For a GPU, install PyTorch first from
its own index, then ThinkLess:
NVIDIA GPU (Linux or Windows). CUDA 13.0 wheels cover current cards, including the RTX 50 series:
pip install torch --index-url https://download.pytorch.org/whl/cu130
pip install "thinkless[local]"
For older drivers, pick the matching CUDA version on pytorch.org.
Apple Silicon. The default PyPI build includes Metal (MPS) support:
pip install "thinkless[local]"
CPU only.
pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install "thinkless[local]"
Then check what you got:
thinkless doctor
doctor prints the accelerator torch can see. If an NVIDIA GPU is present but
torch is a CPU build, it says so and prints the command to fix it.
Conda¶
environment.yml creates an environment with everything, including the CUDA
13.0 build of PyTorch:
conda env create -f environment.yml
conda activate thinkless
It installs ThinkLess from the checkout in editable mode, for development. To
use the released package in a conda environment, create the environment with
Python 3.12, install PyTorch as above, then pip install "thinkless[local]".
Where files go¶
| What | Where | Change it with |
|---|---|---|
| Model weights | the Hugging Face cache, ~/.cache/huggingface |
HF_HOME |
| Banking77 test file for the benchmarks | ~/.cache/thinkless/datasets |
|
| Traces written by the CLI | ./.thinkless/traces |
THINKLESS_TRACE_DIR |
| Shadow logs | wherever Shadow(log=...) points |
|
| Benchmark output | ./.thinkless/bench/<run> |
--out |
| API keys | environment variables, or ./.env for the CLI |
Models download on first use: about 0.8 GB for GLiNER base, 0.9 GB for Laya
and 3.4 GB for Qwen3-1.7B. thinkless doctor shows which ones are already
cached.
Offline and air-gapped machines¶
Download the weights once on a connected machine (running thinkless demo
does it), copy the Hugging Face cache directory, and set HF_HUB_OFFLINE=1 on
the offline machine. Providers also accept a local directory in place of a
model id, for example GLiNER("/models/gliner2.5-base-v1").
Windows notes¶
- On Windows, ThinkLess downloads models one file at a time. That avoids a
race in the Hugging Face cache's symlink handling (
WinError 1314). Enabling Developer Mode lets the cache use symlinks and saves disk space. - If a console shows garbled characters in tables, use Windows Terminal or
set
PYTHONIOENCODING=utf-8.
Checking an install¶
thinkless --version
thinkless doctor
python -c "import thinkless; print(thinkless.__version__)"
A run that needs no downloads, for a quick end-to-end check:
python -m thinkless demo --help