FileTrove
FileTrove indexes files and creates metadata from them.
Install / Use
/learn @steffenfritz/FileTroveREADME
VERSION: v1.0.0-BETA-4
FileTrove walks a directory tree, identifies every file, computes metadata, and writes all results into a SQLite database with TSV export support.
What it collects
| Category | Details | |----------|---------| | File type | MIME type, PRONOM identifier, format version, identification proof/note, extension — via siegfried | | File & directory timestamps | Creation, modification, and access times | | Hashes | MD5, SHA1, SHA256, SHA512, BLAKE2B-512 | | Entropy | Shannon entropy (files up to 1 GB) | | Extended attributes | xattr from ext3/ext4, btrfs, APFS, and others | | EXIF metadata | Extracted from image files | | YARA-X | Match results from your own rule files | | NSRL | Flags known software files via the National Software Reference Library | | Dublin Core | Optional session-level descriptive metadata |
Each file and directory gets a UUIDv4 as a unique identifier. All results land in a SQLite database and can be exported to TSV.
Installation
-
Get the binary — download a release from the releases page, or compile from source (see BUILDING.md). Both a standard dynamic binary (
ftrove) and a static binary (e.g.ftrove_amd64_linux_static) are provided. -
Run the installer from the directory where you want FileTrove to live:
./ftrove --install .This creates a
db/directory, downloads the siegfried signature database, and optionally downloads the NSRL database (1.4 GB compressed). If you already have an NSRL database, copy it intodb/afterwards. -
You're ready.
YARA-X
YARA-X scanning requires a C library that is not bundled with FileTrove. It is built automatically during task build if not already present. See BUILDING.md for setup instructions.
- Example rule files:
testdata/yara/ - When a rule matches, the rule name, session UUID, and file UUID are recorded in the
yaratable. The rule file itself is not stored.
NSRL custom databases
You can build your own NSRL-style database from any newline-delimited list of SHA1 hashes using admftrove, which is built alongside ftrove.
Running a scan
./ftrove -i $DIRECTORY
FileTrove walks $DIRECTORY recursively. Run ./ftrove -h for all available flags.
Viewing results
List all sessions and export one to TSV:
./ftrove -l
./ftrove -t 926be141-ab75-4106-8236-34edfcf102f2
You can also query the SQLite database directly:
- CLI:
sqlite3 db/filetrove.db - GUI: sqlitebrowser
- Visualisation: Sqliteviz
Background
FileTrove is the successor of filedriller, based on the iPres 2021 paper Marrying siegfried and the National Software Reference Library.
Related Skills
node-connect
338.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.4kCommit, push, and open a PR
