Skip to content
Poisson Labs Docs
GitHub poissonlabs.ai

Connect

Claude

Tasks runs its tasks against a Claude model through the anthropic provider, which speaks to Anthropic’s OpenAI-compatible endpoint. It is the one route to Claude the tools’ own docs give. It does not use the Anthropic SDK, and nothing here installs it.

Prove needs no connection of its own. It reads no key and calls no model: under Prove, your agent calls Claude with the client and the key it already has (What Prove does with your code).

Terminal window
pip install poisson-tasks

An Anthropic API key, in an environment variable in your shell. The provider’s variable is ANTHROPIC_API_KEY. The settings file records the variable’s name and never the key. Whatever you call the variable, its name must contain API_KEY, which keeps the key from the program under test.

init writes tasks.toml. With --yes it asks nothing and takes every answer from a flag. The anthropic provider has no default model, so --model names one as Anthropic spells it. This check named claude-haiku-5-5. --no-check-key makes no network call, so the command runs before the key is set, and says so.

Terminal window
poisson-tasks init --yes --no-check-key --provider anthropic --model claude-haiku-5-5 --recipe first-look --tasks-per-level 10
Output5 lines · exit 0
ok wrote tasks.toml: depth at 1, 3 and 8, 10 tasks each, against claude-haiku-5-5
tokenizer present
key ANTHROPIC_API_KEY is not set; set it in this shell (export ANTHROPIC_API_KEY=…) and run again
as one command poisson-tasks doctor --show-command prints it
next: poisson-tasks run

The [model] table it wrote. No price is set for a Claude model, so a run is capped in tokens until you add the model’s price (The settings file).

tasks.toml
[model]
provider = "anthropic" # openai | anthropic | ollama | vllm | openai-compatible
name = "claude-haiku-5-5" # the model id the endpoint expects
base_url = "https://api.anthropic.com/v1/"
api_key_env = "ANTHROPIC_API_KEY" # the NAME of the variable that holds the key; "" for none.
# Its name must contain API_KEY, which keeps the key from the program under test.

doctor says whether this environment can run the settings file, line by line. Its key line checks the key with one free request to the endpoint. It exits 0 when the environment is ready and 4 when it is not, and each failing line ends with what to run. It is free: no task runs and no tokens are spent.

Terminal window
poisson-tasks doctor
Outputexcerpt, 2 of 8 lines · exit 0
ok this environment is ready to run tasks.toml
⋯ 4 lines
key ok ANTHROPIC_API_KEY is set, and api.anthropic.com accepts it (a free request)
⋯ 2 lines
All output8 lines
ok this environment is ready to run tasks.toml
python ok /Users/Shared/gs-cap/venv-tasks/bin/python3 (3.11.7)
package ok poisson-tasks 0.4.1 at /Users/Shared/gs-cap/venv-tasks/lib/python3.11/site-packages/poisson_tasks
tokenizer ok present (o200k_base, sha256 446a9538cb6c) at /Users/Shared/gs-cap/venv-tasks/lib/python3.11/site-packages/poisson_tasks/data/o200k_base.tiktoken
config ok tasks.toml: depth at 1, 3 and 8, 10 tasks each, against claude-haiku-5-5
key ok ANTHROPIC_API_KEY is set, and api.anthropic.com accepts it (a free request)
harness ok each run's first episode sets up uv with astral.sh's installer unless uv 0.6.10 or later is already on your PATH, and fetches four packages and their dependencies from PyPI; uv is already at ~/.local/bin/uv
platform ok macOS (darwin)

With the key accepted, poisson-tasks run prints its plan and what it will cost before it spends anything (Commands).