We have written made available software and libraries that implement well known and experimental causal discovery algorithms:


Causal Command

A Java library and command line implementation of algorithms for performing causal discovery on big data. Use this software if you are interested incorporating analysis via a shell script or in a Java-based program. The ‘Software’ button below leads to a comprehensive repository. Choose the ‘causal-cmd-x.x.x -jar-with-dependencies.jar’ from the downloads list when using this as an executable via the command line or as an API in a Java program.

User guide Software


TETRAD is a desktop Java application that creates, simulates data from, estimates, tests, predicts with, and searches for causal and statistical models. The aim of the program is to provide sophisticated methods in a friendly interface requiring very little statistical sophistication of the user and no programming knowledge.


The program contains a variety of well-tested algorithms for searching for causal explanations of data under a variety of data formats and user knowledge of the domain, for uploading large data sets, manipulating data formats, and specifying models, as well as algorithms for estimating statistical parameters, testing models, predicting from models, altering predictions using new data, and extensive facilities for simulating data from user specified models, all in a uniform drag and drop graphical user interface.


WARNING:  Tetrad will not work well if your Java is 1.8 or lower.  Tetrad will work on all major platforms once a recent version (>1.8 or version 9+) of the Java JRE/JCK is installed.  We find that the most recent Corretto JRE/JDK with long term support (LTS) works well cross-platform.

Tutorial Manual Tetrad Latest Executable MAVEN Github


Causal-Learn is a Python package for causal discovery that is being developed by the Causal-learn group at Carnegie Mellon University. The package implements both classical and state-of-the-art causal discovery algorithms, and continues to be under active development. Causal-learn can be viewed as a Python translation and extension of Tetrad.

TETRAD Utilities

Causal Compare – A command-line interface (CLI) for running algorithm comparison tool on simulated data.

Causal Compare

Finally, in the  CCD repository you will find API wrappers of TETRAD library of search algorithms that let you access the algorithms via Python, R, a command-line or web interface; and a tool for visualizing large complex graphs produced by TETRAD in Cytoscape.




Bugs and Issues:

Please report any bugs that you might encounter on our issue trackers.



If you use our software in your research, please acknowledge the Center for Causal Discovery, supported by grant U54HG008540, in any papers, presentations, or other dissemination of your work.


License Agreements:

All software is open-source and released under a dual licensing model. For non-profit institutions, the software is available under the GNU General Public License (GPL) v2 license.For-profit organizations that wish to commercialize enhanced or customized versions of the software will be able to purchase a commercial license on a case-by-case basis. The GPL license permits individuals to modify the source code and to share modifications with other colleagues/investigators. Specifically, it permits the dissemination and commercialization of enhanced or customized versions as well as incorporation of the software or its pieces into other license-compatible software packages, as long as modifications or enhancements are made open source.


By using software provided by the Center for Causal Discovery, you agree that no warranties of any kind are made by Carnegie Mellon University or the University of Pittsburgh with respect to the data provided by the software or any use thereof, and the universities hereby disclaim the implied warranties of merchantability, fitness for a particular purpose, and non-infringement. The universities shall not be liable for any claims, losses, or damages of any kind arising from the data provided by the software or any use thereof.