Installation
This page shows different ways to install deet across platforms and use-cases
Quick install (Windows)
Windows users can install deet and everything it needs - git,
uv, pandoc, and deet itself - with a single
command. Open PowerShell (press the Windows key, type "powershell", and press Enter), then run:
irm https://raw.githubusercontent.com/destiny-evidence/data-extraction-evaluation-toolkit/development/install.ps1 | iex
This should install deet, and all its dependencies (unless you already have them). When it finishes, run deet --help to check.
It is a plain PowerShell script — you can
read it first
before piping it to iex.
Options (branch, skipping pandoc, forcing a reinstall)
To install from a specific branch or tag — for a feature that is not yet released — fetch the script first so it can take arguments:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/destiny-evidence/data-extraction-evaluation-toolkit/development/install.ps1))) -Ref development
Other flags:
-SkipPandoc— skip pandoc, if you only work with abstracts or pre-processed markdown.-Force— reinstalldeeteven if it is already present (use this to upgrade).
If you would rather install each piece yourself — or you are on macOS or Linux — follow the manual steps below.
Basic setup and dependencies
Accessing the terminal
Press the windows key, type "powershell", and press enter. This is your command line.
If you a mac user, open the terminal from Applications -> Utilities -> Terminal.
If you are Linux user, press Ctrl + Shift + t
If you are using an IDE, like VS Code or PyCharm, you can also open the integrated terminal.
Installing a package manager
A package manager is a tool that makes it easier to install other command line tools. You could use either scoop or cholatey.
We recommend scoop, as it does not require admin privileges to install packages. If you prefer chocolatey, replace scoop install X with choco install X in the following commands.
Mac/linux systems come with package managers included. For mac users, this is brew, for (Debian) linux users, this is apt.
Installing pandoc
If you want to use deet with full-texts pdfs, as opposed to abstracts, or pre-processed markdown files, you will need to have installed pandoc, a widespread open source file/document conversion utility.
scoop install pandoc
Manual Pandoc installation
Manual pandoc installation
If, for any reason, pandoc installation did not work as expected, you can attempt to install pandoc manually. Follow these instructions to do so and check whether installation was successful.
1. Installation
There are multiple options. The first and possibly best one is using an installer file provided via GitHub. For the most recent release, visit:
Select the .msi file from the latest release (e.g. pandoc-3.8.3-windows-x86_64.msi for release 3.8.3, as of January 2026) and run the installer by double-clicking on it.
Alternatively, one may download the ZIP file from the link above, unpack it, and move the binaries to a directory of your choice (not tested; more information is available via the link below).
For other options (Chocolatey or Winget package manager, or Conda Forge), see:
Note: Using the .msi method should remove older versions of Pandoc and update PATH variables automatically, while other methods may cause multiple versions to be installed.
2. Verifying that Pandoc works
These instructions are taken from:
Steps
- Search for
cmdin the Windows Start menu to launch Command Prompt. It should also be possible to use Windows PowerShell. - If you are using
cmd, type the following before using Pandoc to set the encoding to UTF-8:
chcp 65001
- Type the following and press Enter to check if Pandoc is installed:
pandoc --version
It should say something like:
pandoc 3.8.3 Features: +server +lua Scripting engine: Lua 5.4 User data directory: C:\Users\YourUserName\AppData\Roaming\pandoc Copyright (C) 2006-2025 John MacFarlane. Web: https://pandoc.org
This is free software; see the source for copying conditions. There is no warranty, not even for merchantability or fitness for a particular purpose.
-
Navigate to a directory of your choice using the
cdcommand. See: https://stackoverflow.com/questions/17753986/how-to-change-directory-using-windows-command-line (This link is useful if you need to switch to a different drive.) -
Create a new directory to test Pandoc:
mkdir pandoc-test
-
Navigate into the new directory:
```batch
cd pandoc-test
It should now show `pandoc-test` before the blinking cursor in the command prompt.
If the directory is not shown, run:
```batch
echo %cd%
- Outside the command prompt (using Notepad, for example), create a file called
test1.mdin yourpandoc-testdirectory. If Windows is hiding file extensions then please make sure that the displayed file name corresponds to the actual file name, and that no hidden '.txt' extension is added. Paste the following text into your file, then save the file.
---
title: Test
...
# Test!
This is a test of *pandoc*.
- list one
- list two
-
Back in the command prompt (still in the
pandoc-testdirectory), typedirand press Enter. You should seetest1.mdlisted. -
Convert the file to HTML by typing:
pandoc test1.md -f markdown -t html -s -o test1.html
Info:
- test1.md tells Pandoc which file to convert.
- -s creates a standalone file with a header and footer.
- -o test1.html specifies the output file name.
Note that -f markdown and -t html could be omitted, since the default is to convert from Markdown to HTML.
-
Type the following to open the HTML file in your browser:
.\test1.htmlAlternatively, open the folder in File Explorer and double-click
test1.html.
3. Completion
If the HTML file opens and displays well then you have successfully installed Pandoc and converted a Markdown file to HTML.
brew install pandoc
sudo apt install pandoc
Installing a python package manager
We recommend installing uv to manage python packages. This can also be used to install deet as a standalone cli app.
In windows, the easiest way to do install uv is using your package manager.
scoop install uv
In Mac/Linux, we recommend you install uv using the standalone installer
Updating uv
Deet requires at least version 0.9.8 of uv.
Check your current uv version by running uv --version.
Update uv by running uv self
Now you have the basics set up, continue to CLI users if you want to use the CLI, or package users if you want to use deet as a package, or to contributors if you want to contribute to deet.
Installing git
Git is a versioning tool that is used here to install the deet package, which is stored on Github.
On windows machines, install git using your package manager:
scoop install git
Type git --version to verify that git is installed, otherwise run xcode-select --install
Install git using your package manager, e.g. sudo apt install git on Debian/Ubuntu
CLI users
If you just want to use the CLI, we recommend you install the package globally into an isolated managed environment. You can do this using uv tool install <package>.
To install deet from PyPI, where it is published as destiny-deet
uv tool install destiny-deet
Now you are ready to use deet. To test this, run
deet --help
If you need an optional feature such as the semantic keyword extractor, see Installing optional features.
Installing from a specific branch
If a feature you want to use is being actively worked on, and is not yet released, you can install a specific branch of deet directly from GitHub. For example
uv tool install git+https://github.com/destiny-evidence/data-extraction-evaluation-toolkit.git@development
will install deet from the development branch.
Package users
You can also use deet as a python package, within another project.
Assuming you are using UV to manage dependencies within your project, you can add deet via
uv add destiny-deet
uv sync
or, with pip, pip install destiny-deet. To use a specific branch of deet, add git+https://github.com/destiny-evidence/data-extraction-evaluation-toolkit.git@branch instead.
Installing optional features
Some of deet's features rely on heavier libraries that are not installed by default. These live behind optional extras, which you opt into by naming them in square brackets.
| Extra | Enables |
|---|---|
semantic |
the semantic keyword extractor (fastembed) |
parsers |
extra document parsers (marker-pdf, pypandoc) |
lang-quality |
language-quality checks (nltk) |
Add the extra in brackets before the @ git+... source:
uv tool install destiny-deet[semantic]
Enable the extra with --extra when you add deet:
uv add --extra semantic git+https://github.com/destiny-evidence/data-extraction-evaluation-toolkit.git
uv sync
In a cloned checkout, sync the extras you need (or --all-extras):
uv sync --extra semantic
Combine multiple extras with commas, e.g. [semantic,parsers] (or repeat
--extra). Append @branch to the git URL to install extras from a specific
branch.
The parsers extra also needs pandoc
parsers installs the Python wrappers; full-text PDF parsing additionally
needs the pandoc system binary — see Installing pandoc.
Contributors
If you want to contribute to deet, you will want to clone the repository.
git clone git@github.com:destiny-evidence/data-extraction-evaluation-toolkit.git # SSH
# or
git clone https://github.com/destiny-evidence/data-extraction-evaluation-toolkit.git # HTTPS
cd data-extraction-evaluation-toolkit
Use uv sync to install dependencies (you may need to re-run this if you switch to another branch)
uv sync
Activate your virtual environment
source .venv/Scripts/activate
.venv/bin/activate
Installing pre-commit hooks
Before committing any changes, install pre-commit locally (in your activated venv).
This will check any committed changes to aid code consistency.
pre-commit install
Settings and environment variables
deet reads general settings from a .env file within the directory you are running it from.
Settings will be set to default values if this file does not exist, but if you want to use deet with azure models (default behaviour), you will need to provide a set of credentials.
If you are using the CLI, you will be prompted to enter this information
Otherwise, open a file called .env in the directory you are running deet, and add the following lines, replacing the placeholders with your own credentials:
AZURE_API_KEY="your-azure-api-key-here"
AZURE_API_BASE=https://your-resource.openai.azure.com/