I was having the same question as you and I found some half answer lying around as a comment for another problem. I will paste a very raw code I managed to put together that actually can work for what you want:
silentOptions = core.io.silent.SilentFileOptions()
silentOptions.in_fullatom(True)
silentFile = core.io.silent.SilentFileData(silentOptions)
for pose in poses:
silentStruct = core.io.silent.BinarySilentStruct(silentOptions,pose)
silentFile.add_structure(silentStruct)
silentFile.write_all('silent.out')
Of course you can play with some options (e.g. tags) to make it more elegant.