In many cases just the command line should suffice. Running the btsync executable when there's already a process in action could trigger commands over IPC (named pipe probably being the easiest) e.g. btsync --list [*glob*] List all (or matched by glob) synced directories, their status (including last sync date) and their secrets Additional options: --files Also list files --peers Also list peers --ignore List ignored files --script Output tuned for scripting (csv? tsv?)btsync --add <directory> [--secret <secret>] [--pause] Add a directory. If a secret is specified use it, otherwise generate a random one and print. Optionally start paused to allow checking the list of files to ignore.btsync --delete <secret | dir> Stop syncing a specificbtsync --trash <secret| dir> Stop syncing, destroy databtsync --pause btsync --resume btsync --ignore <dir | secret> --files <*glob*> btsync --ignore <dir | secret> --list btsync --unignore <dir | secret> --files <*glob*> Probably enough to be getting on with. My use case is transferring genetic sequence data to our analysis cluster without having to give outside individuals logins. BT Sync can already do this, but a nice set of CLI options would allow me to put a somewhat friendlier UI on top for my users.