Separate UI lib with background agent