It is a head-less client that runs on a server somewhere, and you can manage it using a HTTP or telnet interface. It also supports a auto-start directory where all the torrent files you drop in it will be picked up automatically.
What it doesn't have is a way to upload a torrent file programatically.
At least, not until today. Check out my
torrent-upload branch of Bitflu. It provides a new HTTP-based API to upload a single torrent file.
To use it, do this:
lwp-request -c 'application/x-bittorrent' -m POST \ http://your.bitflu.site:4081/new_torrent < my.torrent
The lwp-request command does not support authentication. I need to hack a
Net::Bitflu module to make this easier.
The patch was sent to the author, but I don't know if it is something that he is interested on or not.