Library for writing shell user interfaces