Open source · GPLv3 · Reproducible builds

Take a Tails image. Shape it. Prove it stayed honest.

DTails takes a base Debian Live image, lets you add or remove carefully curated tools, and builds a new image you can independently verify — no hidden network calls, no opaque steps, just explicit scripts and logs.

⚠ Highly recommended: verify the file signature before using the image — see how.

Only Open Source software Bit-for-bit reproducible Live USB DTailsOS · a Tails fork
Terminal

cat DTails-amd64-7.10.1.img.manifest.txt

DTails-amd64-7.10.1 build manifest
  base image : tails-amd64-7.10.1.img
  base sha256: b0a5f45e79221abe2c34f6e03f0cbf6b15af5e1df7c2e60cbf5c9af7586beb6f
  output     : DTails-amd64-7.10.1.img  (2258.0 MiB)
  sha256     : f37c4ae7765844031d1f28475a4391975e145b9ac25a540bbef56a2a6efaf375
  flashed to : /dev/sda
  build epoch: 1231006505 (SOURCE_DATE_EPOCH — reproducible)

  Installed (13):
    + BIP39 (iancoleman) offline  v0.5.4
    + Bitcoin Core  v31.1
    + Border Wallets (offline)  v1.0.5
    + Hodl Hodl (web launcher)  v1.0
    + Iris.to (web launcher)  v1.0
    + Liana Wallet  v14.0
    + Mempool.space (web launcher)  v1.0
    + Rana (Nostr pubkeys mining)  v0.5.5
    + RoboSats (web launcher)  v1.0
    + Seedtool (offline)  v2.2.0
    + Snort (web launcher)  v1.0
    + Sparrow Wallet  v2.5.2
    + Specter Desktop  v2.1.10
  Removed (2):
    - GIMP
    - Thunderbird

  Reproducible: the same base image + same selection rebuilds to the
  same SHA256. Share this manifest so others can verify the hash.
DTails logo
License
Open Source - GPLv3
Base
Debian Live / Tails
Trust
You can always verify each internal file and compare hashes
Persistent Storage
No persistent storage is required to run

Curated software, organized by category

Pick what goes into your image — nothing is bundled unless you choose it, and every entry has a pinned version.

Bitcoin

  • Bitcoin Core & Bitcoin Knots
  • Sparrow Wallet, Specter Desktop
  • Bisq, Liana Wallet
  • Hodl Hodl, RoboSats (web launchers)
  • BIP39, Seedtool, Border Wallets (offline)

Nostr

  • Rana — Nostr pubkey mining
  • Snort (web launcher)
  • Iris.to (web launcher)

Monero

  • Feather Wallet
  • Cake Wallet

Communication

  • Briar (desktop)
  • SimpleX Chat (desktop)

Reproducibility

DTails aims for bit-for-bit reproducible images: the same base image and the same software selection should produce the same output hash on any machine.

Verifying a build

Build the same image twice and compare the hash — the two runs must match.

sha256sum DTails.img   # or DTails.iso

The build manifest

Every build also writes a DTails.img.manifest.txt alongside the image — share it so others can confirm they get the same hash from the same selection.

File-level comparison

The Compare Images dialog in the GUI mounts two inputs, unsquashes them, and reports any differing or missing files — useful when you want to know exactly what changed, not just whether the hash matches.

Verifying a flashed device

Compare Images also accepts a device directly (e.g. /dev/sdb), mounted read-only so verification never alters it. For a raw byte check of a dd-flashed device against the source image:

sz=$(stat -c%s DTails.img)
sudo cmp -n "$sz" DTails.img /dev/sdX && echo "device matches image"

Get started

Four steps from a base image to a verified, flashed device.

Package requirements

sudo apt install rsync squashfs-tools xorriso genisoimage syslinux-utils dosfstools mtools parted gdisk build-essential python3-pyqt5 gpg

Clone & run

git clone https://github.com/DesobedienteTecnologico/dtails
cd dtails
python3 dtails.py
Select image file screen
01

Select the image file

Point DTails at your base Tails/Debian Live image or download directly from the GUI.

Select storage device screen
02

Select a storage device

Optional — skip it to just build an image file on disk.

Add or remove packages screen
03

Add or remove packages

Versions can be edited by hand if you want something newer or older.

Live build log screen
04

Monitor the live log

You'll be asked for your sudo password in the terminal during the build. No hidden calls.

Verify releases

Check anything signed by the project against this key before you trust it.

Check your download in the browser

Pick the .img file you downloaded. Your browser hashes it locally with SHA-256 and compares it to the hash published for this release — the file never leaves your computer or gets uploaded anywhere. This only proves the file wasn't corrupted or tampered with in transit; it does not prove it came from us. For that, verify the GPG signature below.

Verifying release signatures

Each release ships a detached GPG signature. Import the project's public key below, then verify the image and its manifest against their .asc files:

gpg --import dtails-pubkey.asc
gpg --verify DTails-amd64-[version].img.asc DTails-amd64-[version].img
gpg --verify DTails-amd64-[version].img.manifest.txt.asc DTails-amd64-[version].img.manifest.txt
Fingerprint
86E32C4CE645DE81DD0F31E24559764E14109E7F
64-bit
4559 764E 1410 9E7F

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
lYHj4a3TeP8=
=WuJx
-----END PGP PUBLIC KEY BLOCK-----  

View the signed key announcement on Nostr ↗