BFO is an open-source direct-search derivative-free MATLAB solver for bound-constrained mathematical optimization problems.   Its purpose is to find a local minimizer when applied to problems of the form     $\min_x&space;f(x)$ where f is a function from $\inline&space;\mathbb{R}^n$ to $\inline&space;\mathbb{R}$ and the variables contained in the vector x are subject to bound constraints where these inequalities hold componentwise and where components of l and/or u may be infinite.   As indicated above, using BFO does not require the provision of derivatives of the function f(x). Like all methods of this type it is most efficient on problems involving a relatively small number of variables (not much above 10). BFO's remarkable features are  its ability to handle a mix of continuous and discrete variables,  a novel self-training option, which may significantly improve the performance of the code on the user's class of problems,  its capacity to handle multilevel, min-max and equilibrium problems,  an extremely versatile and easy-to-use interface.  BFO also provides a number of user-oriented features, such as  checkpointing and restart,  facilities for specifying variable scaling, thereby improving problem conditioning,  tools allowing the user to specify a variety of  termination conditions. BFO has been thoroughly tested and is the subject of continued development.  It can be downloaded free of charge.