Running alarms in python
Instead of splitting each item in alarms to hours and minutes and then zipping them again like this:


hours = [int(a.split(":")[0]) for a in alarms]
mins = [int(a.split(":")[1]) for a in alarms]

for hour,minute in zip(hours,mins):
    # ...



You could do it in one go without zipping:

hours_minutes = [[int(x) for x in a.split(":")] for a in alarms]
for hour, minute in hours_minutes:
    # ...




It's recommended to follow the coding style guide PEP8.

For example you could simplify things like this:


    if commands != '':



To this:

    if commands:


It's also recommended to avoid multiple imports on the same line like this:


import subprocess,time,threading, winsound, sys, basepipe



And it would be better to move all code out of the if __name__ == "__main__": guard into a def main(): method to avoid variable shadowing in the other methods called from there, as the code in the if guard is in global scope.