On KEE, several extensions were offered:
- Simkit, a frame-based simulation library
- KEEconnection, database connection between the frame system and relational databases
In KEE, frames are called units. Units are used for both individual instances and classes. Frames have slots and slots have facets. Facets can describe, for example, a slot's expected values, its working value, or its inheritance rule. Slots can have multiple values. Behavior can be implemented using a message passing model.
KEE provides an extensive graphical user interface (GUI) to create, browse, and manipulate frames.
KEE also includes a frame-based rule system. In the KEE knowledge base, rules are frames. Both forward chaining and backward chaininginference are available.
KEE supports non-monotonic reasoning through the concepts of worlds. Worlds allow providing alternative slot-values of frames. Through an assumption-based truth or reason maintenance system, inconsistencies can be detected and analyzed.
ActiveImages allows graphical displays to be attached to slots of Units. Typical examples are buttons, dials, graphs, and histograms. The graphics are also implemented as Units via KEEPictures, a frame-based graphics library.