Skip to content

Installation

TagStudio provides releases as well as full access to its source code under the GPLv3 license.

Executables

To download executable builds of TagStudio, visit the Releases page of the GitHub repository and download the latest release for your system under the "Assets" section at the bottom of the release.

TagStudio has builds for Windows, macOS (Apple Silicon & Intel), and Linux. We also offer portable releases for Windows and Linux which are self-contained and easier to move around.

Third-Party Dependencies

You may need to install third-party dependencies such as FFmpeg to use the full feature set of TagStudio.

For macOS Users

On macOS, you may be met with a message saying ""TagStudio" can't be opened because Apple cannot check it for malicious software." If you encounter this, then you'll need to go to the "Settings" app, navigate to "Privacy & Security", and scroll down to a section that says ""TagStudio" was blocked from use because it is not from an identified developer." Click the "Open Anyway" button to allow TagStudio to run. You should only have to do this once after downloading the application.


Package Managers

Unofficial Releases

We do not currently publish TagStudio to remote package repositories. Any TagStudio distributions outside of the GitHub repository are unofficial and not maintained by us!

Installation support will not be given to users installing from unofficial sources. Use these versions at your own risk!

Installing with PIP

TagStudio is installable via PIP. Note that since we don't currently distribute on PyPI, the repository needs to be cloned and installed locally. Make sure you have Python 3.12 and PIP installed if you choose to install using this method.

The repository can be cloned/downloaded via git in your terminal, or by downloading the zip file from the "Code" button on the repository page.

git clone https://github.com/TagStudioDev/TagStudio.git

Once cloned or downloaded, you can install TagStudio with the following PIP command:

pip install .

Developer Dependencies

If you wish to create an editable install with the additional dependencies required for developing TagStudio, use this modified PIP command instead:

pip install -e .[dev]
See more under "Developing"

TagStudio can now be launched via the tagstudio command in your terminal.


Linux

Some external dependencies are required for TagStudio to execute. Below is a table of known packages that will be necessary.

Package Reason
dbus required for Qt; opening desktop applications
ffmpeg audio/video playback
libstdc++ required for Qt
libva hardware rendering with VAAPI
libvdpau hardware rendering with VDPAU
libx11 required for Qt
libxcb-cursor OR xcb-util-cursor required for Qt
libxkbcommon required for Qt
libxrandr hardware rendering
pipewire PipeWire audio support
qt required
qt-multimedia required
qt-wayland Wayland support

Nix(OS)

For Nix(OS), the TagStudio repository includes a flake that provides some outputs such as a development shell and package.

Two packages are provided: tagstudio and tagstudio-jxl. The distinction was made because tagstudio-jxl has an extra compilation step for JPEG-XL image support. To give either of them a test run, you can execute nix run github:TagStudioDev/TagStudio#tagstudio. If you are in a cloned repository and wish to run a package with the context of the repository, you can simply use nix run with no arguments.

nix build can be used in place of nix run if you only want to build. The packages will only build if tests pass.

Nix Support

Support for Nix is handled on a best-effort basis by one of our maintainers. Issues related to Nix may be slower to resolve, and could require further details.

Want to add TagStudio into your configuration?

This can be done by first adding the flake input into your flake.nix:

flake.nix
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

    tagstudio = {
      url = "github:TagStudioDev/TagStudio";
      inputs.nixpkgs.follows = "nixpkgs"; # Use the same package set as your flake.
    };
  };
}

Then, make sure you add the inputs context to your configuration:

flake.nix
{
  outputs =
    inputs@{ home-manager, nixpkgs, ... }:
      {
        nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
          system = "x86_64-linux";

          specialArgs = { inherit inputs; };
          modules = [
            ./configuration.nix

            home-manager.nixosModules.home-manager
            {
              home-manager = {
                useGlobalPkgs = true;
                useUserPackages = true;

                extraSpecialArgs = { inherit inputs; };
                users.USER.imports = [
                  ./home.nix
                ];
              };
            }
          ];
        };
      };
}
flake.nix
{
  outputs =
    inputs@{ nixpkgs, ... }:
      {
        nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
          system = "x86_64-linux";

          specialArgs = { inherit inputs; };
          modules = [
            ./configuration.nix
          ];
        };
      };
}
flake.nix
{
  outputs =
    inputs@{ home-manager, nixpkgs, ... }:
    let
      pkgs = import nixpkgs {
        system = "x86_64-linux";
      };
    in
    {
      homeConfigurations.USER = home-manager.lib.homeManagerConfiguration {
        inherit pkgs;

        extraSpecialArgs = { inherit inputs; };
        modules = [
          ./home.nix
        ];
      };
    };
}

Finally, inputs can be used in a module to add the package to your packages list:

home.nix
{ inputs, pkgs, ... }:

{
  home.packages = [
    inputs.tagstudio.packages.${pkgs.stdenv.hostPlatform.system}.tagstudio
  ];
}
configuration.nix
{ inputs, pkgs, ... }:

{
  environment.systemPackages = [
    inputs.tagstudio.packages.${pkgs.stdenv.hostPlatform.system}.tagstudio
  ];
}

Don't forget to rebuild!

Third-Party Dependencies

For audio/video thumbnails and playback you'll need FFmpeg installed on your system. If you encounter any issues with this, please reference our FFmpeg Help guide.

You can check to see if FFmpeg and FFprobe are correctly located by launching TagStudio and going to "About TagStudio" in the menu bar.