explaingit

tagstudiodev/tagstudio

6,928PythonAudience · generalComplexity · 2/5LicenseSetup · easy

TLDR

A desktop app that organizes your photos and files using a structured tag hierarchy, without moving or renaming anything. Your files stay exactly where they are, only the tag data is stored separately.

Mindmap

mindmap
  root((tagstudio))
    What it does
      Tag files
      Boolean search
      No file moving
    Tag System
      Hierarchy
      Aliases
      Colors
      Parent tags
    File Types
      Photos and RAW
      Video and audio
      PDFs and ebooks
    Search
      AND OR NOT
      File type filter
      Untagged filter
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Tag and search a large photo collection using a hierarchical tag system without moving files out of their existing folders

USE CASE 2

Find all untagged files in a directory to work through a backlog of unsorted photos or documents

USE CASE 3

Add custom metadata fields like photographer name, date, or notes to any file entry in your library

Tech stack

Python

Getting it running

Difficulty · easy Time to first run · 5min

Pre-built installers are available for all platforms from the GitHub releases page, no command-line setup needed for most users.

Free to use and share, but if you distribute modified versions you must also release your changes under the same GPL-3.0 license.

In plain English

TagStudio is a desktop application for organizing photos and files using a tag-based system. The core promise is that it works alongside your existing folder structure rather than replacing it: you point it at a directory, it creates a hidden folder there to store its data, and all your files stay exactly where they are. Nothing is moved or duplicated. The tagging system is more structured than a simple list of text labels. Each tag can have a full name, a short name, aliases, a color, and parent tags that create a hierarchy. This hierarchy affects search: if you search for a parent tag, results include entries tagged with any of its children. Tags can also be set as categories to change how they display in the preview panel. Alongside tags, you can add custom fields to any file entry, such as a title, author, date, or multi-line notes. Search supports boolean logic with AND, OR, and NOT operators, and you can filter by file path, file type, or media type. There are also built-in special searches to find files that have no tags yet or no fields at all, which is useful for working through a backlog of unsorted files. All common file types work as entries in a library, including photos, RAW camera formats, videos, audio files, animated images, PDFs, ebooks, Photoshop files, Blender projects, and plaintext. Not all types have a preview panel built in, but the README links to a documentation page listing which formats support previews. TagStudio is written in Python and is currently in alpha. Pre-built installers are available from the GitHub releases page for users who do not want to run from source. The project is open source under the GPL-3.0 license and accepts community contributions, including translations hosted through Weblate.

Copy-paste prompts

Prompt 1
I installed TagStudio and pointed it at my photo directory. How do I create a tag hierarchy where a parent tag like Animals automatically includes photos tagged Dog or Cat?
Prompt 2
I have thousands of unsorted photos in TagStudio with no tags. How do I use the special untagged search to find them and start tagging them efficiently?
Prompt 3
Show me how to write a boolean search in TagStudio using AND, OR, and NOT to find photos that have a Location tag but do not have an Edited tag.
Prompt 4
I want to add custom fields like Camera Model and Photographer to my photo entries in TagStudio. How do I create those fields and fill them in?
Open on GitHub → Explain another repo

← tagstudiodev on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.