The Constraint Logic Programming (CLP) scheme generalizes the model-theoretic and operational models of logic programming to include constraints over particular problem domains (structures). The scheme explicitly separates logical inference steps and structure satisfiability questions. The Constraint Logic Programming Shell (CLPS) described in this paper utilizes this separation to define a structure independent inference engine. This engine forms the basis for a CLP system that only requires a constraint solver for the desired structure to form a complete CLP implementation. This contrasts with current implementations of constraint logic programming languages which have a fixed structure e.g. languages such as CLP(ℛ), PROLOG-III and CHIP. They do not completely separate the inference engine and constraint solver since they were constructed with a specific structure in mind. Thus constructing a new CLP system from such a system involves substantial work. The shell is aimed at providing rapid prototyping of CLP systems. To allow CLPS systems to take advantage of the incremental nature of constraint solving in CLP, three interfaces for attaching solvers are described. Each interface corresponds to a different level of solver suitability for incremental constraint solving. Pre-existing solvers are supported through the first two interfaces, while the third supports custom-built incremental solvers.