Skip to main content

A remote process launcher.

Project description

Build Status Coverage Status Code Climate Issue Count Documentation Status


Yassh is a python library used to run asynchronous, dependent remote and local tasks.


import logging
from yassh import Reactor, RemoteRun, RemoteConfiguration, LocalRun


# Create a remote ; only host parameter is mandatory
remote = RemoteConfiguration(host='localhost', username='user')

# ssh_config(5) options can be set in RemoteConfiguration object
remote.set('Compression', 'yes')
remote.set('CompressionLevel', '9')

r = Reactor()
c1 = RemoteRun(r, remote, 'sleep 5')
c2 = LocalRun(r, 'echo ok')
c3 = RemoteRun(r, remote, 'echo "finished" && sleep 1')

def start_c2(run):
    # Start cmd2 when cmd1 complete successfully
    if run.result == 0:

def start_c3(run):
    # Start cmd3 when cmd2 complete
c2.register_monitor(u'ok', start_c3)

def on_c3_finished(run):
    # Print dummy message when c3 is near terminaison
    print('c3 almost finished')
c3.register_monitor(u'finished', on_c3_finished)

# Start first task

# Infinite
timeout = -1
while > 0:


To install latest release:

pip install yassh

To install latest code:

pip install git+


Run from project root:



MIT License (see LICENSE)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for yassh, version 2.0.3
Filename, size File type Python version Upload date Hashes
Filename, size yassh-2.0.3-py2.py3-none-any.whl (9.5 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size yassh-2.0.3.tar.gz (6.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page