Razen features an integrated schematic and layout editor with forward- and back-annotation. Editing library parts uses the same schematic & layout interface. 3rd-party part libraries can be imported and used directly from the editor.
The interface, shortcuts and editing tools are customisable - from simple shortcut-key/display options to Python-scriptable editing tools.
All projects are stored in JSON files in a Mercurial repository. A diff tool provides a visualisation of the changes to your projects over time. Using existing Mercurial hosting services such as Bitbucket allow for easy sharing and collaborating on projects.
The Python API can also access project history, enabling scripts to interact with historical design data.
All functionality is exposed through a Python API. This allows for powerful scripting and modification of the entire program. Scripts can be used to generate footprints, symbols and complex design patterns, or to programmatically manipulate existing designs.
All high-level user-interface functions are also implemented in Python allowing the user to customise their design tools.