MCPcopy Create free account
hub / github.com/DesobedienteTecnologico/dtails

github.com/DesobedienteTecnologico/dtails @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
167 symbols 454 edges 6 files ⚖ GPL-3.0 8 documented · 5% updated 12d ago★ 891 open issues

Browse by type

Functions 149 Types & classes 18
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img alt="Dtails" src="https://github.com/DesobedienteTecnologico/dtails/raw/main/img/dtails.png" width="200"/>

About

DTails tool lets you take a base Debian Live image, add or remove carefully curated tools, and build a new image you can independently verify. No hidden network or opaque calls — just explicit scripts and logs.

DTailsOS is the fork of Tails.

Packages requirements

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

Getting started

Clone the repository with:

git clone https://github.com/DesobedienteTecnologico/dtails

Once you have clone the repository and you get inside the directory. Run this to start the GUI:

python3 dtails.py

1. Select the image file

2. Select storage device

3. Add or remove packages

You can also modify the version manually.

4. Monitor the Live Log while remastering the image

  • ℹ️ You will need to type the sudo password in your terminal

Reproducibility

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

Verifying

Build the same image twice and compare:

sha256sum DTails.img     # or DTails.iso — the two runs must produce the same hash

You can also check/share the file DTails.img.manifest.txt created after every build.

For a content-level check (file-by-file inside the live filesystem), use the Compare Images dialog in the GUI, which mounts both inputs, unsquashes them and reports any differing/missing files.

Verifying a flashed device

The Compare Images dialog also accepts a device on either side (pick "All files" and select the node, e.g. /dev/sdb). It mounts the device's FAT partition read-only — so verification never alters the device — and compares its live filesystem against the source .iso/.img. This works for both a dd-flashed image and a directly-flashed device, and across USB sticks of different sizes (it compares filesystem content, not raw bytes).

If you flashed with dd and want a raw byte check of the whole image, compare the first image-sized bytes of the device against the source:

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

Compare two images by hashing every file in the live filesystem

Screenshot_2025-12-03_21-08-20

GPG Key

Fingerprint: 86E32C4CE645DE81DD0F31E24559764E14109E7F
64-bit: 4559 764E 1410 9E7F

Core symbols most depended-on inside this repo

browse all functions →

Shape

Method 103
Function 46
Class 18

Languages

Python100%

Modules by API surface

src/ui.py88 symbols
src/runner.py32 symbols
src/compare_images.py24 symbols
src/state.py20 symbols
src/theme.py2 symbols
dtails.py1 symbols

For agents

$ claude mcp add dtails \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page