GCM-Filters is a python package that allows scientists to perform spatial filtering analysis in an easy, flexible and efficient way. The package implements the filtering method based on the discrete Laplacian operator that was introduced by Grooms et al.(2021). The filtering algorithm is analogous to smoothing via diffusion; hence the name diffusion-based filters. GCM-Filters can be used with either gridded observational data or gridded data that is produced by General Circulation Models (GCMs) of ocean, weather, and climate. Spatial filtering of observational or GCM data is a common analysis method in the Earth Sciences, for example to study oceanic and atmospheric motions at different spatial scales or to develop subgrid-scale parameterizations for ocean models. GCM-Filters provides filters that are highly configurable, with the goal to be useful for a wide range of scientific applications. The user has different options for selecting the filter scale and filter shape. The filter scale can be defined in several ways: a fixed length scale (eg, 100 km), a scale tied to a model grid scale (eg, 1◦), or a scale tied to a varying dynamical scale (eg, the Rossby radius of deformation). As an example, Figure 1 shows unfiltered and filtered relative vorticity, where the filter scale is set to a model grid scale of 4◦. GCM-Filters also allows for anisotropic, ie, direction-dependent, filtering. Finally, the filter shape–currently: either Gaussian or Taper–determines how sharply the filter separates scales above and below the target filter scale.