TagStudio is a free, open source photo & video editors project written in Python and released under GPL-3.0. It has 7,195 GitHub stars, 467 forks and 280 open issues, and was last pushed 3 days ago. On this registry it ranks #12 of 22 tracked projects in Photo & Video Editors, with 5 head-to-head comparisons available.

What is TagStudio?

TagStudio is a free, open-source (GPL-3.0) photo and file management application written in Python that organizes an existing media collection with a tag-based system rather than importing, moving, or duplicating files.

What it is

TagStudio is a desktop application for photo and file organization built around an underlying tag-based system that emphasizes freedom and flexibility for the user. It sits in the photo and video editor / file management space, and it deliberately rejects three things common to that space: proprietary programs and formats, a sea of sidecar files, and any complete upheaval of the existing filesystem structure. The project is written in Python, licensed under GPL-3.0, and developed in the open on GitHub, with documentation hosted at docs.tagstud.io and translations managed through Weblate.

The concrete problem it solves is cataloguing without capture. Libraries in TagStudio act as a layer on top of existing folders and file structure, in the same way Obsidian vaults do, so users never move or duplicate files to gain tagging and search. Opening a system directory as a library places a .TagStudio folder inside it; files in that library are called "entries" and are tracked in a SQLite database inside that folder, alongside tags and other library data. That replaces the two usual alternatives: a manager that ingests files into its own opaque store, and a folder full of loose sidecar files that travels badly and breaks when files are renamed.

Key capabilities

  • Libraries layered over existing directories, with a .TagStudio folder holding a SQLite database of entries, tags, and library data.
  • Tags with structured attributes rather than plain strings: Name (which does not have to be unique), Shorthand Name, Aliases, Color, and Parent Tags.
  • Parent tag inheritance, so a tag can be substituted in searches for any of its parent tags, plus a disambiguation checkbox on parents to resolve non-unique names.
  • Entries and Fields, giving a file a set of field values in addition to tags.
  • Broad file type coverage in libraries: raster images such as JPEG and PNG, vector SVG, animated GIF, WEBP, and APNG, RAW formats, video, plaintext files, documents and eBooks where supported, and Photoshop PSDs, Blender projects, and Krita projects.
  • Playback support for video, audio files, and supported animated image formats.
  • Localized interface strings through the project's Weblate translation page, and REUSE-compliant licensing metadata.

Who uses it and how

  • Photographers and collectors who already have a folder hierarchy they like and want tags on top of it without importing everything into a managed catalog.
  • Archivists and hobbyist organizers working with mixed media, since libraries accept all file types even where dedicated previews are not available.
  • Desktop users on macOS and other platforms, as shown by the TagStudio Alpha v9.5.5 screenshot running on macOS Sequoia.
  • Translators contributing interface strings through the hosted Weblate project page rather than through code changes.
  • Users who want their metadata to stay inspectable, because tags, fields, and entries live in a SQLite database in the library folder rather than in a closed format.

Getting started

We are retrieving the installation and download details from the TagStudio documentation at docs.tagstud.io and the release downloads on the GitHub releases page.

How it compares

The facts do not name any paid products that TagStudio replaces, so a direct contrast on licence or cost model is not available here. The closest named analogue is the Obsidian vault: TagStudio libraries work the same way, as a layer over folders that the user keeps in place, which is the opposite of tools that require files to be moved or duplicated. Against other taggers and photo organizers in this registry, its distinguishing claim is the structured, inherited tag model and the absence of sidecar sprawl.

When to use it — and when not to

Pick TagStudio if the folder structure is fine as it is and the missing piece is searchable tags and fields over mixed media, and be prepared to keep the .TagStudio folder and its SQLite database backed up alongside the files it describes, since it is the record of your tagging work. Do not pick it if you need guaranteed previews for every file type, because the README states that all file types are supported in libraries but not all have dedicated preview support, and it links to a separate supported previews page. It is also alpha software at v9.5.5 with 280 open issues, so users who need a stable, finished catalog application should weigh that before committing a large library to it.

project readme (upstream, from github) — read inline

TagStudio: A User-Focused Photo & File Management System

Downloads Translations REUSE Status Python Checks

TagStudio is a photo & file organization application with an underlying tag-based system that focuses on giving freedom and flexibility to the user. No proprietary programs or formats, no sea of sidecar files, and no complete upheaval of your filesystem structure. Read the documentation and more at docs.tagstud.io!

TagStudio Alpha v9.5.5 running on macOS Sequoia.

Contents

Translation hosting generously provided by Weblate. Check out our project page to help translate TagStudio!

Feature Highlights

Libraries

A TagStudio library contains all of your tags, fields for a set of files based on one of your system directories. Similar to how Obsidian vaults function, TagStudio libraries act as a layer on top of your existing folders and file structure, and don't require your to move or duplicate files.

TagStudio places a .TagStudio folder in the folder you open as a library. Files included in your library are referred to as "entries", and are kept track of inside of a SQLite database inside the .TagStudio folder along with tags and other library data.

File Entries

All file types are supported in TagStudio libraries, just not all have dedicated preview support. For a full list of filetypes with supported previews, see the "Supported Previews" page on the documentation site. There's also playback support for videos, audio files, and supported animated image formats.

