Ok, since it was asked of by jstubbs, time to get some stuff rolling as to API requirements. 1) repository can be more than just a standard abiding set of files. Maybe a custom repository, or a relational database. 2) access to an internal download library built into portage (not wget or some such). This would not only allow us to do basic downloading, but also address new protocols that come later on. 3) ability to access certain information regarding package environment (CFLAGS, USE, etc.), which when trying to get this information, has been stated as "unclean" in case the methods change later on (ie. pulling from /var/pkg/db/category/package/USE I was told was a bad idea for some reason). If portage can do it cleanly internally, an api should be able to tap into that and give us something more solid to work with. This should also help in getting rid of those pesky "Did my package get compiled with this use flag" requests. 4) a searching API to look for certain packages. This sort of goes hand in hand with #1, as it gives the ability for someone to get mysql querying to acccess a mysql repository. 5) Better info on SRC_URI's, including total size, downloaded size, md5's, blah blah,etc etc. Somewhat goes hand in hand with #4. 6) An output api which would help in supporting gui displaying as well as ncurses or anything else where one chooses that they want to put stuff. Also, I'd like for a localization support feature in here (localized strings basically). This would help in portage localization. That's all that's on my mind for now. Please let me know if I need to be clearer with some of my ideas. Please feel free to put your 2 $country_coin_denomiation_value in to make this another meaningful discussion.