Before a run: what it costs, and what it changes on your machine
What a first run spends, what it writes outside the folder you work in, what it changes about your shell’s limits, and what it sends over the network. The README has the short version; this page has every item.
run prints its estimate before it asks, and the estimate names where it comes from (a
published card, scaled to your plan). A first look is 30 episodes against gpt-5-nano: about
two cents.
Every run has a finite cap, by default the larger of $1.00 and twice the estimate, rounded up to a whole dollar. The cap is checked on measured usage, so a run can pass it by at most what the calls already in flight cost. config.md has the cap’s settings.
What gets written outside your folder
Section titled “What gets written outside your folder”init and run write only to the folder you work in (tasks.toml, runs/, tasks/), apart
from the following, which the first run does once or on every run.
The tokenizer file
Section titled “The tokenizer file”The tokenizer file, 3.6 MB, is fetched once from openaipublic.blob.core.windows.net into the
installed package. It is not shipped with the package; poisson-tasks doctor --fix fetches it
too.
uv, for the harness
Section titled “uv, for the harness”On every run, the first episode runs the harness’s setup.
- With uv 0.6.10 or later already on your
PATH(or in~/.local/bin, which the setup looks in first), the installer is not fetched and your uv is left as it is. - Without one, uv’s installer from astral.sh puts
uvanduvxin~/.local/bin(and its receipt in~/.config/uv), replacing an older uv there. - Either way, four packages and their dependencies come from PyPI into uv’s cache.
runsetsUV_NO_MODIFY_PATH=1so the installer does not edit your shell start-up files.
The plan prints this in its harness line, and so does doctor:
poisson-tasks doctor --offline | grep harness 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 PyPIverifiers and uv’s leftovers
Section titled “verifiers and uv’s leftovers”- verifiers’ cache, in
~/.cache/verifiers; - one
/tmp/vf-port-<hex>file per episode, which verifiers leaves behind; - one empty
uv-<16 hex>.lockfile in the temporary folder, which uv writes for the harness’s script environment and keeps.
Your limit on open files
Section titled “Your limit on open files”For its own length, run raises its process’s limit on open files as far as your hard limit
allows (macOS starts a shell at 256, and a run of 128 episodes at once needs up to 704). It
changes nothing outside that process. When the hard limit is too low it refuses before it
starts, in one line saying how to raise it.
Your shell’s soft and hard limits are:
ulimit -Sn; ulimit -HnCommands verifiers installs
Section titled “Commands verifiers installs”Installing the package also installs verifiers, and verifiers installs commands beside
poisson-tasks: eval, init, debug, replay, validate, gepa and vf-*. A bare
init is verifiers’ command, not this package’s; this package’s is poisson-tasks init.
The versions it was tested with
Section titled “The versions it was tested with”Only verifiers and tiktoken are pinned, so pip install poisson-tasks takes the newest release
of everything else that the package allows, which can be newer than what a release was tested
with. Each release carries the exact versions its tests passed on, in constraints.txt at its
tag on GitHub. To install those and no others, save that file and give it to pip:
pip install poisson-tasks -c constraints.txtA package the install does not need is not installed by the file. The prove extra is not in it:
Prove is tested on every published release, so it installs as the extra allows.
What goes over the network
Section titled “What goes over the network”A run sends your key to your model’s endpoint and nowhere else, and uploads nothing: it runs
verifiers with push off. Generating tasks, generate, verify, export, card and
doctor --offline open no connection to a model.