Smithy will help you install software with ease.

Project maintained by AnthonyDiGirolamo Hosted on GitHub Pages — Theme by mattgraham


This repo is for the Smithy application itself. For formulas see smithy_formulas


smithy is a command line software installation tool that borrows ideas heavily from the excellent homebrew package management system for Mac OS X and SWTools.1

Smithy is designed to sanely manage many software builds within a shared HPC Linux or Mac environment using modulefiles to load software into a user's shell.

Software builds are created with a few conventions:

Examples of many formulas can be found in the smithy_formulas repo.


Lots of information and a tutorial can be found on the manpages:


Smithy is available for download on the releases page. Once downloaded it can be extracted and run from any location. Smithy is written in ruby and provides a built in ruby environment via Traveling-Ruby. You do not need to install ruby to use Smithy. Releases for Mac and Linux are available.


Extract to a directory of your choice and set the $SMITHY_PREFIX environment variable in the file. Assuming you extracted Smithy to /sw/tools/smithy the top of the file should look like:

export SMITHY_PREFIX=/sw/tools/smithy

Once set, source the using bash or zsh

source /sw/tools/smithy/

Smithy depends on a config file to define it's behavior. Once created you can point Smithy to it's location by setting the $SMITHY_CONFIG environment variable.

Here is an example config file in yaml format:

software-root: /sw
file-group-name: ccsstaff
  titan-ext: xk6
  titan-login: xk6
  chester-login: xk6
  lens: analysis-x64
  lens-login: analysis-x64
  sith: redhat6
  sith-login: redhat6
  smoky: smoky
  smoky-login: smoky
web-root: /ccs/proj/ccsstaff/swdesc/data
descriptions-root: /sw/descriptions
  xk6: titan
  analysis-x64: lens
  smoky: smoky
download-cache: /sw/sources
- /sw/tools/smithy/formulas
global-error-log: /sw/tools/smithy/exceptions.log


Smithy is based on the ideas created in SWTools and uses a BSD license. See LICENSE for the exact text.


N. Jones, M. R. Fahey, "Design, Implementation, and Experiences of Third-Party Software Administration at the ORNL NCCS," Proceedings of the 50th Cray User Group (CUG08), Helsinki, May 2008.

Contributing and Support

The Smithy github repo contains all development files. Please fork and send me a pull request with any additions or changes.

If you encounter any issues please open an issue on github. Or send me an email.