Siegfried is a signature-based file format identification tool.

It implements:



Mac Homebrew (or Homebrew on Linux)

brew install richardlehane/digipres/siegfried

(a fork of mistydemeo/digipres/siegfried)

Ubuntu/Debian (64 bit)

curl -sL "" | gpg --dearmor | sudo tee /usr/share/keyrings/siegfried-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/siegfried-archive-keyring.gpg] buster main" | sudo tee -a /etc/apt/sources.list.d/siegfried.list
sudo apt-get update && sudo apt-get install siegfried


pkg install siegfried

Arch Linux

git clone
cd siegfried
makepkg -si


Identify files and directories

sf file.ext // Identify a file
sf DIR // Identify all files in a directory and its subdirectories
sf -nr DIR // Identify all files in a directory but not subdirectories

Save output

sf file.ext or DIR > my_results.yaml // Use a redirect (">") to save your results
sf -csv file.ext or DIR > my_results.csv // Get identification results in CSV format (default is YAML)
sf -json file.ext or DIR > my_results.json // Get identification results in JSON format

Additional commands

sf -z file.ext or DIR // Scan within zip, tar, gzip, warc or arc files
sf -hash sha1 file.ext or DIR // Calculate md5, sha1, sha256, sha512, or crc hash
sf -multi 32 file.ext // Scan many files at once
sf -setconf -multi 32 -hash md5 -csv // Save your preferred configuration
sf -setconf -csv -conf csv.conf // Save (or load) named configurations with -conf

Update your signature file

sf -update

User guide

Detailed information about installing siegfried, identifying file formats, as well as more advanced topics, is available on the wiki.

Modify your signature file

The roy tool builds siegfried signature files. For help using this tool, see this guide.


Code, License, Issues

To view the source code and see the license details, go to the project page on Github. Please post any bugs or feature request to the issues page.


Join the Google Group for updates, signature releases, and help.

Try siegfried

Richard's portrait

Drag a file on to Siegfried's anvil!

Chart your results

Upload a siegfried, droid or fido results file for analysis and sharing.

You'll get a page like this:


See how siegfried compares with other format identification tools by viewing these automated benchmarks.

Benchmarks are run each time new code is committed to siegfried's develop branch. To see how the next release is progressing, check out the develop benchmarks.

Sets tool

Format sets enable grouping of formats by the sf and roy tools: e.g. roy build -limit @pdf. They can be useful elswhere, e.g. to isolate the formats Apache Tika can extract text from. This widget converts format sets to plain text or code snippets.

1. Select one or more PUIDs or sets (e.g. fmt/123 or @pdf). Sets are prefixed with the '@' symbol.


2. Choose your output format (plain text or a code snippet with a function that matches an input PUID against a set.)