Home | About Gush | Using Gush | Gush Examples | Gush Tutorial at GEC 11 | GENI Summer Camp

Gush: GENI User Shell

Note: Gush is no longer actively maintained. It is left here for reference purposes only.

Welcome to the homepage of the Gush (GENI User Shell) project. The goal of the Gush project is to provide an extensible execution management system for  GENI. Users describe their experiments or computation in an XML document, and Gush uses this document to locate, contact, and prepare the remote resources through interactions with GENI Clearinghouses. Gush also runs the experiment, handles the clean-up, and performs several other functions related to distributed application management.

Gush aims to simplify the develop-deploy-debug cycle that researchers go through when developing large-scale distributed applications. Gush achieves this goal through a simple terminal interface where users can deploy, run, monitor, and debug their distributed applications running on hundreds of remote machines through basic terminal commands. Gush also supports an XML-RPC interface, as well as a GUI called Nebula. For more information on Nebula, please visit the [NebulaPage].

To read more about Gush, see the [AboutGush] page. To try it out for yourself, see the [UsingGush] documents. For example experiments, see the [GushExamples] page.

Gush has a user mailing list. Subscribe and send mail to gush-users@….

Gush Development

The Gush source is available via SVN. Please email jeannie AT cs dot williams dot edu for an SVN acccount.
Important Updates
  • July 2009: Added support for the GeniWrapper/SFA interface.
  • July 2009: Added support for  Emulab/ ProtoGENI.
  • May 2010: Presented Gush paper at TridentCom in Berlin.
  • March 2011: Gush updated to use GENI API in main SVN branch.
  • July 2011: Added support for  ORCA.
Additional Documentation
 Gush documentation

Gush Contributors (Past and Present)

Links, Acknowledgments, and Related Work

  • View the  Gush wiki page maintained by the GENI project office
  • Gush is based on our previous project called  Plush
  • Plush was originally designed with  PlanetLab in mind.


  • Jeannie Albrecht and Danny Yuxing Huang. Managing Distributed Applications using Gush. Proceedings of the Sixth International Conference on Testbeds and Research Infrastructures for the Development of Networks and Communities, Testbeds Practices Session (TridentCom), May 2010.  PDF
  • Jeannie Albrecht. Bringing Big Systems to Small Schools: Distributed Systems for Undergraduates. Proceedings of the Fortieth ACM Technical Symposium on Computer Science Education (SIGCSE), March 2009.  PDF
  • Since the Gush architecture is largely based on Plush, for more info, please check out the  Plush papers


  • Gush research is supported by the GENI Project Office and the National Science Foundation  CNS-0834243 . We are grateful for their support.