All the CallerID, stock prices, AIM clients, etc apps I know of are using the text-only overlay app for display.. I don't think anybody has a graphical overlay system in use (the source of the text one would be a good place to start).

The other problem is that afair the TiVo only supports one overlay at a time, so if it has to bring up the time bar or channel banner your overlay gets wiped out.

For key input you can pretty easily grab 4 or 7 keys from the TiVo and send HTTP requests to Hijack.