Yaocho APIs

This adds a few APIs that were useful for Yaocho. These need to get to prod before I can put Yaocho in the marketplace.

r?
When would `visible` be `None`?