Skip to main content

Search, index and tag your files and find duplicates.

The goal of tagfile is to manage and organize documents, downloads, music, pictures and videos in a way that is not tied to any file browser program, filesystem or operating system.

The metadata that tagfile creates and uses to keep track of these files should be portable for use in multiple computer systems and be independent from any persistent mount points, filepaths or filenames.

Features

  • index files with their checksums

  • find duplicate files

  • scan all files in a directory recursively

  • ignore files according to rules in user config

Features to be implemented in later versions:

  • remove duplicate files in the same directory

  • remove duplicate files interactively across directories

  • add user defined tags to files (using checksums, independent from filenames)

Ideas that may or may not be implemented in later versions:

  • ability to filter files using tags to create listings to use with other programs

  • ability to use tags to create directory structures of symlinked content

Quick Manual

Open a terminal and cd to a directory to be scanned for files:

$ cd ~/Music
$ tagfile scan

Now, you can see stats, search for files by string and find duplicate files using the following commands:

$ tagfile stats
$ tagfile find radiohead
$ tagfile same

You can add directories without cd’ing to it first with the add command:

$ tagfile add ~/Videos

Installing tagfile

Tagfile is a command-line end-user application written in Python that is dependant on packages from PyPI. You can install it using pip. But using pipx (https://pypa.github.io/pipx/) is recommended because it avoids dependency problems and/or clashes with python packages from your system’s package manager in the future.

Install tagfile:

$ pipx install tagfile

To build and install from source you can use:

$ make install

This will auto-install flit (build tool) and pipx if not found.

To upgrade or uninstall tagfile in the future you can use:

$ pipx upgrade tagfile
$ pipx uninstall tagfile

Status

Current version: v0.1.0

Tagfile has been written in a short time and used by me sporadically for 8 years after that. All code was contained in a single file script in ~/bin, available from Github only.

Starting in March 2023 I’ve decided to properly release it to PyPI and flesh out the current project structure, command interface and database handling before working on new features so it may live up to its name. Since at this moment in time, you cannot tag your files yet :)

Tagfile adheres to Semantic Versioning. Until a stable version 1.0.0 is ready, the API, CLI and config settings are subject to change from 0.x version to 0.x version, likely without offering migrations.

Prerequisites:

  • Python 3.7 or later

Dependencies (automatically installed with pipx / pip):

Software license

Copyright (c) 2015-2023 Benjamin Althues <benjamin at babab . nl>

tagfile is open source software, licensed under a BSD-3-Clause license. See the LICENSE file for the full license text.

Metadata

Release files for tagfile 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tagfile 0.1.0
File Size Uploaded Provenance
tagfile-0.1.0.tar.gz 6.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tagfile 0.1.0
File Interpreter ABI Platform
tagfile-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.9 kB

Release files / tagfile-0.1.0.tar.gz

Download URL tagfile-0.1.0.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
efe080a92e421c3d07c2a876f212b793461bb193a9f7364a9fe24eb0691fb46e
BLAKE2b-256 checksum
How to use checksums
4d3bb4fc25ea0857f72705e5ac92aecbe00ddfb66229963cd1769db12fe821e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.2

Release files / tagfile-0.1.0-py3-none-any.whl

Download URL tagfile-0.1.0-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c7bfe99483fd382af6da1ce8f7eabc14444d3c5401b4537bce417c28a172d902
BLAKE2b-256 checksum
How to use checksums
9e02c4e32c8847e7edb702d946da368e758768532871f097185a21c1e3673652
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.2

Security for tagfile 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page