Install#

This page puts Ingence on your computer. It takes a few minutes. Ingence is a pre-alpha.

What you need#

  • A system: macOS, Linux or Windows.

  • Python 3.12, 3.13 or 3.14. If you use uv (below), it fetches Python for you.

  • A laptop is enough. Ingence is built for a machine with about 12 GB of memory and four to eight cores. It uses no graphics card.

Pick one of the four ways below. Each is one command with no extras. uv is the quickest.

With pip, in a virtual environment#

A virtual environment is a folder that holds Ingence and the libraries it needs, apart from everything else. First check that you have Python 3.12, 3.13 or 3.14 with python3.12 --version (for 3.13 or 3.14, change the number). If you do not, install it from python.org, with brew install python@3.12, or from your system’s packages.

python3.12 -m venv ~/ingence-env
~/ingence-env/bin/python -m pip install ingence
~/ingence-env/bin/ingence --version

To type ingence alone, activate the environment in each new terminal: source ~/ingence-env/bin/activate. To upgrade, run ~/ingence-env/bin/python -m pip install -U ingence.

py -3.12 -m venv $HOME\ingence-env
& $HOME\ingence-env\Scripts\python -m pip install ingence
& $HOME\ingence-env\Scripts\ingence --version

To type ingence alone, activate the environment in each new terminal: & $HOME\ingence-env\Scripts\Activate.ps1. To upgrade, run & $HOME\ingence-env\Scripts\python -m pip install -U ingence.

To remove Ingence, delete the ingence-env folder.

With pipx#

pipx installs a command-line program into an environment of its own, like uv tool. It uses the Python it was installed with, which must be 3.12, 3.13 or 3.14:

pipx install ingence
ingence --version

If your default Python is another version, add --python and the name of a 3.12, 3.13 or 3.14 interpreter, for example --python python3.12. To upgrade, run pipx upgrade ingence. To remove Ingence, run pipx uninstall ingence.

With conda#

conda create -n ingence --override-channels -c conda-forge python=3.12 pip
conda activate ingence
python -m pip install ingence
ingence --version

Ingence is not a conda package. pip installs it, and the libraries it needs, into the conda environment, so keep that environment for Ingence alone. mamba takes the same commands. To upgrade, activate the environment and run python -m pip install -U ingence. To remove Ingence, run conda env remove -n ingence.

Check that it worked#

ingence --version

It prints the package version and the version of the record format it writes, for example ingence 0.3.0 (schema 1.23). The first command you run after installing is slower than the rest, once, while Python prepares the engine’s files.

Next: Your first project.

Optional parts#

The install above reads text, tables, TIFF images, PDF files and Office files. The Dashboard’s themes need nothing extra. Optional parts add more: content adds more image formats and notebooks, and images, detect, parsing, solver and graph add further readers and analyses. The detect part uses Magika, a small model that runs locally to recognize file formats. It also installs python-magic, which needs the libmagic library on your system (on macOS, brew install libmagic; on Ubuntu, sudo apt install libmagic1); without it, the other detectors still run. A separate package, fonttools, decodes some fonts embedded in PDF files. Without it, a PDF’s text can come out less complete, and the reader’s warning is kept in the run’s journal.

To add content and fonttools with uv:

uv tool install --force --with fonttools "ingence[content]"

With pip (in a conda environment, python -m pip once the environment is activated):

~/ingence-env/bin/python -m pip install "ingence[content]" fonttools

From a wheel file#

If you were given a wheel file instead, such as ingence-0.3.0-py3-none-any.whl, put its name where the commands above say ingence, and run them from the folder that holds it. For example:

uv tool install ingence-0.3.0-py3-none-any.whl

To upgrade, install the newer file in the same way, with --force for uv tool install.

From the source, to change the code#

The source repository is not public yet. Until it is, install from the package index, as above.