We report on the algorithms and numerical methods used in Viriato, a novel fluid-kinetic code that solves two distinct sets of equations: (i) the Kinetic Reduced Electron Heating Model (KREHM) equations [Zocco & Schekochihin, Phys. Plasmas 18, 102309 (2011)] (which reduce to the standard Reduced-MHD equations in the appropriate limit) and (ii) the kinetic reduced MHD (KRMHD) equations [Schekochihin et al., Astrophys. J. Suppl. 182:310 (2009)]. Two main applications of these equations are magnetised (Alfvenic) plasma turbulence and magnetic reconnection. Viriato uses operator splitting (Strang or Godunov) to separate the dynamics parallel and perpendicular to the ambient magnetic field (assumed strong). Along the magnetic field, Viriato allows for either a second-order accurate MacCormack method or, for higher accuracy, a spectral-like scheme composed of the combination of a total variation diminishing (TVD) third order Runge-Kutta method for the time derivative with a 7th order upwind scheme for the fluxes. Perpendicular to the field Viriato is pseudo-spectral, and the time integration is performed by means of an iterative predictor-corrector scheme. In addition, a distinctive feature of Viriato is its spectral representation of the parallel velocity-space dependence, achieved by means of a Hermite representation of the perturbed distribution function. A series of linear and nonlinear benchmarks and tests are presented, including a detailed analysis of 2D and 3D Orszag-Tang-type decaying turbulence, both in fluid and kinetic regimes.