A new open source tool for fluid simulation of multi-component plasmas is presented, based on a flexible software design that is applicable to scientific simulations in a wide range of fields. Hermes-3 is built on plasma simulation framework BOUT++, consolidating earlier SD1D and Hermes models into a single code that can be configured at run-time to solve plasma models in 1D, 2D or 3D, either for transport (steady-state) or turbulent (time-evolving) problems, with an arbitrary number of ion and neutral species. We describe the improved numerical algorithms and software design that have been implemented in Hermes-3.To demonstrate the capabilities of this tool, applications relevant to the boundary of tokamak plasmas are presented: 1D simulations of diveror plasmas evolving equations for all charge states of neon and deuterium; 2D transport simulations of tokamak equilibria in single-null X-point geometry with plasma ion and neutral atom species; and simulations of the time-dependent propagation of plasma filaments (blobs).Hermes-3 is publicly available on Github under the GPL-3 open source license. The repository includes documentation and a suite of unit, integrated and convergence tests. Program summaryProgram Title: Hermes-3CPC Library link to program files:https://doi.org/10.17632/rtkvc3r743.1Developer's repository link:https://github.com/bendudson/hermes-3Licensing provisions: GPLv3Programming language: C++14Nature of problem: Simulation of dynamics and steady-state solutions of multiple ion and neutral species in magnetised plasmas using drift-reduced fluid plasma models in 1 to 3 spatial dimensions. Focused on but not restricted to the simulation of turbulence in the boundary of tokamaks.Solution method: Hermes-3 implements a system of flexible software components, that are configured at run-time and coupled by passing a state object between them (the Encapsulate State and Command patterns). Hermes-3 builds on BOUT++ [1], employing the Method of Lines with implicit and explicit time-integration methods in curvilinear coordinates on block-structured meshes, making use of libraries including SUNDIALS, PETSc and Hypre. Hermes-3 implements drift-reduced plasma fluid equations using conservative finite difference methods, and atomic processes that couple plasma and neutral fluids.