We present BubbleProfiler, a C++ software package for finding field profiles in bubble walls and calculating the bounce action during phase transitions involving multiple scalar fields. Our code uses a recently proposed perturbative method for potentials with multiple fields and a shooting method for single field cases. BubbleProfiler is constructed with modularity, flexibility and practicality in mind. These principles extend from the input of an arbitrary potential with multiple scalar fields in various forms, through the code structure, to the testing suite. After reviewing the physics context, we describe how the methods are implemented in BubbleProfiler, provide an overview of the code structure and detail usage scenarios. We present a number of examples that serve as test cases of BubbleProfiler and comparisons to existing public codes with similar functionality. We also show a physics application of BubbleProfiler in the scalar singlet extension of the Standard Model of particle physics by calculating the action as a function of model parameters during the electroweak phase transition. BubbleProfiler completes an important link in the toolchain for studying the properties of the thermal phase transition driving baryogenesis and properties of gravitational waves in models with multiple scalar fields.