Skip to content
All work
ShippedJuly 2026 – Present

Nineteen checks before your program starts.

preflight

Feature-complete. Not published to PyPI; install from source.

Not yet public
  • Python
  • pytest
  • TOML

A broken environment fails in one line, not four minutes in.

The problem it solves

A missing environment variable, a wrong CUDA version, a model file that isn't where the config says. None of these fail at startup. They fail four minutes in, on line 800, through six libraries, after the GPU is allocated and the dataset is loaded.

Every piece of information needed to prevent that was available before the first import.

What it is

A manifest and a gate. You write down what has to be true for your program to run. preflight checks the machine against that list and refuses to start if the machine disagrees.

Nineteen checks. Fourteen run before any import happens. That ordering is the whole design: a check that imports torch to validate torch has already paid the cost it was supposed to save you.

They cover environment variables, files and directories, Python and package versions, executables on PATH, disk space, ports, and the platform cases that break silently, where a program keeps running and produces wrong output instead of stopping.

Failures come back as one list. Fixing five problems across five runs is five times the wait for the same information.

What it does not do

It does not fix anything. No installing packages, no patching versions, no repairing a broken environment, because a half-repaired environment is worse than a refused one. It also has no idea what your program needs. You write the manifest; preflight holds no opinion about what correct is, only about when you find out. That small a surface is why the tool has no way to be wrong about your project.

Several checks exist because the failure they catch is one I hit and lost time to, not because the check seemed like good practice. The manifest format is what the third ad-hoc validation block at the top of a script turned into. That is the honest origin of most good tooling, and the reason these nineteen are the nineteen that earn their place.

Why this is the one to run

Everything else here is a system you would have to take my word for. preflight is 7,979 lines with 150 tests, and it does one thing you can check in ninety seconds: point it at a deliberately broken environment and watch it name every problem before anything loads.

The smallest complete thing here gets a page of its own because it is the fastest way to find out whether the rest of this holds up.