For a generalized list of what's currently supported:

  • Images
    • Raster Images (JPEG, PNG, etc.)
    • Vector (SVG)
    • Animated (GIF, WEBP, APNG)
    • RAW Formats
  • Videos
  • Plaintext Files
  • Documents (If supported)
  • eBooks (If supported)
  • Photoshop PSDs, Blender Projects, Krita Projects, and more!

Tags and Fields

Tags represent an object or attribute - this could be a person, place, object, concept, and more. Unlike most tagging systems, TagStudio tags are not solely represented by a line of text or a hashtag. Tags in TagStudio consist of several properties and relationships that give extra customization, searching power, and ease of tagging that cannot be achieved by string-based tags alone. TagStudio tags are designed to be as simple or as complex as you'd like, giving options to users of all skill levels and use cases.

Tags currently consist of the following attributes:

  • Name: The full name for your tag. This does NOT have to be unique!
  • Shorthand Name: The shortest alternate name for your tag, used for abbreviations.
  • Aliases: Alternate names your tag goes by.
  • Color: The display color of your tag.
  • Parent Tags: Other tags in which this tag inherits from. In practice, this means that this tag can be substituted in searches for any listed parent tags.
    • Parent tags checked with the "disambiguation" checkbox next to them will be used to help disambiguate tag names that may not be unique.
    • For example: If you had a tag for "Freddy Fazbear", you might add "Five Nights at Freddy's" as one of the parent tags. If the disambiguation box is checked next to "Five Nights at Freddy's" parent tag, then the tag "Freddy Fazbear" will display as "Freddy Fazbear (Five Nights at Freddy's)". Furthermore, if the "Five Nights at Freddy's" tag has a shorthand like "FNAF", then the "Freddy Fazbear" tag will display as "Freddy Fazbear (FNAF)".
  • Is Category: A property that when checked, treats this tag as a category in the preview panel.

Fields, like tags, are additional pieces of custom metadata that you can add to your file entries. Fields currently have several hardcoded names (e.g. "Title", "Author", "Series") but custom field names are planned for an upcoming update.

Field types currently include:

  • Text Lines: Single lines of text.
  • Text Boxes: Multi-line pieces of text.
  • Datetimes: Dates and times.

Search

  • Search for file entries based on tags, file path (path:), file types (filetype:), and even media types! (mediatype:). Path searches currently use glob syntax, so you may need to wrap your filename or filepath in asterisks while searching. This will not be strictly necessary in future versions of the program.
  • Use and combine boolean operators (AND, OR, NOT) along with parentheses groups, quotation escaping, and underscore substitution to create detailed search queries
  • Use special search conditions (special:untagged and special:empty) to find file entries without tags or fields, respectively

Basic Usage

[!TIP] For more usage instructions, see the documentation site!

Creating/Opening a Library

With TagStudio opened, start by creating a new library or opening an existing one using File -> Open/Create Library from the menu bar. TagStudio will automatically create a new library from the chosen directory if one does not already exist. Upon creating a new library, TagStudio will automatically scan your folders for files and add those to your library (no files are moved during this process!).

Refreshing the Library

Libraries under 10,000 files automatically scan for new or modified files when opened. In order to refresh the library manually, select "Refresh Directories" under the File menu or by pressing Ctrl+R (macOS: ⌘ Command+R).

Creating Tags

Create a new tag by accessing the "New Tag" option from the Edit menu or by pressing Ctrl+T (macOS: ⌘ Command+T). In the tag creation panel, enter a tag name, optional shorthand name, optional tag aliases, optional parent tags, and an optional color.

Tag Manager

You can manage your library of tags from opening the "Tag Manager" panel from Edit -> "Tag Manager" or by pressing Ctrl+M (macOS: ⌘ Command+M). From here you can create, search for, edit, and permanently delete any tags you've created in your library.

Editing Tags

To edit a tag, click on it inside the preview panel or right-click the tag and select "Edit Tag" from the context menu.

Adding Tags to File Entries

Access the "Add Tag" search box by either clicking on the "Add Tag" button at the bottom of the right sidebar, accessing the "Add Tags to Selected" option from the File menu, or by pressing Ctrl+Shift+T (macOS: ⌘ Command+Shift+T).

From here you can search for existing tags or create a new one if the one you're looking for doesn't exist. Click the "+" button next to any tags you want to the currently selected file entries. To quickly add the top result, press the Enter/Return key to add the top-most tag and reset the tag search. Press Enter/Return once more to close the dialog box. By using this method, you can quickly add various tags in quick succession just by using the keyboard!

To remove a tag from a file entry, hover over the tag in the preview panel and click on the "-" icon that appears.

Adding Fields to File Entries

To add a metadata field to a file entry, start by clicking the "Add Field" button at the bottom of the preview panel. From the dropdown menu, select the type of metadata field you’d like to add to the entry

Editing Fields

Hover over the field and click the pencil icon. From there, add or edit text in the dialog box popup.

Relinking Moved Files

readme truncated — read the full docs on github

Frequently asked questions

Is TagStudio free to use?

TagStudio is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does TagStudio do?

A User-Focused Photo & File Management System

What is TagStudio written in?

TagStudio is primarily written in Python. Its source is publicly available at https://github.com/TagStudioDev/TagStudio, and it has 7,195 GitHub stars.