Thesivor docs
Concepts

Per-project Python

One environment per project, layered on a shared base, with packages recorded in the project.

In short

Each project gets its own Python environment on top of a shared base interpreter. A package you install for one paper never affects another project, the base, or your system Python. The project's packages are recorded in the project folder.

1The base is shared and read-only

The first notebook use installs one base interpreter with the common packages. Thesivor never modifies it after install.

2The project gets a venv

The kernel and any collection scripts run in the project's environment, which layers on the base. Heavier packs (SciPy/scikit-learn, PyArrow, ONNX) are added only when a feature needs them.

3The lock file travels with the project

record/environment/python.lock.json records versions and per-platform files with SHA-256. Opening the project on another machine offers to install exactly those.

For technical users

%pip install / !pip install / !python -m pip install in a cell go through the download system: pip resolves with --dry-run --report, the files come through the download manager and are checked against the index's published SHA-256, and pip installs them with --require-hashes. Refused: sources with no published hash, VCS URLs, and local paths. A source-only package is downloaded hash-checked but built by pip, whose build tools are not hash-checked — the cell output says so. Repair environment rebuilds a broken project environment.

Last verified: 2026-10-23