We present PySulfSat, a new Open-Source Python3 tool for modelling sulfide and sulfate saturation in magmas. Accurately predicting the onset of sulfide or sulfate saturation during fractional crystallization, and/or identifying melt compositions as saturated or undersaturated, is vital to understand and model the behavior of S-loving chalcophile elements during mantle melting, crustal storage and shallow degassing. PySulfSat can calculate the sulfide content at sulfide content at sulfide saturation (SCSS) and the sulfate content at anhydrite saturation (SCAS) using a number of the most recent models. It is extremely fast, performing calculations for each composition in ~1 ms on a standard laptop (16 GB RAM) meaning it can be applied to very large datasets with ease. PySulfSat also supports a variety of different input structures (spreadsheets, Petrolog3 outputs, MELTS tbl files, etc.), without requiring extensive formatting by the user. It can also be integrated with MELTS for python infrastructure, allowing calculations of sulfur solubility during fractional crystallization over a wide range of conditions within a single Jupyter Notebook. Importantly, PySulfSat allows mixing and matching methods, so the SCSS could be calculated with one model using the sulfide composition predicted by a different SCSS model. PySulfSat also contains functions for calculating the proportion of S6+ using popular expressions, along with other common workflows (e.g., calculating the mass proportion of fractionated sulfide). Worked examples are available on the Read The Docs page: https://bit.ly/PySulfSatRTD