Non-local closures allow kinetic effects on parallel transport to be included in fluid simulations. This is especially important in the scrape-off layer, but to be useful there the non-local model requires consistent kinetic boundary conditions at the sheath. A non-local closure scheme based on solution of a kinetic equation using a diagonalized moment expansion has been previously reported. We derive a method for imposing kinetic boundary conditions in this scheme and discuss their implementation in BOUT++. To make it feasible to implement the boundary conditions in the code, we are lead to transform the non-local model to a different moment basis, better adapted to describe parallel dynamics. The new basis has the additional benefit of enabling substantial optimization of the closure calculation, resulting in an O(10) speedup of the non-local code.